Elevar o acesso para gerenciar todas as assinaturas e grupos de gerenciamento do Azure

Como um Administrador Global no Azure AD (Azure Active Directory), talvez você não tenha acesso a todas as assinaturas e grupos de gerenciamento em seu diretório. Este artigo descreve maneiras de elevar o acesso para todas as assinaturas e grupos de gerenciamento.

Observação

Para obter informações sobre como exibir ou excluir dados pessoais, confira Solicitações do titular dos dados do Azure para RGPD. Para obter mais informações sobre o GDPR, confira a seção GDPR da Central de Confiabilidade da Microsoft e a seção GDPR do Portal de Confiança do Serviço.

Por que você precisa elevar o acesso?

Se você for um Administrador global, pode desejar em algum momento realizar as seguintes ações:

  • Recuperar o acesso a um grupo de gerenciamento ou assinatura do Azure quando um usuário tiver perdido o acesso
  • Conceder a outro usuário ou a você mesmo acesso a uma assinatura ou grupo de gerenciamento do Azure
  • Ver todas as assinaturas ou grupos de gerenciamento do Azure em uma organização
  • Permitir o acesso de um aplicativo de automação (como um aplicativo de faturamento ou de auditoria) a todas as assinaturas do Azure ou grupos de gerenciamento

Como funciona o acesso elevado?

Os recursos do Azure AD e do Azure são protegidos independentemente um do outro. Ou seja, as atribuições de função do Azure AD não concedem acesso aos recursos do Azure, e as atribuições de função do Azure não concedem acesso ao Azure AD. No entanto, se você for um Administrador Global no Azure AD, poderá atribuir a si mesmo acesso a todas as assinaturas e grupos de gerenciamento do Azure em seu diretório. Use esse recurso se você não tiver acesso aos recursos de assinatura do Azure, como máquinas virtuais ou contas de armazenamento, e quiser usar o privilégio de administrador global para obter acesso a esses recursos.

Quando você elevar seu acesso, você receberá a função Administrador de Acesso do Usuário no Azure no escopo da raiz (/). Isso permite que você visualize todos os recursos e atribua acesso a qualquer assinatura ou grupo de gerenciamento no diretório. As atribuições da função de Administrador de acesso do usuário podem ser removidas usando o Azure PowerShell, CLI do Azure ou a API REST.

Você deve remover esse acesso elevado depois de fazer as alterações necessárias no escopo raiz.

Elevar o acesso

Portal do Azure

Elevar o acesso de um administrador global

Siga estas etapas para elevar o acesso de um administrador global usando o portal do Azure.

  1. Faça login no Portal do Azure ou no centro de administração do Active Directory do Azure como Administrador Global.

    Se você estiver usando Azure AD Privileged Identity Management, ative sua atribuição de função de Administrador global.

  2. Abra o Azure Active Directory.

  3. Em Gerenciar, selecione Propriedades.

    Selecione Propriedades para as propriedades do Azure Active Directory - captura de tela

  4. Em Gerenciamento de acesso para recursos do Azure, defina a alternância como Sim.

    Gerenciamento de acesso para recursos do Azure - captura de tela

    Ao definir a alternância para Sim, fica designada a função de Administrador de Acesso do Usuário no Azure RBAC no escopo raiz (/). Isso concede a você permissão para atribuir funções a todas as assinaturas e grupos de gerenciamento do Azure associados a esse diretório do AD do Azure. Essa alternância está disponível apenas para usuários com a função de administrador global no Azure AD.

    Quando você define a alternância como Não, a função Administrador de Acesso do Usuário no RBAC do Azure é removida da sua conta de usuário. Você não pode mais atribuir funções a todas as assinaturas e grupos de gerenciamento do Azure associados a esse diretório do AD do Azure. Você pode exibir e gerenciar somente as assinaturas do Azure e os grupos de gerenciamento aos quais você recebeu acesso.

    Observação

    Se você estiver usando o Privileged Identity Management, desativar sua atribuição de função não altera a alternância do Gerenciamento de acesso para recursos do Azure para Não. Para manter o acesso privilegiado mínimo, recomendamos que você defina essa alternância para Não antes de desativar sua atribuição de função.

  5. Clique em Salvar, para salvar suas configurações.

    Essa configuração não é uma propriedade global, aplicando-se somente ao usuário conectado no momento. Você não pode elevar o acesso para todos os membros da função de Administrador Global.

  6. Saia e entre novamente para atualizar o seu acesso.

    Agora você deve ter acesso a todas as assinaturas e grupos de gerenciamento em seu diretório. Ao visualizar o painel de Controle de acesso (IAM), você notará que recebeu a função de Administrador de Acesso do Usuário no escopo raiz.

    Atribuições de função de assinatura com escopo de raiz – captura de tela

  7. Faça as alterações necessárias no acesso elevado.

    Para obter informações sobre como atribuir funções, consulte Atribuir funções do Azure usando o portal do Azure. Se você estiver usando o Privileged Identity Management, consulte Descobrir recursos do Azure para gerenciar ou Atribuir funções de recursos do Azure.

  8. Execute as etapas na seção a seguir para remover o acesso elevado.

Remover acesso elevado

Para remover a atribuição da função Administrador de Acesso do Usuário no escopo raiz (/), siga estas etapas.

  1. Entre com o mesmo usuário que foi usado para elevar o acesso.

  2. Na lista de navegação, clique em Azure Active Directory, depois clique em Propriedades.

  3. Defina a alternância de Gerenciamento de acesso para recursos do Azure para Não. Como essa é uma configuração por usuário, você deve estar conectado como o mesmo usuário que foi usado para elevar o acesso.

    Se você tentar remover a atribuição da função Administrador de Acesso do Usuário no painel Controle de acesso (IAM), verá a seguinte mensagem. Para remover a atribuição de função, você deve definir a alternância de volta para Não ou usar Azure PowerShell, CLI do Azure ou a API REST.

    Remover atribuições de função com escopo raiz

  4. Saia como Administrador global.

    Se você estiver usando Privileged Identity Management, desative sua atribuição de função de Administrador global.

    Observação

    Se você estiver usando o Privileged Identity Management, desativar sua atribuição de função não altera a alternância do Gerenciamento de acesso para recursos do Azure para Não. Para manter o acesso privilegiado mínimo, recomendamos que você defina essa alternância para Não antes de desativar sua atribuição de função.

Azure PowerShell

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Listar atribuição de função no escopo raiz (/)

Para listar a atribuição de função de Administrador de Acesso do Usuário para um usuário no escopo raiz (/), use o comando Get-AzRoleAssignment.

Get-AzRoleAssignment | where {$_.RoleDefinitionName -eq "User Access Administrator" `
  -and $_.SignInName -eq "<username@example.com>" -and $_.Scope -eq "/"}
RoleAssignmentId   : /providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope              : /
DisplayName        : username
SignInName         : username@example.com
RoleDefinitionName : User Access Administrator
RoleDefinitionId   : 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
ObjectId           : 22222222-2222-2222-2222-222222222222
ObjectType         : User
CanDelegate        : False

Remover acesso elevado

Para remover a atribuição de função de Administrador de Acesso do Usuário para você ou outro usuário no escopo raiz (/), siga estas etapas.

  1. Entre como um usuário que possa remover o acesso com privilégios elevados. Esse pode ser o mesmo usuário que foi usado para elevar o acesso ou outro Administrador Global com acesso elevado no escopo raiz.

  2. Use o comando Remove-AzRoleAssignment para remover a atribuição de função de Administrador de Acesso do Usuário.

    Remove-AzRoleAssignment -SignInName <username@example.com> `
      -RoleDefinitionName "User Access Administrator" -Scope "/"
    

CLI do Azure

Elevar o acesso de um administrador global

Use as etapas básicas a seguir para elevar o acesso de um Administrador global usando o CLI do Azure.

  1. Use o comando az rest para chamar o elevateAccess ponto de extremidade, que concede a você a função de Administrador de Acesso do Usuário no escopo raiz (/).

    az rest --method post --url "/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
    
  2. Faça as alterações necessárias no acesso elevado.

    Para obter informações sobre como atribuir funções, consulte Atribuir funções do Azure usando o CLI do Azure.

  3. Execute as etapas em uma seção posterior para remover seu acesso elevado.

Listar atribuição de função no escopo raiz (/)

Para listar a atribuição de função de Administrador de Acesso do Usuário para um usuário no escopo raiz (/), use o comando az role assignment list.

az role assignment list --role "User Access Administrator" --scope "/"
[
  {
    "canDelegate": null,
    "id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
    "name": "11111111-1111-1111-1111-111111111111",
    "principalId": "22222222-2222-2222-2222-222222222222",
    "principalName": "username@example.com",
    "principalType": "User",
    "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
    "roleDefinitionName": "User Access Administrator",
    "scope": "/",
    "type": "Microsoft.Authorization/roleAssignments"
  }
]

Remover acesso elevado

Para remover a atribuição de função de Administrador de Acesso do Usuário para você ou outro usuário no escopo raiz (/), siga estas etapas.

  1. Entre como um usuário que possa remover o acesso com privilégios elevados. Esse pode ser o mesmo usuário que foi usado para elevar o acesso ou outro Administrador Global com acesso elevado no escopo raiz.

  2. Use o comando az role assignment delete para remover a atribuição de função de Administrador de Acesso do Usuário.

    az role assignment delete --assignee username@example.com --role "User Access Administrator" --scope "/"
    

API REST

Pré-requisitos

Você deve usar as versões a seguir:

  • 2015-07-01 ou posterior para listar e remover atribuições de função
  • 2016-07-01 ou posterior para elevar o acesso
  • 2018-07-01-preview ou posterior para listar atribuições de negação

Para obter mais informações, confira as Versões de API das APIs REST do RBAC do Azure.

Elevar o acesso de um administrador global

Use as etapas básicas a seguir para elevar o acesso de um Administrador global usando a API REST.

  1. Usando REST, chame elevateAccess, que concede a você a função de Administrador de Acesso do Usuário no escopo raiz (/).

    POST https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01
    
  2. Faça as alterações necessárias no acesso elevado.

    Para obter informações sobre como atribuir funções, consulte Atribuir funções do Azure usando a API REST.

  3. Execute as etapas em uma seção posterior para remover seu acesso elevado.

Listar atribuições de função no escopo raiz (/)

Você pode listar todas as atribuições de função para um usuário no escopo raiz (/).

  • Chame as Atribuições de Função – Listar para Escopo , em que {objectIdOfUser} é a ID do objeto do usuário cujas atribuições de função você deseja recuperar.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectIdOfUser}'
    

Listar atribuições de negação no escopo raiz (/)

É possível listar todas as atribuições de negação para um usuário no escopo raiz (/).

  • Chame GET denyAssignments, em que {objectIdOfUser} é a ID de objeto do usuário cujas atribuições de negação você deseja recuperar.

    GET https://management.azure.com/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01&$filter=gdprExportPrincipalId+eq+'{objectIdOfUser}'
    

Remover acesso elevado

Quando você chama elevateAccess, cria uma atribuição de função para si mesmo, para revogar esses privilégios, é necessário remover a atribuição de função de Administrador de Acesso do Usuário para você mesmo no escopo raiz (/).

  1. Chame Definições de Função – GET, em que roleName é igual a Administrador de Acesso do Usuário, para determinar a ID do nome da função de Administrador de Acesso do Usuário.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?api-version=2022-04-01&$filter=roleName+eq+'User Access Administrator'
    
    {
      "value": [
        {
          "properties": {
      "roleName": "User Access Administrator",
      "type": "BuiltInRole",
      "description": "Lets you manage user access to Azure resources.",
      "assignableScopes": [
        "/"
      ],
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Authorization/*",
            "Microsoft.Support/*"
          ],
          "notActions": []
        }
      ],
      "createdOn": "0001-01-01T08:00:00.0000000Z",
      "updatedOn": "2016-05-31T23:14:04.6964687Z",
      "createdBy": null,
      "updatedBy": null
          },
          "id": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
          "type": "Microsoft.Authorization/roleDefinitions",
          "name": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9"
        }
      ],
      "nextLink": null
    }
    

    Salve a ID do parâmetro name, nesse caso: 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9.

  2. Você também precisa listar a atribuição de função para o administrador de diretório no escopo do diretório. Listar todas as atribuições no escopo de diretório para o principalId do administrador de diretório que fez a chamada de acesso elevar. Isso listará todas as atribuições no diretório para o objectid.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectid}'
    

    Observação

    Um administrador de diretório não deve ter muitas atribuições, se a consulta anterior retornar muitas atribuições, você também pode consultar todas as atribuições apenas no nível do escopo do diretório e, em seguida, filtrar os resultados: GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()

  3. As chamadas anteriores retornam uma lista de atribuições de função. Encontre a atribuição de função em que o escopo é "/" e o roleDefinitionId termina com o ID do nome da função que você encontrou na etapa 1 e principalId corresponde ao objectId do administrador de diretório.

    Atribuição de função de amostra:

    {
      "value": [
        {
          "properties": {
            "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
            "principalId": "{objectID}",
            "scope": "/",
            "createdOn": "2016-08-17T19:21:16.3422480Z",
            "updatedOn": "2016-08-17T19:21:16.3422480Z",
            "createdBy": "22222222-2222-2222-2222-222222222222",
            "updatedBy": "22222222-2222-2222-2222-222222222222"
          },
          "id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
          "type": "Microsoft.Authorization/roleAssignments",
          "name": "11111111-1111-1111-1111-111111111111"
        }
      ],
      "nextLink": null
    }
    

    Novamente, salve a ID do name parâmetro, neste caso 11111111-1111-1111-1111-111111111111.

  4. Por fim, use a ID da atribuição de função para remover a atribuição adicionada por elevateAccess:

    DELETE https://management.azure.com/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111?api-version=2022-04-01
    

Exibir logs de acesso elevado

Quando o acesso é elevado, uma entrada é adicionada aos logs. Como Administrador Global no Azure AD, pode ser conveniente verificar quando o acesso foi elevado e quem fez isso. As entradas de log de acesso elevado não são exibidas nos logs de atividades padrão, mas nos logs de atividades do diretório. Esta seção descreve diferentes maneiras de exibir os logs de acesso elevado.

Exibir logs de acesso elevado usando o portal do Azure

  1. Siga as etapas anteriores neste artigo para elevar o acesso.

  2. Entre no portal do Azure como um Administrador Global.

  3. Abra Monitorar>Log de atividades.

  4. Altere a lista Atividade para Atividade de Diretório.

  5. Pesquise a operação a seguir, o que significa a ação de acesso elevado.

    Assigns the caller to User Access Administrator role

    Captura de tela que mostra os logs de atividades do diretório no Monitor.

  6. Siga as etapas anteriores neste artigo para remover o acesso elevado.

Exibir logs de acesso elevado usando a CLI do Azure

  1. Siga as etapas anteriores neste artigo para elevar o acesso.

  2. Use o comando az login para entrar como Administrador Global.

  3. Use o comando az rest para fazer a chamada a seguir, na qual você terá que filtrar por uma data, conforme mostrado no exemplo de carimbo de data/hora, e especificar um nome de arquivo em que você deseja que os logs sejam armazenados.

    O url chama uma API para recuperar os logs no Microsoft.Insights. A saída será salva no arquivo.

    az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
    
  4. No arquivo de saída, pesquise elevateAccess.

    O log será semelhante ao seguinte, onde você pode ver o carimbo de data/hora de quando a ação ocorreu e quem a chamou.

      "submissionTimestamp": "2021-08-27T15:42:00.1527942Z",
      "subscriptionId": "",
      "tenantId": "33333333-3333-3333-3333-333333333333"
    },
    {
      "authorization": {
        "action": "Microsoft.Authorization/elevateAccess/action",
        "scope": "/providers/Microsoft.Authorization"
      },
      "caller": "user@example.com",
      "category": {
        "localizedValue": "Administrative",
        "value": "Administrative"
      },
    
  5. Siga as etapas anteriores neste artigo para remover o acesso elevado.

Delegar acesso a um grupo para exibir os logs de acesso elevado usando a CLI do Azure

Se você quiser obter os logs de acesso elevado periodicamente, poderá delegar acesso a um grupo e, em seguida, usar a CLI do Azure.

  1. Abra Azure Active Directory>Grupos.

  2. Crie um novo grupo de segurança e anote a ID do objeto de grupo.

  3. Siga as etapas anteriores neste artigo para elevar o acesso.

  4. Use o comando az login para entrar como Administrador Global.

  5. Use o comando az role assignment create para atribuir a função Leitor ao grupo que pode ler somente os logs no nível do diretório, que são encontrados em Microsoft/Insights.

    az role assignment create --assignee "{groupId}" --role "Reader" --scope "/providers/Microsoft.Insights"
    
  6. Adicione um usuário que lerá os logs para o grupo criado anteriormente.

  7. Siga as etapas anteriores neste artigo para remover o acesso elevado.

Agora um usuário no grupo pode executar o comando az rest periodicamente para exibir os logs de acesso elevado.

az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt

Próximas etapas