Azure rol atamalarını anlama.

Rol atamaları, belirli bir Azure kaynağına bir sorumluya (kullanıcı, grup, yönetilen kimlik veya hizmet sorumlusu gibi) erişim vermenizi sağlar. Bu makalede rol atamalarının ayrıntıları açıklanmaktadır.

Rol ataması

Rol ataması oluşturularak Azure kaynaklarına erişim verilir ve rol ataması kaldırılarak erişim iptal edilir.

Rol ataması aşağıdakiler dahil olmak üzere çeşitli bileşenlere sahiptir:

  • Sorumlu veya rolün atandığı kişi.
  • Atandıkları rol.
  • Rolün atandığı kapsam .
  • Rol atamasının adı ve rolün neden atandığını açıklamanıza yardımcı olan bir açıklama.

Örneğin, Azure RBAC'yi kullanarak aşağıdaki gibi roller atayabilirsiniz:

  • Sally kullanıcısının Contoso Depolama kaynak grubundaki contoso123 depolama hesabına sahip erişimi vardır.
  • Microsoft Entra ID'deki Cloud Yönetici istrators grubundaki herkesin Contoso Depolama kaynak grubundaki tüm kaynaklara okuyucu erişimi vardır.
  • Bir uygulamayla ilişkili yönetilen kimliğin Contoso aboneliğindeki sanal makineleri yeniden başlatmasına izin verilir.

Aşağıda, Azure PowerShell kullanılarak görüntülendiğinde rol atamasında özelliklerin bir örneği gösterilmektedir:

{
  "RoleAssignmentName": "00000000-0000-0000-0000-000000000000",
  "RoleAssignmentId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "Scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "DisplayName": "User Name",
  "SignInName": "user@contoso.com",
  "RoleDefinitionName": "Contributor",
  "RoleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "ObjectId": "22222222-2222-2222-2222-222222222222",
  "ObjectType": "User",
  "CanDelegate": false,
  "Description": null,
  "ConditionVersion": null,
  "Condition": null
}

Aşağıda, Azure CLI veya REST API kullanılarak görüntülendiğinde rol atamasında özelliklerin bir örneği gösterilmektedir:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "22222222-2222-2222-2222-222222222222",
  "principalName": "user@contoso.com",
  "principalType": "User",
  "roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
  "roleDefinitionName": "Contributor",
  "scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "type": "Microsoft.Authorization/roleAssignments"
}

Aşağıdaki tabloda rol ataması özelliklerinin anlamı açıklanmaktadır.

Özellik Tanım
RoleAssignmentName
name
Genel olarak benzersiz bir tanımlayıcı (GUID) olan rol atamasının adı.
RoleAssignmentId
id
Rol atamasının adını içeren benzersiz kimliği.
Scope
scope
Rol atamasının kapsamına alınan Azure kaynak tanımlayıcısı.
RoleDefinitionId
roleDefinitionId
Rolün benzersiz kimliği.
RoleDefinitionName
roleDefinitionName
Rolün adı.
ObjectId
principalId
Rolü atanmış sorumlu için Microsoft Entra nesne tanımlayıcısı.
ObjectType
principalType
Sorumlunun temsil ettiği Microsoft Entra nesnesinin türü. Geçerli değerler , Groupve ServicePrincipaldeğerlerini içerirUser.
DisplayName Kullanıcıların rol atamaları için kullanıcının görünen adı.
SignInName
principalName
Kullanıcının benzersiz asıl adı (UPN) veya hizmet sorumlusuyla ilişkili uygulamanın adı.
Description
description
Rol atamasının açıklaması.
Condition
condition
Rol tanımı ve özniteliklerinden bir veya daha fazla eylem kullanılarak oluşturulan koşul deyimi.
ConditionVersion
conditionVersion
Koşul sürüm numarası. Varsayılan olarak 2.0'dır ve desteklenen tek sürümdür.
CanDelegate
canDelegate
Uygulanmadı.

Scope

Rol ataması oluşturduğunuzda, uygulanacağı kapsamı belirtmeniz gerekir. Kapsam, sorumlunun erişmesine izin verilen kaynağı veya kaynak kümesini temsil eder. Rol atamasını tek bir kaynağa, kaynak grubuna, aboneliğe veya yönetim grubuna kapsam olarak ayarlayabilirsiniz.

Bahşiş

Gereksinimlerinizi karşılamak için ihtiyacınız olan en küçük kapsamı kullanın.

Örneğin, tek bir depolama hesabına yönetilen kimlik erişimi vermeniz gerekiyorsa, rol atamasını kaynak grubu veya abonelik kapsamında değil depolama hesabı kapsamında oluşturmak iyi bir güvenlik uygulamasıdır.

Kapsam hakkında daha fazla bilgi için bkz . Kapsamı anlama.

Atanacak rol

Rol ataması bir rol tanımıyla ilişkilendirilir. Rol tanımı, sorumlunun rol atamasının kapsamında sahip olması gereken izinleri belirtir.

Yerleşik rol tanımı veya özel rol tanımı atayabilirsiniz. Rol ataması oluşturduğunuzda, bazı araçlar rol tanımı kimliğini kullanmanızı gerektirirken, diğer araçlar rolün adını sağlamanıza olanak tanır.

Rol tanımları hakkında daha fazla bilgi için bkz . Rol tanımlarını anlama.

Asıl

Sorumlular arasında kullanıcılar, güvenlik grupları, yönetilen kimlikler, iş yükü kimlikleri ve hizmet sorumluları bulunur. Sorumlular Microsoft Entra kiracınızda oluşturulur ve yönetilir. Herhangi bir sorumluya rol atayabilirsiniz. Rolü atamak istediğiniz sorumluyu tanımlamak için Microsoft Entra Id nesne kimliğini kullanın.

Azure PowerShell, Azure CLI, Bicep veya başka bir kod olarak altyapı (IaC) teknolojisini kullanarak rol ataması oluşturduğunuzda, asıl türü belirtirsiniz. Asıl türler User, Group ve ServicePrincipal'dır. Doğru sorumlu türünü belirtmek önemlidir. Aksi takdirde, özellikle hizmet sorumluları ve yönetilen kimliklerle çalışırken aralıklı dağıtım hataları alabilirsiniz.

Ad

Rol atamanın kaynak adı genel olarak benzersiz bir tanımlayıcı (GUID) olmalıdır.

Rol atamasının kapsamı daha dar olsa bile, rol ataması kaynak adları Microsoft Entra kiracısı içinde benzersiz olmalıdır.

Bahşiş

Azure portalını, Azure PowerShell'i veya Azure CLI'yı kullanarak rol ataması oluşturduğunuzda, oluşturma işlemi rol atamanıza sizin için otomatik olarak benzersiz bir ad verir.

Bicep veya başka bir kod olarak altyapı (IaC) teknolojisini kullanarak rol ataması oluşturursanız rol atamalarınızı nasıl adlandırabileceğinizi dikkatlice planlamanız gerekir. Daha fazla bilgi için bkz . Bicep kullanarak Azure RBAC kaynakları oluşturma.

Kaynak silme davranışı

Microsoft Entra Id'den bir kullanıcı, grup, hizmet sorumlusu veya yönetilen kimliği sildiğinizde, rol atamalarını silmek iyi bir uygulamadır. Bunlar otomatik olarak silinmez. Silinen sorumlu kimliğine başvuran tüm rol atamaları geçersiz hale gelir.

Bir rol atamasının adını başka bir rol ataması için yeniden kullanmayı denerseniz dağıtım başarısız olur. Bu araçları kullanırken rol atama adını açıkça ayarlamanız gerektiğinden, rol atamalarınızı dağıtmak için Bicep veya Azure Resource Manager şablonu (ARM şablonu) kullandığınızda bu sorunun oluşma olasılığı daha yüksektir. Bu davranışa geçici bir çözüm olarak, yeniden oluşturmadan önce eski rol atamasını kaldırmanız veya yeni bir rol ataması dağıtırken benzersiz bir ad kullandığınızdan emin olmanız gerekir.

Tanım

Rol atamasına metin açıklaması ekleyebilirsiniz. Açıklamalar isteğe bağlı olsa da, bunları rol atamalarınıza eklemek iyi bir uygulamadır. Sorumlunun atanmış role neden ihtiyaç duyduğuna ilişkin kısa bir gerekçe sağlayın. Birisi rol atamalarını denetlediğinde, açıklamalar neden oluşturulduğunu ve hala geçerli olup olmadığını anlamanıza yardımcı olabilir.

Koşullar

Bazı roller, belirli eylemler bağlamındaki özniteliklere göre rol atama koşullarını destekler. Rol atama koşulu, daha ayrıntılı erişim denetimi sağlamak için isteğe bağlı olarak rol atamanıza ekleyebileceğiniz ek bir denetimdir.

Örneğin, bir nesnenin kullanıcının nesneyi okuması için belirli bir etikete sahip olmasını gerektiren bir koşul ekleyebilirsiniz.

Genellikle görsel koşul düzenleyicisi kullanarak koşullar oluşturursunuz, ancak kodda örnek bir koşul şöyle görünür:

((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'))

Yukarıdaki koşul, kullanıcıların Project'in blob dizin etiketi anahtarı ve Cascade değeri olan blobları okumasına olanak tanır.

Koşullar hakkında daha fazla bilgi için bkz . Azure öznitelik tabanlı erişim denetimi (Azure ABAC) nedir?

Sonraki adımlar