Python 3.x 列出所有Azure订阅

Python 3.x 列出所有Azure订阅,python-3.x,azure,Python 3.x,Azure,我正在尝试获取Python脚本中的所有订阅。因此,我创建了一个服务主体,并将其添加到全局管理员角色中 不过,我必须在每个订阅中手动添加用户,这是不需要的,因为我想在Azure资源上自动创建一个报告,而不必记住为服务用户提供显式访问 我的代码是: 来自azure.common.credentials ImportService PrincipalCredentials 从azure.mgmt.subscription导入订阅\u客户端 从pprint导入pprint def get_凭据(): c

我正在尝试获取Python脚本中的所有订阅。因此,我创建了一个服务主体,并将其添加到
全局管理员
角色中

不过,我必须在每个订阅中手动添加用户,这是不需要的,因为我想在Azure资源上自动创建一个报告,而不必记住为服务用户提供显式访问

我的代码是:

来自azure.common.credentials ImportService PrincipalCredentials
从azure.mgmt.subscription导入订阅\u客户端
从pprint导入pprint
def get_凭据():
cred=服务原则性需求(
客户_id=“a”,
secret=“b”,
租户=“c”
)
回信
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
凭证=获取凭证()
client=subscription\u client.subscriptioncline(凭证,无)
对于client.subscriptions.list中的i(filter=“*”):
pprint(显示名称)
我在租户中有5个以上的订阅,但只显示了两个(一个是自动添加的,另一个是手动添加的)

我仍然需要在每个订阅中手动添加用户 是不需要的,因为我想在Azure资源上创建报告 自动执行,而无需记住为 服务用户

这是故意的行为。Azure AD本质上是一个用户存储,它不知道用户有(或需要)访问哪些资源

授予此用户
全局管理员
角色将使该用户仅成为该Azure广告中的全局管理员

您需要使用基于Azure订阅角色的访问控制(RBAC)将Azure订阅的访问权限显式授予此用户

我仍然需要在每个订阅中手动添加用户 是不需要的,因为我想在Azure资源上创建报告 自动执行,而无需记住为 服务用户

这是故意的行为。Azure AD本质上是一个用户存储,它不知道用户有(或需要)访问哪些资源

授予此用户
全局管理员
角色将使该用户仅成为该Azure广告中的全局管理员


您需要使用基于Azure订阅角色的访问控制(RBAC)将Azure订阅的访问权限显式授予此用户

为了让下一个查找此信息的人……您不必手动将用户(门户、CLI或脚本)添加到每个订阅,只需将其添加一次到租户根组,权限将级联到当前存在的所有其他订阅以及任何未来订阅


在web门户中,主页->管理组->租户根组(详细信息)->IAM->角色分配->添加->添加角色分配->[填写所需值]->保存

,以便下一个查找此信息的人……您可以向每个订阅添加用户,而不是手动添加用户(门户、CLI或脚本),到租户根组,权限将级联到现在存在的所有其他订阅以及任何将来的订阅


在web门户中,主页->管理组->租户根组(详细信息)->IAM->角色分配->添加->添加角色分配->[填写所需值]->Save

是否有可能使用rest API管理订阅?如果通过
使用rest API管理订阅
您的意思是将您的服务主体访问权分配给Azure订阅,那么答案是肯定的。您可以使用
角色分配
API,为订阅上的服务主体分配适当的角色。请检查此链接:。您还应该能够通过PowerShell、CLI工具甚至Python SDK实现这一点。是否有可能使用rest API管理订阅?如果通过
使用rest API管理订阅
您的意思是将您的服务主体访问权分配给Azure订阅,那么答案是肯定的。您可以使用
角色分配
API,为订阅上的服务主体分配适当的角色。请检查此链接:。您还应该能够通过PowerShell、CLI工具甚至Python SDK实现这一点。