代码之家  ›  专栏  ›  技术社区  ›  Nilay Mehta

对象ID为xxx的客户端xxx无权在作用域上执行操作microsoft.resources/subscriptions/resourcegroups/write'

  •  4
  • Nilay Mehta  · 技术社区  · 6 年前

    我正在尝试使用Azure Management 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/
    

    这是创建资源的代码

    // 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();
    

    我得到的错误是:

    具有对象ID的客户端“AE8BC2EA-9680-4F66-934C-AD40B82C30AC” “AE8BC2EA-9680-4F66-934C-AD40B82C30AC”无权 执行操作 作用域上的“microsoft.resources/subscriptions/resourcegroups/write” '/subscriptions/e9d6100-a82a-48ca-b6f8-51b06a1eebe6/resourcegroups/5oxjhjic'。

    我已经按照规定的步骤 https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal
    我也在尝试 全局管理员 解释

    1 回复  |  直到 5 年前
        1
  •  4
  •   4c74356b41    5 年前

    显然,您不能尝试使用全局管理员。您需要转到订阅并授予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
    

    等效的azure cli命令是:

    az role assignment create --assignee-object-id ae8bc2ea-9680-4f66-934c-ad40b82c30ac --scope subscriptions/e9d61100-a82a-48ca-b6f8-51b06a1eebe6 --role contributor