-1

我有一个自动化帐户,并且我已经为非经典资源设置了运行帐户。在我的自动化帐户中,我导入了 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"
}

我需要授予正确的权限,但不知道它们是什么。

4

1 回答 1

0

分配的权限需要得到“管理员”的同意。该按钮仅在通过用于创建 Active Directory 租户的 Microsoft 帐户访问 Azure 时可用。

  1. 使用可以同意的管理员帐户登录。
  2. 向应用程序授予在 Active Directory 上读取或读取/写入(我也需要写入)的 API 权限。
  3. 使用图像中显示的按钮给予管理员同意。

在此处输入图像描述

于 2020-05-01T11:11:10.090 回答