Cómo revocar otorgamientos en el Administrador de acceso con privilegios

Después de que un principal solicita correctamente una concesión con respecto a un derecho y este está activo, los principales con los permisos correctos pueden revocarla. No se pueden revocar las concesiones que no tienen un estado activo.

Antes de comenzar

Asegúrate de habilitar Privileged Access Manager y configurar los permisos correspondientes.

Cómo revocar concesiones con la consola de Google Cloud

Para revocar una concesión específica realizada contra 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 revocar las concesiones.

  3. Haz clic en la pestaña Concesiones y, luego, en COncesiones para todos los usuarios. Incluye las concesiones de todos los solicitantes, los estados de ellas y sus detalles de derechos asociados.

  4. En la tabla, haz clic en Más opciones en la misma fila de la concesión que quieres revocar.

  5. Para revocar una concesión activa, haz clic en Revocar concesión.

Para revocar todas las concesiones activas otorgadas a un derecho, completa las siguientes instrucciones:

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

    Ir a Privileged Access Manager

  2. Haz clic en la pestaña Derechos y, luego, en Derechos para todos los usuarios. Aquí puedes encontrar los derechos disponibles, los roles que otorgan y sus solicitantes y revisores válidos.

  3. En la tabla, haz clic en Más opciones en la misma fila del derecho para el que deseas revocar las concesiones.

  4. Haz clic en Revocar todos las concesiones.

Cómo revocar concesiones de manera programática

gcloud

El comando gcloud beta pam grants revoke revoca una concesión activa.

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

  • GRANT_ID: Es el ID de la concesión que deseas revocar. Para recuperar el ID, puedes ver las concesiones.
  • ENTITLEMENT_ID: Es el ID del derecho al que pertenece la concesión.
  • REVOKE_REASON: Por qué se revocó la concesión.
  • 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 revoke \
     GRANT_ID \
    --entitlement=ENTITLEMENT_ID \
    --reason="REVOKE_REASON" \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam grants revoke `
     GRANT_ID `
    --entitlement=ENTITLEMENT_ID `
    --reason="REVOKE_REASON" `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam grants revoke ^
     GRANT_ID ^
    --entitlement=ENTITLEMENT_ID ^
    --reason="REVOKE_REASON" ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

auditTrail:
  accessGrantTime: '2024-04-05T00:29:16.703069535Z'
  accessRemoveTime: '2024-04-05T00:29:55.815041079Z'
createTime: '2024-04-05T00:27:43.822053968Z'
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: 2700s
requester: cruz@example.com
state: REVOKED
timeline:
  events:
  - eventTime: '2024-04-05T00:27:44.014277946Z'
    requested:
      expireTime: '2024-04-06T00:27:44.014277946Z'
  - approved:
      actor: alex@example.com
      reason: Access allowed under existing policy
    eventTime: '2024-04-05T00:29:14.921828714Z'
  - eventTime: '2024-04-05T00:29:14.921763008Z'
    scheduled:
      scheduledActivationTime: '2024-04-05T00:29:14.921763008Z'
  - activated: {}
    eventTime: '2024-04-05T00:29:16.703069535Z'
  - eventTime: '2024-04-05T00:29:55.815041079Z'
    revoked:
      actor: alex@example.com
      reason: Revoking due to new access policy

REST

El método revokeGrant de la API de Privileged Access Manager revoca una concesión activa.

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 la concesión.
  • GRANT_ID: Es el ID de la concesión que deseas revocar. Para recuperar el ID, puedes ver las concesiones.
  • REVOKE_REASON: Es el motivo por el que se revocó la concesión.

Método HTTP y URL:

POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:revoke

Cuerpo JSON de la solicitud:

{
  "reason": "REVOKE_REASON"
}

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/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-06T23:07:48.716396505Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

Para verificar el progreso de una operación de revocación, puedes enviar una solicitud GET al siguiente extremo:

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

Envía una solicitud GET al siguiente extremo para enumerar todas las operaciones:

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