Azure CLI kullanarak Azure rol atamalarını listeleme

Azure rol tabanlı erişim denetimi (Azure RBAC), Azure kaynaklarına erişimi yönetmek için kullandığınız yetkilendirme sistemidir. Kullanıcıların, grupların, hizmet sorumlularının veya yönetilen kimliklerin hangi kaynaklara erişimi olduğunu belirlemek için rol atamalarını listelersiniz. Bu makalede, Azure CLI kullanarak rol atamalarının nasıl listelenmesi açıklanır.

Not

Kuruluşunuzun Azure Lighthouse kullanan bir hizmet sağlayıcısına dış kaynaklı yönetim işlevleri varsa, bu hizmet sağlayıcısı tarafından yetkilendirilmiş rol atamaları burada gösterilmez. Benzer şekilde, hizmet sağlayıcısı kiracısında bulunan kullanıcılar, atanmış oldukları rolden bağımsız olarak bir müşterinin kiracısında kullanıcılar için rol atamalarını görmez.

Önkoşullar

Kullanıcı için rol atamalarını listeleme

Belirli bir kullanıcının rol atamalarını listelemek için az role assignment list komutunu kullanın:

az role assignment list --assignee {assignee}

By default, only role assignments for the current subscription will be displayed. To view role assignments for the current subscription and below, add the --all parameter. To include role assignments at parent scopes, add the --include-inherited parameter. To include role assignments for groups of which the user is a member transitively, add the --include-groups parameter.

The following example lists the role assignments that are assigned directly to the patlong@contoso.com user:

az role assignment list --all --assignee patlong@contoso.com --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Backup Operator",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Virtual Machine Contributor",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  }
]

Kaynak grubu için rol atamalarını listeleme

Bir kaynak grubu kapsamında var olan rol atamalarını listelemek için az role assignment list komutunu kullanın:

az role assignment list --resource-group {resourceGroup}

The following example lists the role assignments for the pharma-sales resource group:

az role assignment list --resource-group pharma-sales --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Backup Operator",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Virtual Machine Contributor",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  
  ...

]

Abonelik için rol atamalarını listeleme

Abonelik kapsamındaki tüm rol atamalarını listelemek için az role assignment list komutunu kullanın. Abonelik kimliğini almak için Azure portalındaki Abonelikler dikey penceresinde bulabilir veya az account list komutunu kullanabilirsiniz.

az role assignment list --scope "/subscriptions/{subscriptionId}"

Example:

az role assignment list --scope "/subscriptions/00000000-0000-0000-0000-000000000000" --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "admin@contoso.com",
    "roleDefinitionName": "Owner",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },
  {
    "principalName": "Subscription Admins",
    "roleDefinitionName": "Owner",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },
  {
    "principalName": "alain@contoso.com",
    "roleDefinitionName": "Reader",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },

  ...

]

Yönetim grubu için rol atamalarını listeleme

Bir yönetim grubu kapsamındaki tüm rol atamalarını listelemek için az role assignment list komutunu kullanın. Yönetim grubu kimliğini almak için, bunu Azure portalındaki Yönetim grupları dikey penceresinde bulabilir veya az account management-group list komutunu kullanabilirsiniz.

az role assignment list --scope /providers/Microsoft.Management/managementGroups/{groupId}

Example:

az role assignment list --scope /providers/Microsoft.Management/managementGroups/sales-group --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "admin@contoso.com",
    "roleDefinitionName": "Owner",
    "scope": "/providers/Microsoft.Management/managementGroups/sales-group"
  },
  {
    "principalName": "alain@contoso.com",
    "roleDefinitionName": "Reader",
    "scope": "/providers/Microsoft.Management/managementGroups/sales-group"
  }
]

Yönetilen kimlik için rol atamalarını listeleme

Şu adımları izleyin:

  1. Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliğin asıl kimliğini alın.

    Kullanıcı tarafından atanan yönetilen kimliğin asıl kimliğini almak için az ad sp list veya az identity list kullanabilirsiniz.

    az ad sp list --display-name "{name}" --query [].id --output tsv
    

    Sistem tarafından atanan yönetilen kimliğin asıl kimliğini almak için az ad sp list komutunu kullanabilirsiniz.

    az ad sp list --display-name "{vmname}" --query [].id --output tsv
    
  2. Rol atamalarını listelemek için az role assignment list komutunu kullanın.

    Varsayılan olarak, yalnızca geçerli abonelik için rol atamaları görüntülenir. Geçerli aboneliğin ve altına rol atamalarını görüntülemek için parametresini --all ekleyin. Devralınan rol atamalarını görüntülemek için parametresini --include-inherited ekleyin.

    az role assignment list --assignee {objectId}
    

Sonraki adım