Peça acesso elevado temporário com o Gestor de acesso privilegiado

Para elevar temporariamente os seus privilégios, pode pedir uma concessão relativamente a um direito no gestor de acesso privilegiado (PAM) durante um período fixo.

Uma autorização contém funções que lhe são concedidas após o êxito do seu pedido de concessão. Estas funções são removidas pelo gestor de acesso privilegiado quando a concessão termina.

Tenha em atenção o seguinte quando quiser pedir uma concessão contra uma autorização:

  • Só pode pedir concessões relativas a direitos de utilização aos quais foi adicionado. Para ser adicionado a uma concessão, contacte o principal que administra a concessão.

  • Só pode ter uma concessão ativa de cada vez para uma autorização.

  • Consoante a configuração, um pedido de concessão pode exigir aprovação para ser concedido.

  • Se um pedido de concessão exigir aprovação e não for aprovado nem recusado no prazo de 24 horas, o estado da concessão é alterado para Expired. Após esta ação, tem de fazer um novo pedido de concessão se a elevação de privilégios ainda for necessária.

  • Os pedidos de concessão bem-sucedidos podem demorar alguns minutos a entrar em vigor.

Peça uma concessão através da Trusted Cloud consola

Para pedir uma concessão contra uma autorização, siga estas instruções:

  1. Aceda à página Gestor de acesso privilegiado.

    Aceda ao Gestor de acesso privilegiado

  2. Selecione a organização, a pasta ou o projeto no qual quer pedir uma subvenção.

  3. No separador As minhas autorizações, encontre a autorização para a qual quer pedir a concessão e, em seguida, clique em Pedir concessão na mesma linha.

  4. Forneça os seguintes detalhes:

    • A duração necessária para a concessão, até à duração máxima definida na autorização.

    • Se necessário, uma justificação para a concessão.

    • Opcional: que endereços de email devem ser notificados sobre o pedido de concessão. As identidades Google associadas aos aprovadores são notificadas automaticamente. No entanto, pode querer enviar notificações para um conjunto diferente de endereços de email, especialmente se estiver a usar a Workforce Identity Federation.

  5. Clique em Pedir concessão.

  6. Para ver o seu histórico de subvenções, incluindo os estados de aprovação, clique no separador Subvenções e, de seguida, no separador As minhas subvenções.

Peça uma concessão de forma programática

Para pedir uma concessão relativamente a um direito, tem de concluir os seguintes passos:

  1. Pesquise IDs de concessões disponíveis para os quais pode pedir concessões.

  2. Peça a subvenção.

Posteriormente, pode verificar o estado da concessão para ver se está ativa, o que significa que recebeu a elevação temporária.

Pesquise autorizações disponíveis

gcloud

O comando gcloud pam entitlements search com o tipo de acesso do autor da chamada grant-requester pesquisa as concessões para as quais pode pedir uma subvenção.

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual a concessão pertence. Use o valor organization, folder ou project.
  • RESOURCE_ID: usado com RESOURCE_TYPE. O ID do projeto, da pasta ou da organização para os quais quer gerir autorizações. Trusted CloudOs IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud pam entitlements search \
    --caller-access-type=grant-requester \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements search `
    --caller-access-type=grant-requester `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements search ^
    --caller-access-type=grant-requester ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Deve receber uma resposta semelhante à seguinte:

additionalNotificationTargets: {}
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approvers:
      - principals:
        - user:alex@example.com
createTime: '22024-03-26T11:07:37.009498890Z'
etag: ETAG
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:
  notMandatory: {}
state: AVAILABLE
updateTime: '2024-03-26T11:07:40.056780645Z'

REST

O método searchEntitlements da API Privileged Access Manager com o tipo GRANT_REQUESTER caller access pesquisa autorizações para as quais pode pedir uma concessão.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • SCOPE: a organização, a pasta ou o projeto em que a concessão se encontra, no formato de organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Os IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.
  • FILTER: opcional. Devolve autorizações cujos valores de campo correspondem a uma expressão AIP-160.
  • PAGE_SIZE: opcional. O número de itens a devolver numa resposta.
  • PAGE_TOKEN: opcional. A partir de que página deve começar a resposta, usando um token de página devolvido numa resposta anterior.

Método HTTP e URL:

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

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

[
  {
    "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": "ETAG"
  }
]

Peça uma concessão contra um direito

gcloud

O comando gcloud pam grants create pede uma concessão.

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • ENTITLEMENT_ID: o ID do direito de utilização para criar a concessão.
  • GRANT_DURATION: a duração pedida da autorização, em segundos.
  • JUSTIFICATION: a justificação para pedir a concessão.
  • EMAIL_ADDRESS: opcional. Endereços de email adicionais para notificar sobre o pedido de concessão. As identidades Google associadas aos aprovadores são notificadas automaticamente. No entanto, pode querer enviar notificações para um conjunto diferente de endereços de email, especialmente se estiver a usar Workforce Identity Federation.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual a concessão pertence. Use o valor organization, folder ou project.
  • RESOURCE_ID: usado com RESOURCE_TYPE. O ID do projeto, da pasta ou da organização para os quais quer gerir autorizações. Trusted CloudOs IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud pam grants create \
    --entitlement=ENTITLEMENT_ID \
    --requested-duration="GRANT_DURATIONs" \
    --justification="JUSTIFICATION" \
    --location=global \
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam grants create `
    --entitlement=ENTITLEMENT_ID `
    --requested-duration="GRANT_DURATIONs" `
    --justification="JUSTIFICATION" `
    --location=global `
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam grants create ^
    --entitlement=ENTITLEMENT_ID ^
    --requested-duration="GRANT_DURATIONs" ^
    --justification="JUSTIFICATION" ^
    --location=global ^
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ^
    --RESOURCE_TYPE=RESOURCE_ID

Deve receber uma resposta semelhante à seguinte:

Created [GRANT_ID].

REST

O método createGrant da API Privileged Access Manager pede uma concessão.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • SCOPE: a organização, a pasta ou o projeto em que a concessão se encontra, no formato de organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Os IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.
  • ENTITLEMENT_ID: o ID do direito de utilização para criar a concessão.
  • REQUEST_ID: opcional. Tem de ser um UUID diferente de zero. Se o servidor receber um pedido com um ID do pedido, verifica se outro pedido com esse ID já foi concluído nos últimos 60 minutos. Se for o caso, o novo pedido é ignorado.
  • GRANT_DURATION: a duração pedida da autorização, em segundos.
  • JUSTIFICATION: a justificação para pedir a concessão.
  • EMAIL_ADDRESS: opcional. Endereços de email adicionais para notificar sobre o pedido de concessão. As identidades Google associadas aos aprovadores são notificadas automaticamente. No entanto, pode querer enviar notificações a um conjunto diferente de endereços de email, especialmente se estiver a usar a federação de identidades da força de trabalho.

Método HTTP e URL:

POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants?requestId=REQUEST_ID

Corpo JSON do pedido:

{
  "requestedDuration": "GRANT_DURATIONs",
  "justification": {
    "unstructuredJustification": "JUSTIFICATION"
  },
  "additionalEmailRecipients": [
    "EMAIL_ADDRESS_1",
    "EMAIL_ADDRESS_2",
    ...
  ]
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID",
  "createTime": "2024-03-06T03:08:49.330577625Z",
  "updateTime": "2024-03-06T03:08:49.330577625Z",
  "requester": "bola@example.com",
  "requestedDuration": "3600s",
  "justification": {
    "unstructuredJustification": "Emergency service for outage"
  },
  "state": "APPROVAL_AWAITED",
  "timeline": {
    "events": [
      {
        "eventTime": "2024-03-06T03:08:49.462765846Z",
        "requested": {
          "expireTime": "2024-03-07T03:08:49.462765846Z"
        }
      }
    ]
  },
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/Project",
      "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "roleBindings": [
        {
          "role": "roles/storage.admin"
        }
      ]
    }
  },
  "additionalEmailRecipients": [
    "alex@example.com"
  ]
}

Verifique o estado do seu pedido de subvenção

gcloud

O comando gcloud pam grants search usado com o autor da chamada had-created procura concessões que criou. Para verificar o estado, procure o campo state na resposta.

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • ENTITLEMENT_ID: o ID da concessão de direitos a que a concessão pertence.
  • RESOURCE_TYPE: opcional. O tipo de recurso ao qual a concessão pertence. Use o valor organization, folder ou project.
  • RESOURCE_ID: usado com RESOURCE_TYPE. O ID do projeto, da pasta ou da organização para os quais quer gerir autorizações. Trusted CloudOs IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud pam grants search \
    --entitlement=ENTITLEMENT_ID \
    --caller-relationship=had-created \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam grants search `
    --entitlement=ENTITLEMENT_ID `
    --caller-relationship=had-created `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam grants search ^
    --entitlement=ENTITLEMENT_ID ^
    --caller-relationship=had-created ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Deve receber uma resposta semelhante à seguinte:

additionalEmailRecipients:
- bola@example.com
createTime: '2024-03-07T00:34:32.557017289Z'
justification:
  unstructuredJustification: Renaming a file to mitigate issue #312
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requestedDuration: 3600s
requester: cruz@example.com
state: DENIED
timeline:
  events:
  - eventTime: '2024-03-07T00:34:32.793769042Z'
    requested:
      expireTime: '2024-03-08T00:34:32.793769042Z'
  - denied:
      actor: alex@example.com
      reason: Issue has already been resolved
    eventTime: '2024-03-07T00:36:08.309116203Z'
updateTime: '2024-03-07T00:34:32.926967128Z'

As concessões podem ter os seguintes estados:

Estado Descrição
A ATIVAR A concessão está em processo de ativação.
ACTIVATION_FAILED O Privileged Access Manager não conseguiu conceder as funções devido a um erro não repetível.
ATIVO A concessão está ativa e o principal tem acesso aos recursos permitidos pelas funções.
APPROVAL_AWAITED O pedido de concessão está a aguardar uma decisão de um aprovador.
RECUSADO O pedido de concessão foi recusado por um aprovador.
TERMINOU A concessão terminou e as funções foram removidas do principal.
EXPIRADO O pedido de concessão expirou porque não foi dada aprovação no prazo de 24 horas.
REVOGADO A concessão é revogada e o principal deixa de ter acesso aos recursos permitidos pelas funções.
REVOGAR A concessão está em processo de revogação.

REST

O método searchGrants da API Privileged Access Manager usado com a relação HAD_CREATED do autor da chamada pesquisa concessões que criou. Para verificar o estado, procure o campo state na resposta.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • SCOPE: a organização, a pasta ou o projeto em que a concessão se encontra, no formato de organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Os IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.
  • ENTITLEMENT_ID: o ID da concessão de direitos a que a concessão pertence.
  • FILTER: opcional. Devolve concessões cujos valores de campo correspondem a uma expressão AIP-160.
  • PAGE_SIZE: opcional. O número de itens a devolver numa resposta.
  • PAGE_TOKEN: opcional. A partir de que página deve começar a resposta, usando um token de página devolvido numa resposta anterior.

Método HTTP e URL:

GET https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants:search?callerRelationship=HAD_CREATED&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "grants": [
    {
      "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID",
      "createTime": "2024-03-06T03:08:49.330577625Z",
      "updateTime": "2024-03-06T03:08:49.625874598Z",
      "requester": "alex@example.com",
      "requestedDuration": "3600s",
      "justification": {
        "unstructuredJustification": "Emergency service for outage"
      },
      "state": "APPROVAL_AWAITED",
      "timeline": {
        "events": [
          {
            "eventTime": "2024-03-06T03:08:49.462765846Z",
            "requested": {
              "expireTime": "2024-03-07T03:08:49.462765846Z"
            }
          }
        ]
      },
      "privilegedAccess": {
        "gcpIamAccess": {
          "resourceType": "cloudresourcemanager.googleapis.com/Project",
          "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
          "roleBindings": [
            {
              "role": "roles/storage.admin"
            }
          ]
        }
      },
      "additionalEmailRecipients": [
        "bola@google.com"
      ]
    }
  ]
}

Os estados das subvenções estão detalhados na tabela seguinte.

Estado Descrição
A ATIVAR A concessão está em processo de ativação.
ACTIVATION_FAILED O Privileged Access Manager não conseguiu conceder as funções devido a um erro não repetível.
ATIVO A concessão está ativa e o principal tem acesso aos recursos permitidos pelas funções.
APPROVAL_AWAITED O pedido de concessão está a aguardar uma decisão de um aprovador.
RECUSADO O pedido de concessão foi recusado por um aprovador.
TERMINOU A concessão terminou e as funções foram removidas do principal.
EXPIRADO O pedido de concessão expirou porque não foi dada aprovação no prazo de 24 horas.
REVOGADO A concessão é revogada e o principal deixa de ter acesso aos recursos permitidos pelas funções.
REVOGAR A concessão está em processo de revogação.