python - 在Azure中使用python获取角色分配列表

标签 python azure

我正在尝试使用 python 获取订阅中的 azure 角色分配。通过以下代码

from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.authorization import AuthorizationManagementClient
tenant_id = 'tenant_guid'
application_id = 'application_guid'
application_secret = 'application_secret'
cred = ServicePrincipalCredentials(client_id=application_id, secret=application_secret, tenant=tenant_id)
client = AuthorizationManagementClient(cred, 'subscription_guid')
roles = client.role_assignments.list()
for role in roles:
print(role)

异常:CloudError(“对象 ID 为‘XXXX-XXXX-xxxxxx’的客户端‘XXXX-XXXX-xxxxxx’无权在范围‘/subscriptions/XXXX’上执行操作‘Microsoft.Authorization/roleAssignments/read’ -XXXX-xxxxxx'.",)

但是,尽管我是该服务主体的管理员,但我在运行 python 代码片段时遇到身份验证异常。

任何人都可以帮忙找到这个吗?

最佳答案

服务主体的管理员并不意味着您的服务主体是管理员:)。该消息清楚表明您的服务主体没有执行此操作的权限。

查看 Azure 中的内置角色: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles

为了对“Microsoft.Authorization/roleAssignments/read”执行操作,SP(不是您)需要是“所有者”或“读取者”或“API 管理服务贡献者” '等(查看列表中的模式以了解哪些角色授权此操作)。

然后,您可以使用门户向 SP 添加角色: https://learn.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal#assign-application-to-role

或 CLI

https://learn.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?view=azure-cli-latest#manage-service-principal-roles

关于python - 在Azure中使用python获取角色分配列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50703772/

相关文章:

azure - 如何使用 Powershell 在 Azure 漏洞评估中应用 "Approve as Baseline"

python - 使用 Python 为 Google App Engine 生成 CRUD 网页的最快方法是什么?

python - 在接受输入之前将输入的 Kivy TextInput 验证为数据类型整数

python - """TypeError: only length-1 arrays can be converted to Python scalars"""尝试在具有 7 段显示的 Pi3 上运行计数器时

azure - 需要一个 KQL 查询来比较今天在特定时间失败的 API 计数与昨天同一时间失败的 API 计数

azure - Azure Service Fabric 使用哪些端口?

python - 在数据框中,如何将带有列表的列(所有行的长度相同)分解为同一行的不同列

Python 打印 unicode 不显示正确的符号

azure - 为什么在 azure 中同名存储帐户部署需要时间?

azure - 可以在 HDInsight 中运行的 Hadoop 作业的驱动程序方法中访问 Azure SQL 数据库吗?