REST API kullanarak Azure rolleri atama
Azure rol tabanlı erişim denetimi (Azure RBAC), Azure kaynaklarına erişimi yönetmek için kullandığınız yetkilendirme sistemidir. Erişim vermek için kullanıcılara, gruplara, hizmet sorumlularına veya yönetilen kimliklere belirli kapsamda roller atamanız gerekir. Bu makalede REST API kullanarak rollerin nasıl atandığı açıklanmaktadır.
Önkoşullar
Azure rollerini atamak için şunlar gereklidir:
Microsoft.Authorization/roleAssignments/write
Rol Tabanlı Erişim Denetimi Yönetici istrator veya Kullanıcı Erişimi Yönetici istrator gibi izinler
Aşağıdaki sürümleri kullanmanız gerekir:
2015-07-01
veya daha sonra azure rolü atamak için2018-09-01-preview
veya daha sonra yeni bir hizmet sorumlusuna Azure rolü atamak için
Daha fazla bilgi için bkz . Azure RBAC REST API'lerinin API sürümleri.
Azure rolü atama
Rol atamak için Rol Atamaları - REST API oluşturma'yı kullanın ve güvenlik sorumlusunu, rol tanımını ve kapsamı belirtin. Bu API'yi çağırmak için Role Based Access Control Yönetici istrator gibi eyleme Microsoft.Authorization/roleAssignments/write
erişiminiz olmalıdır.
Atamak istediğiniz rol tanımının tanımlayıcısını almak için Rol Tanımları - Liste REST API'sini kullanın veya bkz . Yerleşik roller .
Rol atama tanımlayıcısı için kullanılacak benzersiz bir tanımlayıcı oluşturmak için BIR GUID aracı kullanın. Tanımlayıcı şu biçime sahiptir:
00000000-0000-0000-0000-000000000000
Aşağıdaki istek ve gövde ile başlayın:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{ "properties": { "roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "principalId": "{principalId}" } }
URI'nin içinde {scope} öğesini rol atamasının kapsamıyla değiştirin.
Kapsam Tür providers/Microsoft.Management/managementGroups/{groupId1}
Yönetim grubu subscriptions/{subscriptionId1}
Abonelik subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1
Kaynak grubu subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/microsoft.web/sites/mysite1
Kaynak Önceki örnekte, microsoft.web bir App Service örneğine başvuran bir kaynak sağlayıcısıdır. Benzer şekilde, diğer tüm kaynak sağlayıcılarını kullanabilir ve kapsamı belirtebilirsiniz. Daha fazla bilgi için bkz . Azure Kaynak sağlayıcıları ve türleri ve desteklenen Azure kaynak sağlayıcısı işlemleri.
{roleAssignmentId} öğesini rol atamasının GUID tanımlayıcısıyla değiştirin.
İstek gövdesinde {scope} öğesini URI'dekiyle aynı kapsamla değiştirin.
{roleDefinitionId} öğesini rol tanımı tanımlayıcısıyla değiştirin.
{principalId} öğesini rolün atanacağı kullanıcı, grup veya hizmet sorumlusunun nesne tanımlayıcısıyla değiştirin.
Aşağıdaki istek ve gövde, abonelik kapsamındaki bir kullanıcıya Yedekleme Okuyucusu rolünü atar:
PUT https://management.azure.com/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}"
}
}
Aşağıda çıktının bir örneği gösterilmektedir:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId1}",
"condition": null,
"conditionVersion": null,
"createdOn": "2022-05-06T23:55:23.7679147Z",
"updatedOn": "2022-05-06T23:55:23.7679147Z",
"createdBy": null,
"updatedBy": "{updatedByObjectId1}",
"delegatedManagedIdentityResourceId": null,
"description": null
},
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId1}"
}
Yeni hizmet sorumlusu
Yeni bir hizmet sorumlusu oluşturur ve bu hizmet sorumlusuna hemen bir rol atamayı denerseniz, bu rol ataması bazı durumlarda başarısız olabilir. Örneğin, yeni bir yönetilen kimlik oluşturur ve sonra bu hizmet sorumlusuna bir rol atamayı denerseniz rol ataması başarısız olabilir. Bu hatanın nedeni büyük olasılıkla bir çoğaltma gecikmesidir. Hizmet sorumlusu tek bir bölgede oluşturulur; ancak rol ataması, hizmet sorumlusunu henüz çoğaltmamış farklı bir bölgede gerçekleşebilir.
Bu senaryoyu ele almak için Rol Atamaları - REST API oluşturma'yı principalType
kullanın ve özelliğini olarak ServicePrincipal
ayarlayın. veya üzerini apiVersion
2018-09-01-preview
de ayarlamanız gerekir. 2022-04-01
ilk kararlı sürümdür.
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
"principalId": "{principalId}",
"principalType": "ServicePrincipal"
}
}