Menggunakan Azure PIM untuk mengelola akses yang memenuhi syarat dengan REST API
Azure Privileged Identity Management (PIM) memungkinkan Anda membatasi akses administrator yang berdiri ke peran istimewa, menemukan siapa yang memiliki akses, dan meninjau akses istimewa. Artikel ini menjelaskan cara umum untuk mengelola akses menggunakan REST API.
Mencantumkan penugasan yang memenuhi syarat
Untuk mencantumkan penetapan peran yang memenuhi syarat (akses daftar), Anda dapat menggunakan salah satu Instans Jadwal Kelayakan Peran - Daftar Untuk Cakupan atau Jadwal Kelayakan Peran - Daftar Untuk Lingkup REST API. Untuk menyempurnakan hasil, Anda menentukan cakupan dan filter opsional. Untuk memanggil API, Anda harus memiliki akses ke Microsoft.Authorization/roleAssignments/read
operasi pada cakupan yang ditentukan. Semua peran bawaan diberikan akses ke operasi ini.
Penting
Perbedaan antara jadwal dan instans jadwal adalah bahwa sementara instans jadwal hanya menyertakan penugasan yang aktif pada waktu saat ini, jadwal juga mencakup penugasan yang akan menjadi aktif di masa mendatang.
Mulai dengan permintaan berikut:
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}
Di dalam URI, ganti {scope} dengan cakupan yang ingin Anda cantumkan penetapan perannya.
Cakupan Jenis providers/Microsoft.Management/managementGroups/{mg-name}
Grup Manajemen subscriptions/{subscriptionId}
Langganan subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Grup sumber daya subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1
Sumber daya Ganti {filter} dengan kondisi yang ingin Anda terapkan untuk memfilter daftar penetapan peran.
Filter Deskripsi $filter=atScope()
Cantumkan penetapan peran hanya untuk cakupan yang ditentukan, tidak termasuk penetapan peran pada sub-cakupan. $filter=principalId%20eq%20'{objectId}'
Mencantumkan penetapan peran untuk pengguna, grup, atau perwakilan layanan tertentu. $filter=roleDefinitionId%20eq%20'{roleDefinitionId}'
Mencantumkan penetapan peran untuk definisi peran tertentu. $filter=assignedTo('{objectId}')
Mencantumkan penetapan peran untuk pengguna tertentu, termasuk yang diwarisi dari grup. $filter=asTarget()
Mencantumkan penetapan peran untuk pengguna atau perwakilan layanan saat ini, termasuk yang diwarisi dari grup. $filter=assignedTo('{objectId}')+and+atScope()
Mencantumkan penetapan peran untuk pengguna tertentu, termasuk yang diwarisi dari grup hanya untuk cakupan yang ditentukan, tidak termasuk penetapan peran pada sub-cakupan.
Memberikan penugasan yang memenuhi syarat
Untuk membuat penetapan peran yang memenuhi syarat (memberikan akses), Anda menggunakan Permintaan Jadwal Kelayakan Peran - Buat REST API dan tentukan prinsip keamanan, definisi peran, jadwal, requestType = AdminAssign
dan cakupan. Untuk memanggil API ini, Anda harus memiliki akses ke Microsoft.Authorization/roleAssignments/write
operasi. Dari peran bawaan, hanya Pemilik dan Admin Akses Pengguna yang diberikan akses ke operasi ini.
Gunakan Definisi Peran - Daftar REST API atau lihat Peran bawaan untuk mendapatkan pengidentifikasi untuk definisi peran yang ingin Anda tetapkan.
Gunakan alat GUID untuk menghasilkan pengidentifikasi unik yang akan digunakan untuk pengidentifikasi penetapan peran. Pengidentifikasi memiliki format:
00000000-0000-0000-0000-000000000000
Mulai dengan permintaan dan isi berikut:
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 } } } }
Dalam URI, ganti {cakupan} dengan cakupan untuk penetapan peran.
Cakupan Jenis providers/Microsoft.Management/managementGroups/{mg-name}
Grup Manajemen subscriptions/{subscriptionId}
Langganan subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Grup sumber daya subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1
Sumber daya Ganti {roleEligibilityScheduleRequestName} dengan pengidentifikasi GUID penetapan peran.
Dalam isi permintaan, ganti {subscriptionId} dengan pengidentifikasi langganan Anda.
Ganti {roleDefinitionId} dengan pengidentifikasi definisi peran.
Ganti {principalId} dengan pengidentifikasi objek pengguna, grup, atau perwakilan layanan yang akan diberi peran.
Menghapus penugasan yang memenuhi syarat
Untuk menghapus penetapan peran yang memenuhi syarat (menghapus akses), gunakan Permintaan Jadwal Kelayakan Peran - Buat REST API untuk membuat permintaan baru untuk mencabut penugasan dan menentukan prinsip keamanan, definisi peran, requestType = AdminRemove
dan cakupan. Untuk memanggil API ini, Anda harus memiliki akses ke Microsoft.Authorization/roleAssignments/write
operasi. Dari peran bawaan, hanya Pemilik dan Admin Akses Pengguna yang diberikan akses ke operasi ini.
Gunakan alat GUID untuk menghasilkan pengidentifikasi unik yang akan digunakan untuk pengidentifikasi penetapan peran. Pengidentifikasi memiliki format:
00000000-0000-0000-0000-000000000000
Mulai dengan permintaan berikut:
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" } }
Dalam URI, ganti {scope} dengan cakupan untuk penetapan peran.
Cakupan Jenis providers/Microsoft.Management/managementGroups/{mg-name}
Grup Manajemen subscriptions/{subscriptionId}
Langganan subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Grup sumber daya subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1
Sumber daya Ganti {roleEligibilityScheduleRequestName} dengan pengidentifikasi GUID penetapan peran.
Kesalahan umum yang dikembalikan untuk permintaan baru
Berikut ini adalah daftar kesalahan umum yang mungkin Anda temui saat membuat permintaan baru dan cara menguranginya.
Pesan kesalahan | Penjelasan | Mitigasi |
---|---|---|
code : RoleAssignmentExistsmessage : Penetapan Peran sudah ada. |
Penetapan peran serupa sudah ada | Anda dapat GET menetapkan peran ini dan memverifikasi jadwalnya. |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Aturan kebijakan berikut gagal: ["ExpirationRule"] |
yang ScheduleInfo ditentukan dalam permintaan melebihi durasi maksimum yang diizinkan |
Anda dapat GET RoleManagementPolicy untuk ini RoleDefinitionId dan memeriksa RoleManagementPolicyExpirationRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Aturan kebijakan berikut gagal: ["JustificationRule"] |
Anda perlu menentukan Justification dalam isi permintaan |
Anda dapat GET RoleManagementPolicy untuk ini RoleDefinitionId dan memeriksa RoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Aturan kebijakan berikut gagal: ["EligibilityRule"] |
RoleEligibilityScheduleInstance Valid tidak ada untuk mengaktifkan peran ini |
Admin sumber daya perlu membuat RoleEligibilityScheduleRequest untuk prinsipal ini |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Aturan kebijakan berikut gagal: ["TicketingRule"] |
Anda perlu menentukan TicketInfo dalam isi permintaan |
Anda dapat GET RoleManagementPolicy untuk ini RoleDefinitionId dan memeriksa RoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Aturan kebijakan berikut gagal: ["MfaRule"] |
Anda perlu menyelesaikan Azure Multi-Factor Authentication untuk mengirimkan permintaan ini | Anda dapat GET RoleManagementPolicy untuk ini RoleDefinitionId dan memeriksa RoleManagementPolicyEnablementRule |