Azure 自动化 |操作手册 |电源壳 |获取 AzRoleAssignment | Microsoft.Rest.Azure.CloudException

Azure Automation | Runbook | Powershell | Get-AzRoleAssignment | Microsoft.Rest.Azure.CloudException

我有一个自动化帐户,我已经为非经典资源设置了 运行-As-Account。在我的自动化帐户中,我导入了 Az.Resources、Az.Account、Az.Storage 和 Az.KeyVault.

我有一个脚本在自动化服务原则下不起作用。以下错误是 3 个错误中的第一个;

Get-AzRoleAssignment : Exception of type 'Microsoft.Rest.Azure.CloudException' was thrown. At 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"
}

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

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

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