Consulta, actualiza y borra derechos en Privileged Access Manager

Después de crear un derecho, puedes verlo, actualizarlo o borrarlo.

Antes de comenzar

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

Consulta, actualiza y borra derechos con la consola de Google Cloud

  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 administrar los derechos.

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

  4. En la tabla, haz clic en Más opciones en la misma fila del derecho que quieres inspeccionar.

    • Para ver los detalles del derecho, haz clic en Ver detalles del derecho.

    • Para ver los otorgamientos asociados con el derecho, haz clic en Ver los otorgamientos asociados.

    • Para revocar todas las concesiones activas del derecho, haz clic en Revocar todas las concesiones.

    • Para borrar el derecho, haz clic en Borrar derecho. No puedes borrar un derecho con permisos activos. Primero debes revocar los permisos.

  5. Para actualizar un derecho, haz clic en Editar derecho en la misma fila del derecho que deseas actualizar.

    Ten en cuenta lo siguiente cuando actualices un derecho:

    • La configuración de derechos actualizada solo se aplica a los permisos solicitados después de que se realiza la actualización. Sin embargo, los cambios en la lista de responsables de aprobación también se aplican a las solicitudes de subvenciones existentes que aún no se aprobaron ni rechazaron.

    • Cuando actualizas un derecho, no puedes cambiar si se necesita aprobación. Si necesitas cambiar el estado de aprobación, crea un derecho nuevo.

    • Los cambios en los solicitantes y los revisores de un derecho pueden tardar unos minutos en propagarse.

Cómo ver derechos de manera programática

Para ver los derechos de forma programática, puedes buscarlos, enumerarlos, obtenerlos y exportarlos.

incluir en una ficha los derechos

gcloud

El comando gcloud beta pam entitlements list enumera los derechos que pertenecen a un alcance específico.

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

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

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

El método listEntitlements de la API de Privileged Access Manager enumera los derechos que pertenecen a un ámbito específico.

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?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": "00000000000000000000000000000000000000000000000000000000000="
  }
]

Cómo obtener derechos

gcloud

El comando gcloud beta pam entitlements describe recupera un derecho específico.

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

  • ENTITLEMENT_ID: Es el ID del derecho del que deseas obtener los detalles.
  • 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 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

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

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

El método getEntitlement de la API de Privileged Access Manager recupera un derecho específico.

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 de los que se obtiene el derecho, en el formato de 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 del que deseas obtener los detalles.

Método HTTP y URL:

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

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": "00000000000000000000000000000000000000000000000000000000000="
}

Exporta derechos con gcloud CLI

El comando gcloud beta pam entitlements export exporta un derecho específico a un archivo YAML.

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

  • ENTITLEMENT_ID: Es el ID del derecho que se exportará.
  • FILENAME: Es el nombre del archivo al que se exportará el contenido de los derechos.
  • 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 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

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

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

Actualiza los derechos de forma programática

Ten en cuenta lo siguiente cuando actualices un derecho:

  • La configuración de derechos actualizada solo se aplica a los permisos solicitados después de que se realiza la actualización. Sin embargo, los cambios en la lista de responsables de aprobación también se aplican a las solicitudes de subvenciones existentes que aún no se aprobaron ni rechazaron.

  • Cuando actualizas un derecho, no puedes cambiar si se necesita aprobación. Si necesitas cambiar el estado de aprobación, crea un derecho nuevo.

  • Los cambios en los solicitantes y los revisores de un derecho pueden tardar unos minutos en propagarse.

gcloud

El comando gcloud beta pam entitlements update actualiza un derecho específico.

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

  • ENTITLEMENT_ID: Es el ID del derecho que se actualizará.
  • 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.
  • FILENAME: Es un archivo que contiene la configuración modificada del derecho. Para crear este archivo, obtén o exporta el derecho existente, guarda la respuesta en un archivo YAML y, luego, modifícalo para usarlo como cuerpo de tu solicitud de actualización. Debes incluir el ETAG en el cuerpo para actualizar la versión más reciente del derecho. Para ver los campos disponibles que puedes cambiar o agregar, consulta Cómo crear derechos de forma programática.

Ejecuta el siguiente comando:

Linux, macOS o 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

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

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

El método updateEntitlement de la API de Privileged Access Manager actualiza un derecho específico.

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 que se actualizará.
  • UPDATED_FIELDS: Es una lista separada por comas de los campos que se actualizan en el derecho. Por ejemplo:

    ?updateMask=privilegedAccess,maxRequestDuration

    Para todos los campos actualizables, establece la máscara de actualización en *.

  • 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.
  • request.json: Es un archivo que contiene la configuración modificada del derecho. Para crear este archivo, obtén o exporta el derecho existente, guarda la respuesta en un archivo llamado request.json y, luego, modifícalo para usarlo como cuerpo de tu solicitud de actualización. Debes incluir el ETAG en el cuerpo para actualizar la versión más reciente del derecho. Para ver los campos disponibles que puedes cambiar o agregar, consulta Cómo crear derechos de forma programática.

Método HTTP y URL:

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

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-25T01:55:02.544562950Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

Para verificar el progreso de una operación de actualizació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

Borra derechos de manera programática

gcloud

El comando gcloud beta pam entitlements delete borra un derecho específico.

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

  • ENTITLEMENT_ID: Es el ID del derecho que se borrará.
  • 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 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

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

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

El método deleteEntitlement de la API de Privileged Access Manager borra un derecho específico.

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 borrará el derecho, en el formato de 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 que se borrará.
  • 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.

Método HTTP y URL:

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

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-06T02:28:28.020293460Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

Para verificar el progreso de una operación de eliminació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