Azure RBAC kapsamını anlama

Kapsam , erişimin uygulandığı kaynak kümesidir. Bir rol atadığınızda, bir güvenlik sorumlusuna yalnızca gerçekten ihtiyaç duyduğu erişimi verebilmeniz için kapsamı anlamanız önemlidir. Kapsamı sınırlayarak, güvenlik sorumlusu tehlikeye atılırsa hangi kaynakların risk altında olduğunu sınırlandırmış olursunuz.

Kapsam düzeyleri

Azure'da dört düzeyde bir kapsam belirtebilirsiniz: yönetim grubu, abonelik, kaynak grubu ve kaynak. Kapsamlar üst-alt ilişkisiyle yapılandırılmıştır. Hiyerarşinin her düzeyi kapsamı daha belirgin hale getirir. Bu kapsam düzeylerinden herhangi birinde rol atayabilirsiniz. Seçtiğiniz düzey, rolün ne kadar geniş çapta uygulanacağını belirler. Alt düzeyler üst düzeylerden rol izinlerini devralır.

Scope for a role assignment

Yönetim grupları aboneliklerin üzerindeki bir kapsam düzeyidir, ancak yönetim grupları daha karmaşık hiyerarşileri destekler. Aşağıdaki diyagramda, tanımlayabileceğiniz bir yönetim grupları ve abonelik hiyerarşisi örneği gösterilmektedir. Yönetim grupları hakkında daha fazla bilgi için bkz. Azure yönetim grupları nedir?.

Management group and subscription hierarchy

Kapsam biçimi

Komut satırını kullanarak roller atarsanız kapsamı belirtmeniz gerekir. Komut satırı araçları için kapsam, rol atamasının tam kapsamını tanımlayan uzun olabilecek bir dizedir. Azure portal bu kapsam genellikle kaynak kimliği olarak listelenir.

Kapsam, eğik çizgi (/) karakteriyle ayrılmış bir dizi tanımlayıcıdan oluşur. Bu dizeyi, yer tutucusu olmayan metinlerin sabit tanımlayıcılar{} olduğu aşağıdaki hiyerarşiyi ifade etmek olarak düşünebilirsiniz:

/subscriptions
    /{subscriptionId}
        /resourcegroups
            /{resourceGroupName}
                /providers
                    /{providerName}
                        /{resourceType}
                            /{resourceSubType1}
                                /{resourceSubType2}
                                    /{resourceName}
  • {subscriptionId} kullanılacak aboneliğin kimliğidir (GUID).
  • {resourcesGroupName} , içeren kaynak grubunun adıdır.
  • {providerName}, kaynağı işleyen kaynak sağlayıcısının adıdır ve {resourceSubType*} bu {resourceType} kaynak sağlayıcısı içindeki diğer düzeyleri tanımlar.
  • {resourceName} dizenin belirli bir kaynağı tanımlayan son bölümüdür.

Yönetim grupları aboneliklerin üzerindeki bir düzeydir ve en geniş (en az belirli) kapsama sahiptir. Bu düzeydeki rol atamaları, yönetim grubundaki abonelikler için geçerlidir. Bir yönetim grubunun kapsamı aşağıdaki biçime sahiptir:

/providers
    /Microsoft.Management
        /managementGroups
            /{managmentGroupName}

Kapsam örnekleri

Kapsam Örnek
Yönetim grubu /providers/Microsoft.Management/managementGroups/marketing-group
Abonelik /subscriptions/00000000-0000-0000-0000-000000000000
Kaynak grubu /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
Kaynak /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork12345

Bir kaynağın kapsamını belirleme

Bir yönetim grubu, abonelik veya kaynak grubunun kapsamını belirlemek oldukça basittir. Yalnızca adı ve abonelik kimliğini bilmeniz gerekir. Ancak, bir kaynağın kapsamını belirlemek biraz daha fazla çalışma gerektirir. Bir kaynağın kapsamını belirlemek için kullanabileceğiniz birkaç yöntem aşağıdadır.

  • Azure portal kaynağı açın ve ardından özelliklere bakın. Kaynak, kapsamı belirleyebileceğiniz Kaynak Kimliğini listelemelidir. Örneğin, bir depolama hesabının kaynak kimlikleri aşağıda verilmiştir.

    Resource IDs for a storage account in Azure portal

  • Bir diğer yol da kaynak kapsamında geçici olarak rol atamak için Azure portal kullanmak ve ardından rol atamasını listelemek için Azure PowerShell veya Azure CLI kullanmaktır. Çıkışta kapsam bir özellik olarak listelenir.

    RoleAssignmentId   : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/pro
                         viders/Microsoft.Authorization/roleAssignments/<roleAssignmentId>
    Scope              : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
    DisplayName        : User
    SignInName         : user@contoso.com
    RoleDefinitionName : Storage Blob Data Reader
    RoleDefinitionId   : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
    ObjectId           : <principalId>
    ObjectType         : User
    CanDelegate        : False
    Description        :
    ConditionVersion   :
    Condition          :
    
    {
        "canDelegate": null,
        "condition": null,
        "conditionVersion": null,
        "description": null,
        "id": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
        "name": "{roleAssignmentId}",
        "principalId": "{principalId}",
        "principalName": "user@contoso.com",
        "principalType": "User",
        "resourceGroup": "test-rg",
        "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
        "roleDefinitionName": "Storage Blob Data Reader",
        "scope": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01",
        "type": "Microsoft.Authorization/roleAssignments"
      }
    

Kapsam ve ARM şablonları

Rol ataması, Azure Resource Manager uzantı kaynağı olarak adlandırılan özel bir türdür. Uzantı kaynağı, başka bir kaynağın özelliklerini ekleyen bir kaynaktır. Bunlar her zaman başka bir kaynağın uzantısı (alt öğe gibi) olarak bulunur. Örneğin, abonelik kapsamındaki rol ataması, aboneliğin bir uzantı kaynağıdır. Rol atamasının adı her zaman genişletdiğiniz kaynağın adıdır./Microsoft.Authorization/roleAssignments/{roleAssignmentId} Azure Resource Manager şablonunu (ARM şablonu) kullanarak rol atarken genellikle kapsamı sağlamanız gerekmez. Bunun nedeni kapsam alanının her zaman genişletmekte olduğunuz kaynağın kimliği olmasıdır. Kapsam, rol atamasının kimliğinden belirlenebilir. Aşağıdaki tabloda rol atama kimliği ve ilgili kapsam örnekleri gösterilmektedir:

Rol atama kimliği Kapsam
/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg

Kapsam ve ARM şablonları hakkında daha fazla bilgi için bkz. Azure Resource Manager şablonlarını kullanarak Azure rolleri atama. Uzantı kaynak türlerinin tam listesi için bkz. Diğer kaynakların özelliklerini genişleten kaynak türleri.

Sonraki adımlar