Sdílet prostřednictvím


Použití Azure PIM ke správě aktivní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 zkontrolovat privilegovaný přístup. Tento článek popisuje běžné způsoby správy přístupu pomocí rozhraní REST API.

Výpis aktivních přiřazení

Pokud chcete zobrazit seznam aktivních přiřazení rolí (přístup k seznamu), můžete použít jednu z instancí plánu přiřazení rolí – Seznampro obor nebo plány přiřazení rolí – Seznam pro rozhraní REST API oboru. Pokud chcete upřesnit výsledky, 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 se udělí všem předdefinovaným rolím .

Důležité

Rozdíl mezi instancemi plánů a plánů 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á budou aktivní v budoucnu.

  1. Začněte následujícím požadavkem:

    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. V rámci identifikátoru URI nahraďte {scope} oborem, pro který chcete zobrazit seznam 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
  3. Nahraďte {filter} podmínkou, kterou chcete použít pro 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}') Vypíše přiřazení rolí pro zadané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ě těch zděděných ze skupin pouze pro zadaný obor, bez přiřazení rolí v dílčích oborech.

Udělení aktivního přiřazení

K vytvoření aktivního přiřazení role (udělení přístupu) použijete požadavky plánu přiřazení rolí – Vytvoření rozhraní REST API a určí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í je k této operaci udělen pouze vlastník a správce uživatelských přístupů.

  1. K získání identifikátoru definice role, kterou chcete přiřadit, použijte rozhraní REST API pro výpis rolí nebo si projděte předdefinované role .

  2. 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

  3. Začněte následujícím požadavkem a textem:

    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. V rámci 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
  5. Nahraďte {roleAssignmentScheduleRequestName} identifikátorem GUID přiřazení role.

  6. V textu požadavku nahraďte {subscriptionId} identifikátorem vašeho předplatného.

  7. Nahraďte {roleDefinitionId} identifikátorem definice role.

  8. Nahraďte {principalId} identifikátorem objektu uživatele, skupiny nebo instančního objektu, kterému bude přiřazena role.

Odebrat aktivní přiřazení

Pokud chcete odebrat aktivní přiřazení role (odebrat přístup), pomocí žádosti o plán přiřazení rolí – Vytvoření rozhraní REST API vytvořte novou žádost o odvolání přiřazení a zadejte objekt zabezpečení, definici role, typ požadavku = AdminRemove a obor. Abyste mohli volat toto rozhraní API, musíte mít k operaci přístup Microsoft.Authorization/roleAssignments/write . Z předdefinovaných rolí je k této operaci udělen pouze vlastník a správce uživatelských přístupů.

  1. 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

  2. Začněte následujícím požadavkem:

    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. V 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
  4. Nahraďte {roleAssignmentScheduleRequestName} identifikátorem GUID přiřazení role.

Aktivace oprávněného přiřazení role

Pokud chcete aktivovat oprávněné přiřazení role (získat aktivovaný přístup), pomocí žádosti o plán přiřazení rolí – Vytvoření rozhraní REST API vytvořte nový požadavek a určete objekt zabezpečení, definici role, typ požadavku = SelfActivate a obor. Pokud chcete volat toto rozhraní API, musíte mít v oboru oprávněné přiřazení role.

  1. 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

  2. [Volitelné] Zvolte, RoleEligibilitySchedule které chcete aktivovat, a získejte RoleEligibilityScheduleId z rozhraní API pro plány způsobilosti rolí , které se předá jako LinkedRoleEligibilityScheduleId. Tato možnost je volitelná, a pokud není předána, systém vybere RoleEligibilitySchedule.

  3. Začněte následujícím požadavkem:

    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. V 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
  5. Nahraďte {roleAssignmentScheduleRequestName} identifikátorem GUID přiřazení role.

Deaktivace aktivního přiřazení role

Pokud chcete zrušit aktivaci aktivovaného přiřazení role (odebrat aktivovaný přístup), pomocí žádosti o plán přiřazení rolí – Vytvoření rozhraní REST API vytvořte nový požadavek a určete objekt zabezpečení, definici role, typ požadavku = SelfDeactivate a obor. Pokud chcete volat toto rozhraní API, musíte mít v oboru aktivované přiřazení role.

  1. 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

  2. Začněte následujícím požadavkem:

    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. V 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
  4. Nahraďte {roleAssignmentScheduleRequestName} identifikátorem GUID přiřazení role.

Just-Enough-Access (JEA)

Pokud má uživatel oprávněné přiřazení role u prostředku (nadřazeného), může se rozhodnout aktivovat roli na úrovni podřízeného oboru nadřazeného prostředku místo celého nadřazeného oboru. Pokud má Contributor například uživatel v předplatném oprávněnou roli, může ji aktivovat na úrovni podřízené skupiny prostředků předplatného.

Pokud chcete získat seznam všech podřízených položek prostředku, ke kterému máte oprávněný přístup, můžete použít rozhraní API oprávněných podřízených prostředků .

  1. Začněte následujícím požadavkem:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/eligibleChildResources?api-version=2020-10-01&$filter={filter}
    
  2. V rámci identifikátoru URI nahraďte {scope} oborem, pro který chcete zobrazit seznam 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ů
  3. Nahraďte {filter} podmínkou, kterou chcete použít pro filtrování seznamu přiřazení rolí.

    Filtrovat Description
    $filter=resourceType+eq+'Subscription' Vypište prostředky typu = 'Předplatné'.
    $filter=$filter=resourceType+eq+'subscription'+or+resourceType+eq+'resourcegroup'' Vypište prostředky typu = 'Předplatné' nebo = 'ResourceGroup'.
  4. id Použití libovolného podřízeného prostředku jako prostředku pro aktivaci scopeRoleAssignmentScheduleRequest

Běžné chyby vracené u nového požadavku

Následuje seznam běžných chyb, se kterými se můžete setkat při vytváření nové žádosti, a postup jejich zmírnění.

Chybová zpráva Explanantion Omezení rizik
code: RoleAssignmentExists
message: Přiřazení role již existuje.
Podobné přiřazení role už existuje. Můžete GET toto přiřazení role a ověřit její plán.
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad selhala: ["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: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad selhala: ["JustificationRule"]
V textu požadavku je potřeba zadat parametr Justification . Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad selhala: ["Pravidla způsobilosti"]
Pro aktivaci této role neexistuje platný RoleEligibilityScheduleInstance Správce prostředků musí RoleEligibilityScheduleRequest vytvořit objekt pro tento objekt zabezpečení.
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad selhala: ["TicketingRule"]
V textu požadavku je potřeba zadat parametr TicketInfo . Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad selhala: ["MfaRule"]
Pokud chcete odeslat tuto žádost, musíte dokončit Azure Multi-Factor Authentication. Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule