Добавление политики доступа для идентификатора управляемой службы - PullRequest
0 голосов
/ 27 сентября 2019

Как часть скрипта Powershell, я предоставляю FunctionApp и KeyVault.Скрипт также включает MSI на функции приложения.Мне нужно добавить политику доступа на keyvault для функции приложения.Как я могу добавить эту политику доступа?Я не мог найти пример, чтобы сделать это на MSDN.

New-AzResource -ResourceType 'Microsoft.Web/Sites' -ResourceName $FuncAppName -Kind 'functionapp' -Location $defaultRegion -ResourceGroupName $defaultRG -Properties @{ }  -Force
set-AzWebApp -ResourceGroupName $defaultRG -AssignIdentity $true -Name $FuncAppName -HttpsOnly $true | Out-Null

$KeyVault = New-AzKeyVault -Name $KeyVaultName -ResourceGroupName $defaultRG -Location $defaultRegion
Set-AzKeyVaultAccessPolicy -VaultName $KeyVault.VaultName -UserPrincipalName $settingsServiceAccountName -PermissionsToSecrets set, get -PassThru | Out-Null

Я могу добавить принцип пользователя, но не знаю, как добавить приложение функции.

1 Ответ

1 голос
/ 27 сентября 2019

Вы можете использовать параметр -ObjectId, это идентификатор объекта вашего MSI.

Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ObjectId 34595082-9346-41b6-8d6b-295a2808b8db -PermissionsToSecrets Get,Set

Чтобы получить идентификатор объекта MSI, используйте команду, как показано ниже.Убедитесь, что вы уже включили MSI.

$objectid = (Get-AzWebApp -ResourceGroupName <ResourceGroupName> -Name <functionname>).Identity.PrincipalId
...