对象 ID 为 xxx 的客户端 xxx 无权执行 Microsoft.Resources/subscriptions/resourcegroups/write' over scope

Nil*_*lay 7 azure azure-active-directory

我正在尝试使用 Azure 管理 SDK 动态创建资源组 这是我的 azure 配置详细信息

subscription=<private-data>
client=<private-data>
key=<private-data>
tenant=<private-data>
managementURI=https://management.core.windows.net/
baseURL=https://management.azure.com/
authURL=https://login.windows.net/
graphURL=https://graph.windows.net/
Run Code Online (Sandbox Code Playgroud)

这是创建资源的代码

// Credentials
AzureCredentials credentials = new AzureCredentialsFactory()
    .FromFile("azureauth.properties");
string resourceName = GetRandomString();

// Create Azure Instance
var azure = Azure
        .Configure()
        .Authenticate(credentials)
        .WithDefaultSubscription();

// Create a Resource Group
azure.ResourceGroups
        .Define(resourceName)
        .WithRegion(Region.USWest)
        .Create();
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

对象 ID 为“ae8bc2ea-9680-4f66-934c-ad40b82c30ac”的客户端“ae8bc2ea-9680-4f66-934c-ad40b82c30ac”无权执行操作“Microsoft.Resources/subscriptions/'subscriptions/'resources scope” /e9d61100-a82a-48ca-b6f8-51b06a1eebe6/resourcegroups/5oxjhjic'。

我已按照https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal 上指定的步骤进行操作,
并且我正在尝试使用我的全局管理员帐户

4c7*_*b41 10

显然,您不能尝试使用全局管理员。您需要转到订阅并授予 objectid 'ae8bc2ea-9680-4f66-934c-ad40b82c30ac' 贡献者权限(简单方法)或创建满足您需求的自定义角色(或图形预定义角色)。

您可以使用门户网站或 azure powershell 来执行此操作:

New-AzRoleAssignment -ObjectId 'ae8bc2ea-9680-4f66-934c-ad40b82c30ac' -Scope '/subscriptions/e9d61100-a82a-48ca-b6f8-51b06a1eebe6' -RoleDefinitionName contributor
Run Code Online (Sandbox Code Playgroud)

等效的 Azure CLI 命令是:

az role assignment create --assignee-object-id ae8bc2ea-9680-4f66-934c-ad40b82c30ac --scope subscriptions/e9d61100-a82a-48ca-b6f8-51b06a1eebe6 --role contributor
Run Code Online (Sandbox Code Playgroud)