Share via


REST API ile uygun erişimi yönetmek için Azure PIM kullanma

Azure Privileged Identity Management (PIM), ayrıcalıklı rollere ayakta yönetici erişimini sınırlamanıza, kimlerin erişimi olduğunu keşfetmenize ve ayrıcalıklı erişimi gözden geçirmenize olanak tanır. Bu makalede REST API kullanarak erişimi yönetmenin yaygın yolları açıklanmaktadır.

Uygun ödevleri listeleme

Uygun rol atamalarını (liste erişimi) listelemek için Rol Uygunluk Zamanlaması Örnekleri - Kapsam listesi veya Rol Uygunluk Zamanlamaları Listesi - Kapsam REST API'leri Listesi'ni kullanabilirsiniz. Sonuçlarınızı daraltmak için bir kapsam ve isteğe bağlı bir filtre belirtirsiniz. API'yi çağırmak için belirtilen kapsamda işleme Microsoft.Authorization/roleAssignments/read erişiminiz olmalıdır. Tüm yerleşik rollere bu işlem için erişim verilir.

Önemli

Zamanlamalar ve zamanlama örnekleri arasındaki fark, zamanlama örnekleri yalnızca geçerli zamanda etkin olan atamaları içerse de, zamanlamaların gelecekte etkin olacak atamaları da içermesidir.

  1. Aşağıdaki istekle başlayın:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleInstances?api-version=2020-10-01&$filter={filter}
    
    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilitySchedules?api-version=2020-10-01&$filter={filter}
    
  2. URI'nin içinde {scope} öğesini rol atamalarını listelemek istediğiniz kapsamla değiştirin.

    Kapsam Tür
    providers/Microsoft.Management/managementGroups/{mg-name} Yönetim Grubu
    subscriptions/{subscriptionId} Abonelik
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Kaynak grubu
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Kaynak
  3. {filter} öğesini rol ataması listesine filtre uygulamak istediğiniz koşulla değiştirin.

    Filtre Description
    $filter=atScope() Alt kapsamlarda rol atamaları dahil değil, yalnızca belirtilen kapsam için rol atamalarını listeleyin.
    $filter=principalId%20eq%20'{objectId}' Belirtilen kullanıcı, grup veya hizmet sorumlusu için rol atamalarını listeleyin.
    $filter=roleDefinitionId%20eq%20'{roleDefinitionId}' Belirtilen rol tanımı için rol atamalarını listeleme.
    $filter=assignedTo('{objectId}') Gruplardan devralınanlar da dahil olmak üzere belirli bir kullanıcı için rol atamalarını listeleyin.
    $filter=asTarget() Geçerli kullanıcı veya hizmet sorumlusu için, gruplardan devralınanlar da dahil olmak üzere rol atamalarını listeleyin.
    $filter=assignedTo('{objectId}')+and+atScope() Alt kapsamlarda rol atamaları dahil olmak üzere, yalnızca belirtilen kapsam için gruplardan devralınanlar dahil olmak üzere, belirli bir kullanıcı için rol atamalarını listeleyin.

Uygun atama verme

Uygun bir rol ataması oluşturmak (erişim vermek) için Rol Uygunluğu Zamanlama İstekleri - REST API oluşturma'yı kullanır ve güvenlik sorumlusu, rol tanımı, zamanlama, requestType = AdminAssign ve kapsamı belirtirsiniz. Bu API'yi çağırmak için işleme erişiminiz Microsoft.Authorization/roleAssignments/write olmalıdır. Yerleşik roller arasında bu işleme yalnızca Sahip ve Kullanıcı Erişimi Yöneticisi erişimi verilir.

  1. Rol Tanımları - Liste REST API'sini kullanın veya atamak istediğiniz rol tanımının tanımlayıcısını almak için 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ının biçimi: 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/roleEligibilityScheduleRequests/{roleEligibilityScheduleRequestName}?api-version=2020-10-01
    
    {
      "Properties": {
        "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
        "PrincipalId": "{principalId}",
        "RequestType": "AdminAssign",
        "ScheduleInfo": {
          "StartDateTime": "2020-09-09T21:31:27.91Z",
          "Expiration": {
            "Type": "AfterDuration", // Values: AfterDuration, AfterDateTime, NoExpiration
            "EndDateTime": null,
            "Duration": "P365D" // Use ISO 8601 format
          }
        }
      }
    }
    
  4. URI'nin içinde {scope} öğesini rol atamasının kapsamıyla değiştirin.

    Kapsam Tür
    providers/Microsoft.Management/managementGroups/{mg-name} Yönetim Grubu
    subscriptions/{subscriptionId} Abonelik
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Kaynak grubu
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Kaynak
  5. {roleEligibilityScheduleRequestName} öğesini rol atamasının GUID tanımlayıcısıyla değiştirin.

  6. İstek gövdesinde {subscriptionId} değerini abonelik tanımlayıcınızla 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.

Uygun atamayı kaldırma

Uygun rol atamasını kaldırmak (erişimi kaldırmak) için Rol Uygunluğu Zamanlama İstekleri - REST API Oluşturma'yı kullanarak atamayı iptal etmek için yeni bir istek oluşturun ve güvenlik sorumlusu, rol tanımı, requestType = AdminRemove ve kapsamı belirtin. Bu API'yi çağırmak için Microsoft.Authorization/roleAssignments/write işleme erişiminiz olmalıdır. Yerleşik roller arasında bu işleme yalnızca Sahip ve Kullanıcı Erişimi Yöneticisi erişimi verilir.

  1. 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ının biçimi: 00000000-0000-0000-0000-000000000000

  2. Aşağıdaki istekle başlayın:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleRequests/{roleEligibilityScheduleRequestName}?api-version=2020-10-01
    
    {
      "Properties": {
        "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
        "PrincipalId": "{principalId}",
        "RequestType": "AdminRemove"
        }
    }
    
  3. URI'nin içinde {scope} öğesini rol atamasını kaldırma kapsamıyla değiştirin.

    Kapsam Tür
    providers/Microsoft.Management/managementGroups/{mg-name} Yönetim Grubu
    subscriptions/{subscriptionId} Abonelik
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Kaynak grubu
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1 Kaynak
  4. {roleEligibilityScheduleRequestName} öğesini rol atamasının GUID tanımlayıcısıyla değiştirin.

Yeni istek için döndürülen yaygın hatalar

Aşağıda, yeni istek oluştururken karşılaşabileceğiniz yaygın hataların ve bunların nasıl azaltıldığının listesi yer alır.

Hata İletisi İfade Risk azaltma
code: RoleAssignmentExists
message: Rol ataması zaten var.
Benzer bir rol ataması zaten var Bu rol atamasını yapabilir GET ve zamanlamasını doğrulayabilirsiniz.
code: RoleAssignmentRequestPolicyValidationFailed
message: Aşağıdaki ilke kuralları başarısız oldu: ["ExpirationRule"]
ScheduleInfo İstekte belirtilen izin verilen süre üst sınırını aşıyor Bunun RoleDefinitionId için RoleManagementPolicy'yi ve GETRoleManagementPolicyExpirationRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Aşağıdaki ilke kuralları başarısız oldu: ["JustificationRule"]
İstek gövdesinde bir Justification belirtmeniz gerekir Bunun RoleDefinitionId için RoleManagementPolicy'yi ve GETRoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Aşağıdaki ilke kuralları başarısız oldu: ["EligibilityRule"]
Bu rolü etkinleştirmek için geçerli RoleEligibilityScheduleInstance bir rol yok Kaynak yöneticisinin bu sorumlu için bir RoleEligibilityScheduleRequest oluşturması gerekiyor
code: RoleAssignmentRequestPolicyValidationFailed
message: Aşağıdaki ilke kuralları başarısız oldu: ["TicketingRule"]
İstek gövdesinde bir TicketInfo belirtmeniz gerekir Bunun RoleDefinitionId için RoleManagementPolicy'yi ve GETRoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Aşağıdaki ilke kuralları başarısız oldu: ["MfaRule"]
Bu isteği göndermek için Azure Multi-Factor Authentication'ı tamamlamanız gerekir Bunun RoleDefinitionId için RoleManagementPolicy'yi ve GETRoleManagementPolicyEnablementRule