Skip to content

Commit a41fabc

Browse files
Merge branch 'main' of github.com:PureStorage-OpenConnect/cbs-deploy-bicep
2 parents 4060a62 + bfd0d92 commit a41fabc

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

02-cbs.bicepparam.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@ param managedUserIdentityId = '/subscriptions/<---MY SUBSCRITION ID--->/resource
1515
// replace with vNET name (e.g. from output of 01-deploy-prerequisities.sh)
1616
param vnetName = 'my-vnet-name'
1717
param availabilityZone = 1
18+
// replace with an identity (user or group) within tenant, who would approve the JIT requests to manage CBS app resources.
19+
param jitApprovers = [{displayName:'my-cloud-ops-group',id:'<---OBJECT ID OF USER OR GROUP--->',type:'<--- 'group' OR 'user'--->'}]

deploy-e2e-demo.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ AZURE_MARKETPLACE_PUBLISHER=`echo $bicep_raw | jq -r .templateJson | jq -r .para
110110
AZURE_MARKETPLACE_PLAN_OFFER=`echo $bicep_raw | jq -r .templateJson | jq -r .parameters.azureMarketPlacePlanOffer.defaultValue`
111111
AZURE_MARKETPLACE_PLAN_VERSION=`echo $latestPlan | jq -r .planVersion`
112112

113+
AZURE_LOGGED_USER_ID=`az ad signed-in-user show | jq -r .id`
114+
AZURE_LOGGED_USER_EMAIL=`az ad signed-in-user show | jq -r .mail`
115+
113116
enablementOutput=$(az vm image terms accept \
114117
--subscription $subscriptionId \
115118
--publisher $AZURE_MARKETPLACE_PUBLISHER \
@@ -129,8 +132,9 @@ fi
129132
echo -e "${C_BLUE3}${C_GREY85}
130133
[Step #4] Deploying CBS managed app (~20mins):${NO_FORMAT}
131134
"
135+
jitApprovers="[{'displayName':'$AZURE_LOGGED_USER_EMAIL','id':'$AZURE_LOGGED_USER_ID','type':'user'}]"
132136

133-
# Deploy our infrastructure
137+
# Deploy CBS
134138
output=$(az deployment group create \
135139
--name "CBS-E2E-deploy-sh" \
136140
--resource-group $resourceGroupName \
@@ -152,6 +156,7 @@ output=$(az deployment group create \
152156
azureMarketPlacePlanName=$AZURE_MARKETPLACE_PLAN_NAME \
153157
azureMarketPlacePlanPublisher=$AZURE_MARKETPLACE_PUBLISHER \
154158
azureMarketPlacePlanOffer=$AZURE_MARKETPLACE_PLAN_OFFER \
159+
jitApprovers="$jitApprovers" \
155160
sshPublicKey="$sshPublicKeyInOpenSSHFormat"
156161
)
157162

templates/cbs-managed-app.bicep

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,20 @@ param azureMarketPlacePlanName string = 'cbs_azure_6_4_10'
105105

106106
param azureMarketPlacePlanOffer string = 'pure_storage_cloud_block_store_deployment'
107107

108+
@description('''
109+
This access will not be used, but enabling JIT increases security - with turned on, Azure will not provide any default access to CBS resources (Managed App) to service provider.
110+
''')
111+
param jitAccessEnabled bool = true
112+
param jitApprovalMode string = 'ManualApprove'
113+
@description('''
114+
Provide an identity (user or group) within tenant, who would approve the JIT requests to manage CBS app resources.
115+
Required parameter by Azure, needs to be provided.
116+
Example value:
117+
[{'displayName':'some-user','id':'<<object-id-of-group>>','type':'group'}]
118+
''')
119+
param jitApprovers array
120+
121+
108122
module variables 'modules/variables.bicep' = {
109123
name: 'scriptVariables'
110124
params: {
@@ -146,9 +160,10 @@ resource cbsManagedApp 'Microsoft.Solutions/applications@2021-07-01' = {
146160
identity: managedUserIdentity
147161
properties:{
148162
managedResourceGroupId: subscriptionResourceId('Microsoft.Resources/resourceGroups', managedRgName)
149-
//TODO: currently not implemented in Bicep module
150163
jitAccessPolicy:{
151-
jitAccessEnabled: false
164+
jitAccessEnabled: jitAccessEnabled
165+
jitApprovalMode: jitApprovalMode
166+
jitApprovers: jitApprovers
152167
}
153168
parameters:{
154169
tagsByResource: {

0 commit comments

Comments
 (0)