Aracılığıyla paylaş


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:

Aşağıdaki sürümleri kullanmanız gerekir:

  • 2015-07-01 veya daha sonra azure rolü atamak için
  • 2018-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.

  1. 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 .

  2. 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

  3. 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}"
      }
    }
    
  4. 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.

  5. {roleAssignmentId} öğesini rol atamasının GUID tanımlayıcısıyla değiştirin.

  6. İstek gövdesinde {scope} öğesini URI'dekiyle aynı kapsamla değiştirin.

  7. {roleDefinitionId} öğesini rol tanımı tanımlayıcısıyla değiştirin.

  8. {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 ServicePrincipalayarlayı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"
  }
}

Sonraki adımlar