在Azure Python API中以编程方式创建服务主体

在Azure Python API中以编程方式创建服务主体,python,api,azure,rbac,service-principal,Python,Api,Azure,Rbac,Service Principal,我如何使用Azure Python API创建一套完整的凭据,以便以后在没有任何其他权限的情况下用于启动和取消分配命名资源组中的所有VM 我已经彻底研究了示例代码以及官方和非官方文档,但我甚至不知道从哪里开始 我知道我需要租户ID、客户机ID、客户机机密和订阅ID。我可以使用API进行哪些操作,以及如何分配角色以允许启动/释放现有资源组的VM 示例代码非常受欢迎,但会接受任何提示 您需要azure graphrbac包来创建服务主体: 离样本越近的可能是这个单元测试: 对于角色和权限,您需要az

我如何使用Azure Python API创建一套完整的凭据,以便以后在没有任何其他权限的情况下用于启动和取消分配命名资源组中的所有VM

我已经彻底研究了示例代码以及官方和非官方文档,但我甚至不知道从哪里开始

我知道我需要租户ID、客户机ID、客户机机密和订阅ID。我可以使用API进行哪些操作,以及如何分配角色以允许启动/释放现有资源组的VM

示例代码非常受欢迎,但会接受任何提示

您需要azure graphrbac包来创建服务主体:

离样本越近的可能是这个单元测试:

对于角色和权限,您需要azure管理授权:

此示例的最佳示例可能是此示例的子部分:

msi_标识在您的上下文中是服务主体的同义词

请注意,CLI v2.0支持所有这些功能:

它可能有兴趣在调试模式下测试CLI,同时在代码repo中进行嗅探:

完全公开,我在微软Azure SDK for Python团队工作

您需要Azure graphrbac包来创建服务主体:

离样本越近的可能是这个单元测试:

对于角色和权限,您需要azure管理授权:

此示例的最佳示例可能是此示例的子部分:

msi_标识在您的上下文中是服务主体的同义词

请注意,CLI v2.0支持所有这些功能:

它可能有兴趣在调试模式下测试CLI,同时在代码repo中进行嗅探:


完全公开,我在微软的Azure SDK for Python团队中工作

,手动操作会容易得多。为什么你想用代码来评价服务负责人,而这是一次性的事情?因为,为什么要做计算机的工作?我的程序从头开始建立定制集群,这是最后一步。如果我需要用户干预,那么它就违背了应用程序的目的。好吧,这不是为了自动化:呸,我想我很幸运!手动操作会容易得多。为什么你想用代码来评价服务负责人,而这是一次性的事情?因为,为什么要做计算机的工作?我的程序从头开始建立定制集群,这是最后一步。如果我需要用户干预,那么它就违背了应用程序的目的。好吧,这不是为了自动化:呸,我想我很幸运!更新了第一个unittest的链接:@Laurent,Microsoft能否在其unittest和SDK模块文档中添加更多说明和注释?代码、包或模块中似乎什么都没有。你能在azure sdk for python repo中创建一个问题,要求提供更多文档和你需要的东西吗?谢谢@LaurentMazuel我在看你答案中的角色分配步骤。我看到authorization_client.role_assignments.create包含一个res_group_id、role_assign_name和role_assign_参数,我正在看docs.microsoft.com/en us/python/api/azure mgmt authorization/azure.mgmt.authorization.v2018_09_01_preview.operations.roleasignmentsoperations?view=azure pythoncreate scope角色分配名称参数自定义头none raw false--操作配置-我看到它使用了一个名为“scope”的参数,而不是“res_group_id”?作用域可以是任何REST资源实例。例如,对订阅使用“/subscriptions/{subscription id}/”,对资源组使用“/subscriptions/{subscription id}/resourceGroups/{resource group name}”。因此res_group_id是第一个unittest的有效ScopeUpdate链接:@Laurent,Microsoft能否在其unittest和SDK模块文档中添加更多说明和注释?代码、包或模块中似乎什么都没有。你能在azure sdk for python repo中创建一个问题,要求提供更多文档和你需要的东西吗?谢谢@LaurentMazuel我在看你答案中的角色分配步骤。我看到authorization_client.role_assignments.create包含一个res_group_id、role_assign_name和role_assign_参数,我正在看docs.microsoft.com/en us/python/api/azure mgmt authorization/azure.mgmt.authorization.v2018_09_01_preview.operations.roleasignmentsoperations?view=azure pythoncreate scope角色分配名称参数自定义头none raw false--操作配置-我看到它使用了一个名为“scope”的参数,而不是“res_group_id”?作用域可以是任何REST资源实例。例如,对订阅使用“/subscriptions/{subscription id}/”,对资源组使用“/subscriptions/{subscription id}/resourceGroups/{resource group name}”。所以res_group_id是一个有效的作用域