У меня есть учетная запись Automation, и я настроил учетную запись запуска от имени для неклассических c ресурсов. В моей учетной записи автоматизации я импортировал Az.Resources, Az.Account, Az.Storage и Az.KeyVault.
У меня есть скрипт, который не работает по принципу службы автоматизации. Следующая ошибка является первой из 3;
Get-AzRoleAssignment: было сгенерировано исключение типа «Microsoft.Rest. Azure .CloudException». В строке: 26 символов: 10
Я предоставил регистрации приложения следующий набор разрешений API приложения в Azure Active Directory (больше, чем я ожидаю);
В начале сценария я выполняю командлет Connect-AzAccount;
$servicePrincipalConnection = Get-AutomationConnection -Name 'AzureRunAsConnection'
Connect-AzAccount -ServicePrincipal `
-Tenant $servicePrincipalConnection.TenantID `
-ApplicationId $servicePrincipalConnection.ApplicationID `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
Затем следует сбойная команда;
If(!(Get-AzRoleAssignment | Where-Object { $_.RoleDefinitionName -eq "Storage Blob Data Contributor" `
-and $_.scope -eq "/subscriptions/$subscription/resourceGroups/$resourceGroup/providers/Microsoft.Storage/storageAccounts/$serviceName" `
-and $_.SignInName -eq (Get-AzContext).Account.Id})){
# There does not exist the requisite permission for the run-as-account context, grant; 'Storage Blob Data Contributor'.
New-AzRoleAssignment -RoleDefinitionName "Storage Blob Data Contributor" `
-ApplicationId (Get-AzADServicePrincipal | Where-Object { $_.DisplayName -eq "jupiterautomation01" }).ApplicationId `
-Scope "/subscriptions/$subscription/resourceGroups/$resourceGroup/providers/Microsoft.Storage/storageAccounts/$serviceName"
}
Мне нужно предоставить нужные разрешения, но я не знаю, какие они.