Aracılığıyla paylaş


REST API ile etkin 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.

Etkin atamaları listeleme

Etkin rol atamalarını listelemek (erişimi listelemek için), Rol Atama Zamanlaması Örnekleri - Kapsam listesi veya Rol Atama Zamanlamaları Listesi - Kapsam REST API'leri için Liste'yi 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/roleAssignmentScheduleInstances?api-version=2020-10-01&$filter={filter}
    
    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentSchedules?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.

Etkin atama verme

Etkin bir rol ataması oluşturmak (erişim vermek) için Rol Ataması 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/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?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": "P30D" // 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. {roleAssignmentScheduleRequestName} öğ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.

Etkin atamayı kaldırma

Etkin rol atamasını kaldırmak (erişimi kaldırmak) için Rol Atama Zamanlaması İ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/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?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. {roleAssignmentScheduleRequestName} öğesini rol atamasının GUID tanımlayıcısıyla değiştirin.

Uygun rol atamalarını etkinleştirme

Uygun rol atamasını etkinleştirmek (etkinleştirilmiş erişim kazanmak) için Rol Ataması Zamanlama İstekleri - REST API oluşturma'yı kullanarak yeni bir istek oluşturun ve güvenlik sorumlusu, rol tanımı, requestType = SelfActivate ve kapsamı belirtin. Bu API'yi çağırmak için kapsam üzerinde uygun bir rol atamanız olmalıdır.

  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. [İsteğe bağlı] Etkinleştirmek istediğiniz bir RoleEligibilitySchedule seçin ve Rol Uygunluk Zamanlamaları API'sinden öğesinin olarak geçirilmesini LinkedRoleEligibilityScheduleIdsağlayınRoleEligibilityScheduleId. Bu isteğe bağlıdır ve geçirilmediyse sistem bir RoleEligibilityScheduleseçer.

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

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
    
     {
       "Properties": {
         "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
         "PrincipalId": "{principalId}",
         "RequestType": "SelfActivate",
         "ScheduleInfo": {
           "StartDateTime": "2020-09-09T21:31:27.91Z",
           "Expiration": {
             "Type": "AfterDuration", // Values: AfterDuration, AfterDateTime, NoExpiration
             "EndDateTime": null,
             "Duration": "PT8H" // Use ISO 8601 format
           }
         },
         "LinkedRoleEligibilityScheduleId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignmentSchedules/{roleAssignmentScheduleId}" //Optional
       }
     }
    
  4. 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
  5. {roleAssignmentScheduleRequestName} öğesini rol atamasının GUID tanımlayıcısıyla değiştirin.

Etkin rol atamalarını devre dışı bırakma

Etkinleştirilmiş rol atamasını kaldırmak (etkinleştirilmiş erişimi kaldırmak) için Rol Ataması Zamanlama İstekleri - REST API Oluşturma'yı kullanarak yeni bir istek oluşturun ve güvenlik sorumlusu, rol tanımı, requestType = SelfDeactivate ve kapsamı belirtin. Bu API'yi çağırmak için kapsamda etkinleştirilmiş bir rol atamanız olmalıdır.

  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/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
    
     {
       "Properties": {
         "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
         "PrincipalId": "{principalId}",
         "RequestType": "SelfDeactivate"        
       }
     }
    
  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. {roleAssignmentScheduleRequestName} öğesini rol atamasının GUID tanımlayıcısıyla değiştirin.

Yeterli Erişim (JEA)

Bir kullanıcının bir kaynakta (üst) uygun rol ataması varsa, rolü üst kapsamın tamamı yerine üst kaynağın alt düzey kapsamında etkinleştirmeyi seçebilir. Örneğin, bir kullanıcının Contributor abonelikte uygun rolü varsa, rolü aboneliğin alt kaynak grubu düzeyinde etkinleştirebilir.

Uygun erişiminiz olan bir kaynağın tüm alt öğelerinin listesini almak için Uygun Alt Kaynaklar API'sini kullanabilirsiniz.

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

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/eligibleChildResources?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
  3. {filter} öğesini rol ataması listesine filtre uygulamak istediğiniz koşulla değiştirin.

    Filtre Description
    $filter=resourceType+eq+'Subscription' = 'Abonelik' türüne sahip kaynakları listeleyin.
    $filter=$filter=resourceType+eq+'subscription'+or+resourceType+eq+'resourcegroup'' = 'Subscription' veya type = 'ResourceGroup' türüne sahip kaynakları listeleyin.
  4. id Etkinleştirme için olarak kullanmak scope üzere herhangi bir alt kaynağın öğesini kullanınRoleAssignmentScheduleRequest

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