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.
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}
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 {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.
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.
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
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 } } } }
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 {roleEligibilityScheduleRequestName} öğesini rol atamasının GUID tanımlayıcısıyla değiştirin.
İstek gövdesinde {subscriptionId} değerini abonelik tanımlayıcınızla 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.
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.
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
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" } }
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 {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 : RoleAssignmentExistsmessage : Rol ataması zaten var. |
Benzer bir rol ataması zaten var | Bu rol atamasını yapabilir GET ve zamanlamasını doğrulayabilirsiniz. |
code : RoleAssignmentRequestPolicyValidationFailedmessage : 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 GET RoleManagementPolicyExpirationRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : 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 GET RoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : 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 : RoleAssignmentRequestPolicyValidationFailedmessage : 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 GET RoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : 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 GET RoleManagementPolicyEnablementRule |