尝试使用适用于 Azure 的 Python SDK 解除分配虚拟机时出现错误。
基本上我尝试类似:
credentials = ServicePrincipalCredentials(client_id, secret, tenant)
compute_client = ComputeManagementClient(credentials, subscription_id, '2015-05-01-preview')
compute_client.virtual_machines.deallocate(resource_group_name, vm_name)
pprint (result.result())
-> 例外:
msrestazure.azure_exceptions.CloudError: Azure Error: AuthorizationFailed
Message: The client '<some client UUID>' with object id '<same client UUID>' does not have authorization to perform action 'Microsoft.Compute/virtualMachines/deallocate/action' over scope '/subscriptions/<our subscription UUID>/resourceGroups/<resource-group>/providers/Microsoft.Compute/virtualMachines/<our-machine>'.
我不明白的是,错误消息包含我没有在凭据中使用的未知客户端 UUID。Python 是 2.7.13 版本,SDK 版本是昨天的。
我想我需要的是一个应用程序的注册,我这样做是为了获取凭据的信息。我不太确定我需要向 IAM 注册应用程序的确切权限。要添加访问条目,我只能选择现有用户,而不是应用程序。
那么有没有任何程序化的方式来找出一个动作需要哪些权限以及我们的客户端应用程序有哪些权限?
谢谢!