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 üzeri kullanılarak yeni bir hizmet sorumlusuna Azure rolü atamak için

Daha fazla bilgi için bk . 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 Dayalı Erişim Denetimi Yöneticisi gibi eyleme Microsoft.Authorization/roleAssignments/write erişiminiz olmalıdır.

  1. Kullanmak 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 Yerleşik roller bölümüne bakın.

  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çimdedir: 00000000-0000-0000-0000-000000000000

  3. Aşağıdaki istek ve içerik 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 içinde {scope} ifadesini rol atamasının kapsamı ile değiştirin.

    Scope 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} ifadesini, 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ı - Oluştur REST API'sini kullanın ve principalType özelliğini ServicePrincipal olarak ayarlayın. apiVersion ayrıca 2018-09-01-preview veya üzerini 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