Acessar, atualizar e excluir direitos no Privileged Access Manager

Depois de criar um direito de acesso, você pode visualizá-lo, atualizá-lo ou excluí-lo.

Antes de começar

Verifique se você ativou o Privileged Access Manager e configurou as permissões dele.

Conferir, atualizar e excluir direitos de acesso usando o console do Google Cloud

  1. Acesse a página Privileged Access Manager.

    Acessar o Privileged Access Manager

  2. Selecione a organização, a pasta ou o projeto em que você quer gerenciar os direitos de acesso.

  3. Na guia Direitos de acesso, clique em Direitos para todos os usuários. Nela você encontra os direitos disponíveis, os papéis concedidos e os solicitantes e os aprovadores válidos.

  4. Na tabela, clique em Mais opções na mesma linha do direito de acesso que você quer inspecionar.

    • Para conferir os detalhes do direito de acesso, clique em Visualizar detalhes do direito.

    • Para conferir as concessões associadas ao direito, clique em Conferir concessões associadas.

    • Para revogar todos os acessos ativos para o direito, clique em Revogar todos os acessos.

    • Para excluir o direito, clique em Excluir direito. Não é possível excluir um direito com permissões ativas. Primeiro, você precisa revogar as permissões.

  5. Para atualizar um direito, clique em Editar direito na mesma linha do direito de acesso que você quer atualizar.

    Tenha em mente o seguinte ao atualizar um direito:

    • A configuração de direito de acesso atualizada só é aplicável a benefícios solicitados após a atualização. No entanto, as mudanças de aprovador também se aplicam a solicitações de concessão que ainda não foram aprovadas ou negadas.

    • Ao atualizar um direito de acesso, não é possível mudar se a aprovação é necessária. Se você precisar mudar o estado de aprovação, crie um novo direito de acesso.

    • As mudanças nos solicitantes e aprovadores de um direito de acesso podem levar alguns minutos para serem propagadas.

Conferir direitos de forma programática

Para conferir os direitos de acesso de forma programática, é possível pesquisar, listar, receber e exportá-los.

Listar direitos de acesso

gcloud

O comando gcloud beta pam entitlements list lista os direitos que pertencem a um escopo específico.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual o direito de acesso pertence. Use o valor organization, folder ou project.
  • RESOURCE_ID: usada com RESOURCE_TYPE. O ID do projeto, da pasta ou da organização do Google Cloud que você quer gerenciar os direitos de acesso. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements list \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements list `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements list ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Você receberá uma resposta semelhante a esta:

additionalNotificationTargets:
  adminEmailRecipients:
  - alex@example.com
createTime: '2024-03-26T11:07:37.009498890Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 3600s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-03-26T11:07:40.056780645Z'

REST

O método listEntitlements da API Privileged Access Manager lista os direitos de acesso que pertencem a um escopo específico.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • SCOPE: a organização, a pasta ou o projeto em que o direito de acesso está, no formato de organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.
  • FILTER: opcional. Retorna os direitos de acesso cujos valores de campo correspondem a uma expressão AIP-160.
  • PAGE_SIZE: opcional. O número de itens a serem retornados em uma resposta.
  • PAGE_TOKEN: opcional. A página em que a resposta vai começar, usando um token de página retornado em uma resposta anterior.

Método HTTP e URL:

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

[
  {
    "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "createTime": "2023-11-21T17:28:39.962144708Z",
    "updateTime": "2023-11-21T17:28:43.160309410Z",
    "eligibleUsers": [
      {
        "principals": [
          "user:alex@example.com"
        ]
      }
    ],
    "approvalWorkflow": {
      "manualApprovals": {
        "steps": [
          {
            "approvers": [
              {
                "principals": [
                  "user:bola@example.com"
                ]
              }
            ],
            "approvalsNeeded": 1
          }
        ]
      }
    },
    "privilegedAccess": {
      "gcpIamAccess": {
        "resourceType": "cloudresourcemanager.googleapis.com/Project",
        "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
        "roleBindings": [
          {
            "role": "roles/storage.admin"
          }
        ]
      }
    },
    "maxRequestDuration": "14400s",
    "state": "AVAILABLE",
    "requesterJustificationConfig": {
      "unstructured": {}
    },
    "additionalNotificationTargets": {
      "adminEmailRecipients": [
        "alex@example.com"
      ]
    },
    "etag": "00000000000000000000000000000000000000000000000000000000000="
  }
]

Receber direitosde acesso

gcloud

O comando gcloud beta pam entitlements describe recupera um direito específico.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • ENTITLEMENT_ID: o ID direito de acesso que você quer ver os detalhes.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual o direito de acesso pertence. Use o valor organization, folder ou project.
  • RESOURCE_ID: usada com RESOURCE_TYPE. O ID do projeto, da pasta ou da organização do Google Cloud que você quer gerenciar os direitos de acesso. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements describe \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements describe `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements describe ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Você receberá uma resposta semelhante a esta:

additionalNotificationTargets:
  adminEmailRecipients:
  - alex@example.com
createTime: '2024-03-26T11:07:37.009498890Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 3600s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-03-26T11:07:40.056780645Z'

REST

O método getEntitlement da API Privileged Access Manager busca um direito de acesso específico.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • SCOPE: a organização, a pasta ou o projeto de onde o direito é retirado, no formato organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.
  • ENTITLEMENT_ID: o ID direito de acesso que você quer ver os detalhes.

Método HTTP e URL:

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
  "createTime": "2023-11-21T17:28:39.962144708Z",
  "updateTime": "2023-11-21T17:28:43.160309410Z",
  "eligibleUsers": [
    {
      "principals": [
        "user:alex@example.com"
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "user:bola@example.com"
              ]
            }
          ],
          "approvalsNeeded": 1
        }
      ]
    }
  },
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/Project",
      "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "roleBindings": [
        {
          "role": "roles/storage.admin"
        }
      ]
    }
  },
  "maxRequestDuration": "14400s",
  "state": "AVAILABLE",
  "requesterJustificationConfig": {
    "unstructured": {}
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "alex@example.com"
    ]
  },
  "etag": "00000000000000000000000000000000000000000000000000000000000="
}

Exportar direitos de acesso usando a gcloud CLI

O comando gcloud beta pam entitlements export exporta um direito específico para um arquivo YAML.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • ENTITLEMENT_ID: o ID do direito de exportação.
  • FILENAME: o nome de arquivo para exportar o conteúdo do direito.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual o direito de acesso pertence. Use o valor organization, folder ou project.
  • RESOURCE_ID: usada com RESOURCE_TYPE. O ID do projeto, da pasta ou da organização do Google Cloud que você quer gerenciar os direitos de acesso. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements export \
    ENTITLEMENT_ID \
    --destination=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements export `
    ENTITLEMENT_ID `
    --destination=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements export ^
    ENTITLEMENT_ID ^
    --destination=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Você receberá uma resposta semelhante a esta:

Exported [projects/my-project/locations/global/entitlements/ENTITLEMENT_ID] to 'FILENAME.yaml'.

Atualizar direitos de acesso de forma programática

Tenha em mente o seguinte ao atualizar um direito:

  • A configuração de direito de acesso atualizada só é aplicável a benefícios solicitados após a atualização. No entanto, as mudanças de aprovador também se aplicam a solicitações de concessão que ainda não foram aprovadas ou negadas.

  • Ao atualizar um direito de acesso, não é possível mudar se a aprovação é necessária. Se você precisar mudar o estado de aprovação, crie um novo direito de acesso.

  • As mudanças nos solicitantes e aprovadores de um direito de acesso podem levar alguns minutos para serem propagadas.

gcloud

O comando gcloud beta pam entitlements update atualiza um direito de acesso específico.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • ENTITLEMENT_ID: o ID do direito de acesso a ser atualizado.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual o direito de acesso pertence. Use o valor organization, folder ou project.
  • RESOURCE_ID: usada com RESOURCE_TYPE. O ID do projeto, da pasta ou da organização do Google Cloud que você quer gerenciar os direitos de acesso. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.
  • FILENAME: um arquivo que contém a configuração modificada do direito de acesso. Para criar esse arquivo, peça ou exporte o direito de acesso atual, salve a resposta em um arquivo YAML e modifique-a para usar como o corpo da solicitação de atualização. É necessário incluir a ETAG no corpo para atualizar a versão mais recente do direito de acesso. Para saber quais campos podem ser alterados ou adicionados, consulte Criar direitos de acesso de forma programática.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements update \
    ENTITLEMENT_ID \
    --entitlement-file=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements update `
    ENTITLEMENT_ID `
    --entitlement-file=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements update ^
    ENTITLEMENT_ID ^
    --entitlement-file=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Você receberá uma resposta semelhante a esta:

Request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Updated entitlement [ENTITLEMENT_ID].
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approvers:
      - principals:
        - user:alex@example.com
createTime: '2024-04-09T02:39:37.011866832Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 7200s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-04-09T02:39:40.066770306Z'

REST

O método updateEntitlement da API Privileged Access Manager atualiza um direito de acesso específico.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • SCOPE: a organização, a pasta ou o projeto em que o direito de acesso está, no formato de organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.
  • ENTITLEMENT_ID: o ID do direito de acesso a ser atualizado.
  • UPDATED_FIELDS: uma lista separada por vírgulas de campos que estão sendo atualizados no direito de acesso. Por exemplo:

    ?updateMask=privilegedAccess,maxRequestDuration

    Para todos os campos atualizáveis, defina a máscara de atualização como *.

  • REQUEST_ID: opcional. Precisa ser um UUID diferente de zero. Se o servidor receber uma solicitação com um ID, ele vai verificar se outra solicitação com esse ID já foi concluída nos últimos 60 minutos. Nesse caso, a nova solicitação será ignorada.
  • request.json: um arquivo que contém a configuração modificada do direito de acesso. Para criar esse arquivo, peça ou exporte o direito de acesso atual, salve a resposta em um arquivo request.json e modifique-a para usar como o corpo da solicitação de atualização. É necessário incluir a ETAG no corpo para atualizar a versão mais recente do direito de acesso. Para saber quais campos podem ser alterados ou adicionados, consulte Criar direitos de acesso de forma programática.

Método HTTP e URL:

PATCH https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID?updateMask=UPDATED_FIELDS&requestId=REQUEST_ID

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/my-project/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-25T01:55:02.544562950Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

Para verificar o progresso de uma operação de atualização, envie uma solicitação GET para o seguinte endpoint:

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID

Envie uma solicitação GET para o endpoint a seguir e liste todas as operações:

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations

Excluir direitos de acesso de forma programática

gcloud

O comando gcloud beta pam entitlements delete exclui um direito de acesso específico.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • ENTITLEMENT_ID: o ID do direito de acesso a ser excluído.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual o direito de acesso pertence. Use o valor organization, folder ou project.
  • RESOURCE_ID: usada com RESOURCE_TYPE. O ID do projeto, da pasta ou da organização do Google Cloud que você quer gerenciar os direitos de acesso. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements delete \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements delete `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements delete ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Você receberá uma resposta semelhante a esta:

Delete request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Deleted entitlement [ENTITLEMENT_ID].

REST

O método deleteEntitlement da API Privileged Access Manager exclui um direito de acesso específico.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • SCOPE: a organização, a pasta ou o projeto para excluir o direito de acesso, no formato de organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Os IDs do projeto são strings alfanuméricas, como my-project. Os códigos de pastas e organizações são numéricos, como 123456789012.
  • ENTITLEMENT_ID: o ID do direito de acesso a ser excluído.
  • REQUEST_ID: opcional. Precisa ser um UUID diferente de zero. Se o servidor receber uma solicitação com um ID, ele vai verificar se outra solicitação com esse ID já foi concluída nos últimos 60 minutos. Nesse caso, a nova solicitação será ignorada.

Método HTTP e URL:

DELETE https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID?requestId=REQUEST_ID

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/my-project/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-06T02:28:28.020293460Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

Para verificar o progresso de uma operação de exclusão, envie uma solicitação GET para o seguinte endpoint:

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID

Envie uma solicitação GET para o endpoint a seguir e liste todas as operações:

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations