我有一个自动化帐户,并且我已经为非经典资源设置了运行帐户。在我的自动化帐户中,我导入了 Az.Resources、Az.Account、Az.Storage 和 Az.KeyVault。
我有一个在自动化服务原则下不起作用的脚本。以下错误是 3 个中的第一个;
Get-AzRoleAssignment:引发了“Microsoft.Rest.Azure.CloudException”类型的异常。在行:26 字符: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"
}
我需要授予正确的权限,但不知道它们是什么。