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 时可用。
- 使用可以同意的管理员帐户登录。
- 授予应用程序在 Active Directory 上的 API 读取权限或 read/write(我也需要写入)权限。
- 使用图中显示的按钮授予管理员同意。
我有一个自动化帐户,我已经为非经典资源设置了 运行-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 时可用。
- 使用可以同意的管理员帐户登录。
- 授予应用程序在 Active Directory 上的 API 读取权限或 read/write(我也需要写入)权限。
- 使用图中显示的按钮授予管理员同意。