Skip to content

Commit 4c7ff79

Browse files
alrios-msdanielluo-msft
authored andcommitted
Added webpapi to ps1
1 parent 8144639 commit 4c7ff79

File tree

1 file changed

+71
-21
lines changed

1 file changed

+71
-21
lines changed

Scripts/PostDeployment/Set-KeyVaultAccessRoles.ps1

Lines changed: 71 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ function Set-KeyVaultAccessRoles {
5656
$dataKeyVault = Get-AzKeyVault -ResourceGroupName $DataResourceGroupName -Name "$SolutionAbbreviation-data-$EnvironmentAbbreviation"
5757
$functionApps = Get-AzFunctionApp -ResourceGroupName $ComputeResourceGroupName
5858

59+
# Grant the Function Apps access to the keyvaults
5960
foreach ($functionApp in $functionApps) {
6061
$ProductionFunctionAppName = $functionApp.Name
6162
$StagingFunctionAppName = "$($functionApp.Name)/slots/staging"
@@ -67,43 +68,68 @@ function Set-KeyVaultAccessRoles {
6768
# Grant the app service access to the keyvaults
6869
if ($functionServicePrincipal) {
6970
# prereqs keyvault
70-
if ($null -eq (Get-AzRoleAssignment -ObjectId $functionServicePrincipal.Id -Scope $prereqsKeyVault.ResourceId -RoleDefinitionName "Key Vault Secrets User")) {
71-
New-AzRoleAssignment -ObjectId $functionServicePrincipal.Id -Scope $prereqsKeyVault.ResourceId -RoleDefinitionName "Key Vault Secrets User";
72-
Write-Host "Added role 'Key Vault Secrets User' to $fa on the $($prereqsKeyVault.VaultName) keyvault.";
73-
}
74-
else {
75-
Write-Host "$fa already has 'Key Vault Secrets User' role on $($prereqsKeyVault.VaultName).";
76-
}
71+
Set-KVRoleAssignment `
72+
-ObjectId $functionServicePrincipal.Id `
73+
-DisplayName $fa `
74+
-Scope $prereqsKeyVault.ResourceId `
75+
-RoleDefinitionName "Key Vault Secrets User" `
76+
-KeyVaultName $prereqsKeyVault.VaultName
7777

7878
# data keyvault
79-
if ($null -eq (Get-AzRoleAssignment -ObjectId $functionServicePrincipal.Id -Scope $dataKeyVault.ResourceId -RoleDefinitionName "Key Vault Secrets User")) {
80-
New-AzRoleAssignment -ObjectId $functionServicePrincipal.Id -Scope $dataKeyVault.ResourceId -RoleDefinitionName "Key Vault Secrets User";
81-
Write-Host "Added role 'Key Vault Secrets User' to $fa on the $($dataKeyVault.VaultName) keyvault.";
82-
}
83-
else {
84-
Write-Host "$fa already has 'Key Vault Secrets User' role on $($dataKeyVault.VaultName).";
85-
}
79+
Set-KVRoleAssignment `
80+
-ObjectId $functionServicePrincipal.Id `
81+
-DisplayName $fa `
82+
-Scope $dataKeyVault.ResourceId `
83+
-RoleDefinitionName "Key Vault Secrets User" `
84+
-KeyVaultName $dataKeyVault.VaultName
8685
}
8786
elseif ($null -eq $functionServicePrincipal) {
8887
Write-Host "Function $fa was not found!"
8988
}
9089
}
9190
}
9291

92+
# Grant the Web API access to the keyvaults
93+
$webApi = Get-AzWebApp -ResourceGroupName $ComputeResourceGroupName -Name "$ComputeResourceGroupName-webapi"
94+
if ($webApi) {
95+
$webApiServicePrincipal = Get-AzADServicePrincipal -DisplayName $webApi.Name
96+
97+
if ($webApiServicePrincipal) {
98+
# prereqs keyvault
99+
Set-KVRoleAssignment `
100+
-ObjectId $webApiServicePrincipal.Id `
101+
-DisplayName $webApi.Name `
102+
-Scope $prereqsKeyVault.ResourceId `
103+
-RoleDefinitionName "Key Vault Secrets User" `
104+
-KeyVaultName $prereqsKeyVault.VaultName
105+
106+
# data keyvault
107+
Set-KVRoleAssignment `
108+
-ObjectId $webApiServicePrincipal.Id `
109+
-DisplayName $webApi.Name `
110+
-Scope $dataKeyVault.ResourceId `
111+
-RoleDefinitionName "Key Vault Secrets User" `
112+
-KeyVaultName $dataKeyVault.VaultName
113+
}
114+
elseif ($null -eq $webApiServicePrincipal) {
115+
Write-Host "Web API $($webApi.Name) was not found!"
116+
}
117+
}
118+
119+
# Grant the Data Factories access to the keyvaults
93120
$dataFactories = Get-AzResource -ResourceGroupName $DataResourceGroupName -ResourceType "Microsoft.DataFactory/factories"
94121
foreach ($dataFactory in $dataFactories) {
95122
$dataFactoryName = $dataFactory.Name
96123
$dataFactoryServicePrincipal = Get-AzADServicePrincipal -DisplayName $dataFactoryName
97124

98125
if ($dataFactoryServicePrincipal) {
99126
# data keyvault
100-
if ($null -eq (Get-AzRoleAssignment -ObjectId $dataFactoryServicePrincipal.Id -Scope $dataKeyVault.ResourceId -RoleDefinitionName "Key Vault Secrets User")) {
101-
New-AzRoleAssignment -ObjectId $dataFactoryServicePrincipal.Id -Scope $dataKeyVault.ResourceId -RoleDefinitionName "Key Vault Secrets User";
102-
Write-Host "Added role 'Key Vault Secrets User' to $($dataFactoryName) on the $($dataKeyVault.VaultName) keyvault.";
103-
}
104-
else {
105-
Write-Host "$($dataFactoryName) already has 'Key Vault Secrets User' role on $($dataKeyVault.VaultName).";
106-
}
127+
Set-KVRoleAssignment `
128+
-ObjectId $dataFactoryServicePrincipal.Id `
129+
-DisplayName $dataFactoryName `
130+
-Scope $dataKeyVault.ResourceId `
131+
-RoleDefinitionName "Key Vault Secrets User" `
132+
-KeyVaultName $dataKeyVault.VaultName
107133
}
108134
elseif ($null -eq $dataFactoryServicePrincipal) {
109135
Write-Host "Data Factory $dataFactoryName was not found!"
@@ -112,4 +138,28 @@ function Set-KeyVaultAccessRoles {
112138
}
113139

114140
Write-Host "Done attempting to add keyvault role assignments.";
141+
}
142+
143+
function Set-KVRoleAssignment {
144+
[CmdletBinding()]
145+
param(
146+
[Parameter(Mandatory = $True)]
147+
[string] $ObjectId,
148+
[Parameter(Mandatory = $True)]
149+
[string] $DisplayName,
150+
[Parameter(Mandatory = $True)]
151+
[string] $Scope,
152+
[Parameter(Mandatory = $True)]
153+
[string] $RoleDefinitionName,
154+
[Parameter(Mandatory = $True)]
155+
[string] $KeyVaultName
156+
)
157+
158+
if ($null -eq (Get-AzRoleAssignment -ObjectId $ObjectId -Scope $Scope -RoleDefinitionName $RoleDefinitionName)) {
159+
New-AzRoleAssignment -ObjectId $ObjectId -Scope $Scope -RoleDefinitionName $RoleDefinitionName;
160+
Write-Host "Added role $RoleDefinitionName to $DisplayName on the $KeyVaultName keyvault.";
161+
}
162+
else {
163+
Write-Host "$DisplayName already has $RoleDefinitionName role on $KeyVaultName.";
164+
}
115165
}

0 commit comments

Comments
 (0)