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.

  3. Na guia Direitos, clique em Direitos para todos os usuários. Aqui você encontra os direitos disponíveis, os papéis que eles concedem e os solicitantes e aprovadores válidos.

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

    • Para conferir os detalhes do direito, clique em Ver 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 que você quer atualizar.

    Tenha em mente o seguinte ao atualizar um direito:

    • A configuração de direito atualizada só se aplica 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, não é possível mudar se a aprovação é necessária. Se você precisar mudar o estado de aprovação, crie um novo direito.

    • As mudanças nos solicitantes e aprovadores de um direito 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 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 para que você quer gerenciar os direitos. 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 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 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 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 de onde 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 direitos

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 do direito a que você quer conferir os detalhes.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual o direito 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 para que você quer gerenciar os direitos. 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 recupera um direito 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 é recebido, 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 do direito a que você quer 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 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 para que você quer gerenciar os direitos. 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 forma programática

Tenha em mente o seguinte ao atualizar um direito:

  • A configuração de direito atualizada só se aplica 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, não é possível mudar se a aprovação é necessária. Se você precisar mudar o estado de aprovação, crie um novo direito.

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

gcloud

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

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

  • ENTITLEMENT_ID: o ID do direito a ser atualizado.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual o direito 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 para que você quer gerenciar os direitos. 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. 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 sua solicitação de atualização. É necessário incluir a ETAG no corpo para atualizar a versão mais recente do direito. 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 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 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 a ser atualizado.
  • UPDATED_FIELDS: uma lista separada por vírgulas de campos que estão sendo atualizados no direito. 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. Para criar esse arquivo, peça ou exporte o direito de acesso existente, salve a resposta em um arquivo chamado request.json e modifique-o para usar como o corpo da solicitação de atualização. É necessário incluir o ETAG no corpo para atualizar a versão mais recente do direito. Para saber quais campos disponíveis 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 forma programática

gcloud

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

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

  • ENTITLEMENT_ID: o ID do direito a ser excluído.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual o direito 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 para que você quer gerenciar os direitos. 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 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 será excluído, 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 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 para listar todas as operações:

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