【发布时间】:2020-04-30 16:34:20
【问题描述】:
我有一个自动化帐户,并且我为非经典资源设置了帐户运行方式。在我的自动化帐户中,我已导入 Az.Resources、Az.Account、Az.Storage 和 Az.KeyVault。
我的脚本在自动化服务原则下不起作用。以下错误是 3 个中的第一个;
Get-AzRoleAssignment:引发了“Microsoft.Rest.Azure.CloudException”类型的异常。在 line:26 char:10
我已在 Azure Active Directory 中授予应用程序注册以下一组应用程序 api 权限(超出我预期的需要);
在脚本开始时,我运行 Connect-AzAccount cmdlet;
$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"
}
我需要授予正确的权限,但不知道它们是什么。
【问题讨论】:
-
能否告诉我您是否已获得管理员同意?
-
你指的是Active Directory中应用程序的权限刀片吗?
标签: powershell azure-automation service-principal