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 sorumlusunun tehlikeye atılması durumunda 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, rol izinlerini daha yüksek düzeylerden 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ında 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 aşağıdaki hiyerarşiyi ifade etmek olarak düşünebilirsiniz; burada yer tutucuları ({}) olmayan metinler sabit tanımlayıcılardır:

/subscriptions
    /{subscriptionId}
        /resourcegroups
            /{resourceGroupName}
                /providers
                    /{providerName}
                        /{resourceType}
                            /{resourceSubType1}
                                /{resourceSubType2}
                                    /{resourceName}
  • {subscriptionId} kullanılacak aboneliğin kimliğidir (GUID).
  • {resourceGroupName} , 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ındaki diğer düzeyleri belirler.
  • {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 grubunun, aboneliğin veya kaynak grubunun kapsamını belirlemek oldukça basittir. Yalnızca adı ve abonelik kimliğini bilmeniz yeterlidir. Ancak, bir kaynağın kapsamını belirlemek biraz daha fazla çalışma gerektirir. Bir kaynağın kapsamını belirlemenin birkaç yolu aşağıdadır.

  • Azure portalında kaynağı açın ve ö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.

    Screenshot that shows resource IDs for a storage account in Azure portal.

  • Bir diğer yol da Azure portalını kullanarak kaynak kapsamında geçici olarak bir rol atamak ve ardından rol atamasını listelemek için Azure PowerShell veya Azure CLI kullanmaktır. Çıktıda 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'da uzantı kaynağı olarak adlandırılan özel bir türdür. Uzantı kaynağı, başka bir kaynağın özelliklerine ekleyen bir kaynaktır. Bunlar her zaman başka bir kaynağın uzantısı (bir alt öğe gibi) olarak bulunur. Örneğin, abonelik kapsamındaki rol ataması, aboneliğin uzantı kaynağıdır. Rol atamasının adı her zaman genişlettikleri 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 buna karşılık gelen 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