Použití Azure PIM ke správě oprávněného přístupu pomocí rozhraní REST API
Azure Privileged Identity Management (PIM) umožňuje omezit stálý přístup správce na privilegované role, zjistit, kdo má přístup, a kontrolovat privilegovaný přístup. Tento článek popisuje běžné způsoby správy přístupu pomocí rozhraní REST API.
Vypsat způsobilá přiřazení
Pokud chcete zobrazit seznam oprávněných přiřazení rolí (přístup na seznam), můžete použít některou z instancí plánu způsobilosti rolí – Seznam pro rozsah nebo plány způsobilosti rolí – Seznam pro rozhraní REST API oboru. Pokud chcete výsledky upřesnit, zadejte obor a volitelný filtr. Pokud chcete volat rozhraní API, musíte mít přístup k Microsoft.Authorization/roleAssignments/read
operaci v zadaném oboru. Přístup k této operaci jsou uděleny všem předdefinovaným rolím .
Důležité
Rozdíl mezi instancemi schedules a schedule spočívá v tom, že zatímco instance plánu zahrnují pouze přiřazení, která jsou aktivní v aktuálním čase, plány zahrnují také přiřazení, která se stanou aktivními v budoucnu.
Začněte následujícím požadavkem:
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}
V rámci identifikátoru URI nahraďte {scope} oborem, pro který chcete vypsat přiřazení rolí.
Obor Typ providers/Microsoft.Management/managementGroups/{mg-name}
Skupina pro správu subscriptions/{subscriptionId}
Předplatné subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Skupina prostředků subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1
Prostředek Nahraďte {filter} podmínkou, kterou chcete použít k filtrování seznamu přiřazení rolí.
Filtrovat Description $filter=atScope()
Zobrazí seznam přiřazení rolí pouze pro zadaný obor, bez přiřazení rolí v dílčích oborech. $filter=principalId%20eq%20'{objectId}'
Vypíše přiřazení rolí pro zadaného uživatele, skupinu nebo instanční objekt. $filter=roleDefinitionId%20eq%20'{roleDefinitionId}'
Vypíše přiřazení rolí pro zadanou definici role. $filter=assignedTo('{objectId}')
Zobrazí seznam přiřazení rolí pro konkrétního uživatele, včetně těch zděděných ze skupin. $filter=asTarget()
Vypíše přiřazení rolí pro aktuálního uživatele nebo instanční objekt, včetně těch zděděných ze skupin. $filter=assignedTo('{objectId}')+and+atScope()
Zobrazí seznam přiřazení rolí pro zadaného uživatele, včetně přiřazení rolí zděděných ze skupin pouze pro zadaný obor, bez přiřazení rolí v dílčích oborech.
Udělení způsobilého přiřazení
K vytvoření oprávněného přiřazení role (udělení přístupu) použijete požadavky na plán způsobilosti rolí – Vytvoření rozhraní REST API a zadáte objekt zabezpečení, definici role, plán, typ požadavku = AdminAssign
a obor. Abyste mohli toto rozhraní API volat, musíte mít přístup k Microsoft.Authorization/roleAssignments/write
operaci. Z předdefinovaných rolí má přístup k této operaci pouze vlastník a správce uživatelských přístupů.
K získání identifikátoru definice role, kterou chcete přiřadit, použijte téma Definice rolí – Výpis rozhraní REST API nebo si projděte téma Předdefinované role .
Pomocí nástroje GUID vygenerujte jedinečný identifikátor, který se použije pro identifikátor přiřazení role. Identifikátor má formát:
00000000-0000-0000-0000-000000000000
Začněte následujícím požadavkem a textem:
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 } } } }
V identifikátoru URI nahraďte {scope} oborem pro přiřazení role.
Obor Typ providers/Microsoft.Management/managementGroups/{mg-name}
Skupina pro správu subscriptions/{subscriptionId}
Předplatné subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Skupina prostředků subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1
Prostředek Nahraďte {roleEligibilityScheduleRequestName} identifikátorem GUID přiřazení role.
V textu požadavku nahraďte {subscriptionId} identifikátorem vašeho předplatného.
Nahraďte {roleDefinitionId} identifikátorem definice role.
Nahraďte {principalId} identifikátorem objektu uživatele, skupiny nebo instančního objektu, kterému bude role přiřazena.
Odebrání oprávněného přiřazení
Pokud chcete odebrat oprávněné přiřazení role (odebrat přístup), použijte požadavky na plán způsobilosti rolí – Vytvoření rozhraní REST API k vytvoření nové žádosti o odvolání přiřazení a zadejte objekt zabezpečení, definici role, typ požadavku = AdminRemove
a obor. Pokud chcete toto rozhraní API volat, musíte mít k operaci přístup Microsoft.Authorization/roleAssignments/write
. Z předdefinovaných rolí má přístup k této operaci pouze vlastník a správce uživatelských přístupů.
Pomocí nástroje GUID vygenerujte jedinečný identifikátor, který se použije pro identifikátor přiřazení role. Identifikátor má formát:
00000000-0000-0000-0000-000000000000
Začněte následujícím požadavkem:
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" } }
V rámci identifikátoru URI nahraďte {scope} oborem pro odebrání přiřazení role.
Obor Typ providers/Microsoft.Management/managementGroups/{mg-name}
Skupina pro správu subscriptions/{subscriptionId}
Předplatné subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Skupina prostředků subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1
Prostředek Nahraďte {roleEligibilityScheduleRequestName} identifikátorem GUID přiřazení role.
Běžné chyby vrácené pro nový požadavek
Následuje seznam běžných chyb, ke kterým může dojít při vytváření nového požadavku, a postup jejich zmírnění.
Chybová zpráva | Explanantion | Omezení rizik |
---|---|---|
code : RoleAssignmentExistsmessage : Přiřazení role již existuje. |
Podobné přiřazení role už existuje. | Tuto roli můžete GET přiřadit a ověřit její plán. |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Následující pravidla zásad se nezdařila: ["ExpirationRule"] |
Hodnota ScheduleInfo zadaná v požadavku překračuje maximální povolenou dobu trvání. |
Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyExpirationRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Následující pravidla zásad se nezdařila: ["JustificationRule"] |
V textu požadavku musíte zadat parametr .Justification |
Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Následující pravidla zásad selhala: ["Pravidlo způsobilosti"] |
Neexistuje platný účet RoleEligibilityScheduleInstance pro aktivaci této role. |
Správce prostředků musí pro tento objekt zabezpečení vytvořit RoleEligibilityScheduleRequest objekt . |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Následující pravidla zásad selhala: ["TicketingRule"] |
V textu požadavku musíte zadat parametr .TicketInfo |
Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Následující pravidla zásad selhala: ["MfaRule"] |
Abyste mohli odeslat tuto žádost, musíte dokončit službu Azure Multi-Factor Authentication. | Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule |