Solicita acceso temporal elevado con Privileged Access Manager

Para elevar temporalmente tus privilegios, puedes solicitar un otorgamiento con un derecho en Privileged Access Manager (PAM) por un período fijo.

Un derecho contiene los roles que se te otorgan después de que se aprueba tu solicitud de concesión. Privileged Access Manager quita estos roles cuando finaliza el otorgamiento.

Ten en cuenta lo siguiente cuando quieras solicitar un otorgamiento en función de un derecho:

  • Solo puedes solicitar otorgamiento para los derechos a los que se te haya agregado. Para que te agreguen a un derecho, comunícate con el principal que lo administra.

  • Según cómo esté configurada, es posible que una solicitud de otorgamiento requiera aprobación.

  • Si una solicitud de otorgamiento requiere aprobación y no se aprueba ni se rechaza en 24 horas, el estado del otorgamiento cambia a Expired. Después de esto, debes realizar una nueva solicitud de otorgamiento si aún se requiere la elevación de privilegios.

  • Las solicitudes de otorgamiento que se realizan correctamente pueden tardar unos minutos en aplicarse.

Solicita un otorgamiento con la consola de Google Cloud

Para solicitar un otorgamiento en función de un derecho, completa las siguientes instrucciones:

  1. Ve a la página Privileged Access Manager.

    Ir a Privileged Access Manager

  2. Selecciona la organización, la carpeta o el proyecto en el que deseas solicitar un otorgamiento.

  3. En la pestaña Mis derechos, busca el derecho para el que deseas solicitar un otorgamiento y, luego, haz clic en Solicitar otorgamiento en la misma fila.

  4. Proporciona los siguientes detalles:

    • Es la duración requerida para el otorgamiento, hasta la duración máxima establecida en el derecho.

    • Si es necesario, una justificación para el otorgamiento.

    • Opcional: A qué direcciones de correo electrónico se notificará la solicitud de otorgamiento. Las identidades de Google asociadas con los revisores se notifican automáticamente. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.

  5. Haz clic en Solicitar otorgamiento.

  6. Para ver tu historial de otorgamiento, incluidos los estados de aprobación, haz clic en la pestaña Otorgamiento y, luego, en la pestaña Mis otorgamientos.

Cómo solicitar un otorgamiento de manera programática

Para solicitar un otorgamiento en función de un derecho, debes completar los siguientes pasos:

  1. Busca los IDs de derechos disponibles para los que puedes solicitar otorgamiento.

  2. Solicita el otorgamiento.

Luego, puedes verificar el estado de tu otorgamiento para ver si está activo, lo que significa que recibiste la elevación temporal.

Buscar derechos disponibles

gcloud

El comando gcloud beta pam entitlements search con el tipo de acceso del emisor grant-requester busca derechos para los que puedes solicitar un otorgamiento.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: Opcional Es el tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: Se usa con RESOURCE_TYPE. Es el ID del proyecto, la carpeta o la organización de Google Cloud para el que deseas administrar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

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

Windows (PowerShell)

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

Windows (cmd.exe)

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

Deberías recibir una respuesta similar a la que figura a continuación:

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

El método searchEntitlements de la API de Privileged Access Manager con el tipo de acceso del emisor GRANT_REQUESTER busca derechos en los que puedes solicitar un otorgamiento.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • SCOPE: La organización, la carpeta o el proyecto en el que se encuentra el derecho, en el formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
  • FILTER: Opcional Muestra los derechos cuyos valores de campo coinciden con una expresión de AIP-160.
  • PAGE_SIZE: Opcional Es la cantidad de elementos que se mostrarán en una respuesta.
  • PAGE_TOKEN: Opcional La página desde la que se debe iniciar la respuesta, con un token de página que se muestra en una respuesta anterior.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

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

Cómo solicitar un otorgamiento de derechos

gcloud

El comando gcloud beta pam grants create solicita un otorgamiento.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • ENTITLEMENT_ID: Es el ID del derecho con el que se creará el otorgamiento.
  • GRANT_DURATION: Es la duración solicitada del otorgamiento, en segundos.
  • JUSTIFICATION: La justificación para solicitar el otorgamiento.
  • EMAIL_ADDRESS: Opcional Direcciones de correo electrónico adicionales para notificar la solicitud de otorgamiento. Las identidades de Google asociadas con los revisores se notifican automáticamente. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
  • RESOURCE_TYPE: Opcional Es el tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: Se usa con RESOURCE_TYPE. Es el ID del proyecto, la carpeta o la organización de Google Cloud para el que deseas administrar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud beta 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 beta 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 beta 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

Deberías recibir una respuesta similar a la que figura a continuación:

Created [GRANT_ID].

REST

El método createGrant de la API de Privileged Access Manager solicita un otorgamiento.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • SCOPE: La organización, la carpeta o el proyecto en el que se encuentra el derecho, en el formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
  • ENTITLEMENT_ID: Es el ID del derecho con el que se creará el otorgamiento.
  • REQUEST_ID: Opcional Debe ser un UUID distinto de cero. Si el servidor recibe una solicitud con un ID de solicitud, verifica si ya se completó otra solicitud con ese ID en los últimos 60 minutos. Si es así, se ignora la solicitud nueva.
  • GRANT_DURATION: Es la duración solicitada del otorgamiento, en segundos.
  • JUSTIFICATION: La justificación para solicitar el otorgamiento.
  • EMAIL_ADDRESS: Opcional Direcciones de correo electrónico adicionales para notificar la solicitud de otorgamiento. Las identidades de Google asociadas con los revisores se notifican automáticamente. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

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

Verifica el estado de tu solicitud de otorgamiento

gcloud

El comando gcloud beta pam grants search que se usa con la relación de emisor had-created busca los otorgamientos que creaste. Para verificar su estado, busca el campo state en la respuesta.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • ENTITLEMENT_ID: Es el ID del derecho al que pertenece el otorgamiento.
  • RESOURCE_TYPE: Opcional Es el tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: Se usa con RESOURCE_TYPE. Es el ID del proyecto, la carpeta o la organización de Google Cloud para el que deseas administrar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

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

Windows (PowerShell)

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

Windows (cmd.exe)

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

Deberías recibir una respuesta similar a la que figura a continuación:

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'

Los otorgamientos pueden tener los siguientes estados:

Estado Descripción
ACTIVATING El otorgamiento está en proceso de activación.
ACTIVATION_FAILED Privileged Access Manager no pudo otorgar los roles debido a un error que no se puede recuperar.
ACTIVE El otorgamiento está activo y el principal tiene acceso a los recursos que permiten los roles.
APPROVAL_AWAITED La solicitud de otorgamiento está esperando la decisión de un revisor.
DENIED Un revisor rechazó la solicitud de otorgamiento.
ENDED El otorgamiento finalizó y los roles se quitaron de la principal.
EXPIRED La solicitud de otorgamiento venció porque no se aprobó en un plazo de 24 horas.
REVOKED Se revoca el otorgamiento, y el principal ya no tiene acceso a los recursos que permiten los roles.
REVOKING El otorgamiento está en proceso de revocación.

REST

El método searchGrants de la API de Privileged Access Manager que se usa con la relación de emisor HAD_CREATED busca los otorgamientos que creaste. Para verificar su estado, busca el campo state en la respuesta.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • SCOPE: La organización, la carpeta o el proyecto en el que se encuentra el derecho, en el formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
  • ENTITLEMENT_ID: Es el ID del derecho al que pertenece el otorgamiento.
  • FILTER: Opcional Muestra las subvenciones cuyos valores de campo coinciden con una expresión de AIP-160.
  • PAGE_SIZE: Opcional Es la cantidad de elementos que se mostrarán en una respuesta.
  • PAGE_TOKEN: Opcional La página desde la que se debe iniciar la respuesta, con un token de página que se muestra en una respuesta anterior.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

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

Los estados de otorgamiento se detallan en la siguiente tabla.

Estado Descripción
ACTIVATING El otorgamiento está en proceso de activación.
ACTIVATION_FAILED Privileged Access Manager no pudo otorgar los roles debido a un error que no se puede recuperar.
ACTIVE El otorgamiento está activo y el principal tiene acceso a los recursos que permiten los roles.
APPROVAL_AWAITED La solicitud de otorgamiento está esperando la decisión de un revisor.
DENIED Un revisor rechazó la solicitud de otorgamiento.
ENDED El otorgamiento finalizó y los roles se quitaron de la principal.
EXPIRED La solicitud de otorgamiento venció porque no se aprobó en un plazo de 24 horas.
REVOKED Se revoca el otorgamiento, y el principal ya no tiene acceso a los recursos que permiten los roles.
REVOKING El otorgamiento está en proceso de revocación.