Partilhar via


Utilizar o PIM do Azure para gerir o acesso elegível com a API REST

O Azure Privileged Identity Management (PIM) permite-lhe limitar o acesso de administrador permanente a funções com privilégios, descobrir quem tem acesso e rever o acesso privilegiado. Este artigo descreve as formas comuns de gerir o acesso com a API REST.

Listar atribuições elegíveis

Para listar atribuições de funções elegíveis (acesso à lista), pode utilizar uma das Instâncias de Agendamento de Elegibilidade de Função – Lista para Agendamentos de Elegibilidade de Âmbito ou Função – Lista para APIs REST de Âmbito. Para refinar os resultados, especifique um âmbito e um filtro opcional. Para chamar a API, tem de ter acesso à Microsoft.Authorization/roleAssignments/read operação no âmbito especificado. Todas as funções incorporadas têm acesso a esta operação.

Importante

A diferença entre agendas e instâncias de agendamento é que, embora as instâncias de agendamento incluam apenas atribuições que estejam ativas no momento atual, as agendas também incluem atribuições que se tornarão ativas no futuro.

  1. Comece com o seguinte pedido:

    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}
    
  2. No URI, substitua {scope} pelo âmbito para o qual pretende listar as atribuições de função.

    Âmbito Tipo
    providers/Microsoft.Management/managementGroups/{mg-name} Grupo de Gestão
    subscriptions/{subscriptionId} Subscrição
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Grupo de recursos
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Recurso
  3. Substitua {filter} pela condição que pretende aplicar para filtrar a lista de atribuição de funções.

    Filtro Description
    $filter=atScope() Liste atribuições de funções apenas para o âmbito especificado, não incluindo as atribuições de funções em subscópios.
    $filter=principalId%20eq%20'{objectId}' Listar atribuições de funções para um utilizador, grupo ou principal de serviço especificado.
    $filter=roleDefinitionId%20eq%20'{roleDefinitionId}' Listar atribuições de funções para uma definição de função especificada.
    $filter=assignedTo('{objectId}') Listar atribuições de funções para um utilizador especificado, incluindo as herdadas de grupos.
    $filter=asTarget() Listar atribuições de funções para o utilizador ou principal de serviço atual, incluindo as herdadas de grupos.
    $filter=assignedTo('{objectId}')+and+atScope() Liste atribuições de funções para um utilizador especificado, incluindo as herdadas de grupos apenas para o âmbito especificado, não incluindo as atribuições de funções em subscópios.

Conceder atribuição elegível

Para criar uma atribuição de função elegível (conceder acesso), utilize os Pedidos de Agendamento de Elegibilidade de Função – Criar API REST e especifique o principal de segurança, definição de função, agenda, requestType = AdminAssign e âmbito. Para chamar esta API, tem de ter acesso à Microsoft.Authorization/roleAssignments/write operação. Das funções incorporadas, apenas o Proprietário e o Administrador de Acesso de Utilizador têm acesso a esta operação.

  1. Utilize a API REST de Definições de Função – Listar ou veja Funções incorporadas para obter o identificador da definição de função que pretende atribuir.

  2. Utilize uma ferramenta GUID para gerar um identificador exclusivo que será utilizado para o identificador de atribuição de função. O identificador tem o formato: 00000000-0000-0000-0000-000000000000

  3. Comece com o seguinte pedido e corpo:

    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
          }
        }
      }
    }
    
  4. No URI, substitua {scope} pelo âmbito da atribuição de função.

    Âmbito Tipo
    providers/Microsoft.Management/managementGroups/{mg-name} Grupo de Gestão
    subscriptions/{subscriptionId} Subscrição
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Grupo de recursos
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Recurso
  5. Substitua {roleEligibilityScheduleRequestName} pelo identificador GUID da atribuição de função.

  6. No corpo do pedido, substitua {subscriptionId} pelo identificador de subscrição.

  7. Substitua {roleDefinitionId} pelo identificador de definição de função.

  8. Substitua {principalId} pelo identificador de objeto do utilizador, grupo ou principal de serviço a quem será atribuída a função.

Remover atribuição elegível

Para remover uma atribuição de função elegível (remover acesso), utilize os Pedidos de Agendamento de Elegibilidade de Função – Criar API REST para criar um novo pedido para revogar a atribuição e especificar o principal de segurança, a definição de função, requestType = AdminRemove e o âmbito. Para chamar esta API, tem de ter acesso à Microsoft.Authorization/roleAssignments/write operação. Das funções incorporadas, apenas o Proprietário e o Administrador de Acesso de Utilizador têm acesso a esta operação.

  1. Utilize uma ferramenta GUID para gerar um identificador exclusivo que será utilizado para o identificador de atribuição de função. O identificador tem o formato: 00000000-0000-0000-0000-000000000000

  2. Comece com o seguinte pedido:

    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"
        }
    }
    
  3. No URI, substitua {scope} pelo âmbito para remover a atribuição de função.

    Âmbito Tipo
    providers/Microsoft.Management/managementGroups/{mg-name} Grupo de Gestão
    subscriptions/{subscriptionId} Subscrição
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Grupo de recursos
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1 Recurso
  4. Substitua {roleEligibilityScheduleRequestName} pelo identificador GUID da atribuição de função.

Erros comuns devolvidos para um novo pedido

Segue-se uma lista de erros comuns que pode encontrar ao criar um novo pedido e como os mitigar.

Mensagem de Erro Explanação Mitigação
code: RoleAssignmentExists
message: A atribuição de função já existe.
Já existe uma atribuição de função semelhante Pode GET esta atribuição de função e verificar a respetiva agenda.
code: RoleAssignmentRequestPolicyValidationFailed
message: As seguintes regras de política falharam: ["ExpirationRule"]
O ScheduleInfo especificado no pedido excede a duração máxima permitida Pode GET utilizar RoleManagementPolicy para este procedimento RoleDefinitionId e verificar o RoleManagementPolicyExpirationRule
code: RoleAssignmentRequestPolicyValidationFailed
message: As seguintes regras de política falharam: ["JustificationRule"]
Tem de especificar um Justification no corpo do pedido Pode GET utilizar RoleManagementPolicy para este procedimento RoleDefinitionId e verificar o RoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: As seguintes regras de política falharam: ["EligibilityRule"]
Não existe uma função válida RoleEligibilityScheduleInstance para ativar esta função Um administrador de recursos tem de criar um RoleEligibilityScheduleRequest para este principal
code: RoleAssignmentRequestPolicyValidationFailed
message: As seguintes regras de política falharam: ["TicketingRule"]
Tem de especificar um TicketInfo no corpo do pedido Pode GET utilizar RoleManagementPolicy para este procedimento RoleDefinitionId e verificar o RoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: As seguintes regras de política falharam: ["MfaRule"]
Tem de concluir o Multi-Factor Authentication do Azure para submeter este pedido Pode GET utilizar RoleManagementPolicy para este procedimento RoleDefinitionId e verificar o RoleManagementPolicyEnablementRule