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 ContosoStorage kaynak grubundaki contoso123 depolama hesabına sahip erişimi vardır.
- Microsoft Entra ID'deki Bulut Yöneticileri grubundaki herkesin ContosoStorage 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 | Açıklama |
---|---|
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 , Group ve ServicePrincipal değ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ı. |
Kapsam
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.
İpucu
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.
Veri Akışı 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.
İpucu
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.
Açıklama
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?