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.
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}
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.
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.
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/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 } } } }
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 {roleAssignmentScheduleRequestName} öğ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.
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.
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/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?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 {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.
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
[İsteğe bağlı] Etkinleştirmek istediğiniz bir
RoleEligibilitySchedule
seçin ve Rol Uygunluk Zamanlamaları API'sinden öğesinin olarak geçirilmesiniLinkedRoleEligibilityScheduleId
sağlayınRoleEligibilityScheduleId
. Bu isteğe bağlıdır ve geçirilmediyse sistem birRoleEligibilitySchedule
seçer.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 } }
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 {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.
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/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "SelfDeactivate" } }
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 {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.
Aşağıdaki istekle başlayın:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/eligibleChildResources?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 {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. id
Etkinleştirme için olarak kullanmakscope
ü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 : 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 |