Ver, actualizar y eliminar derechos en Privileged Access Manager

Una vez que hayas creado un derecho, podrás verlo, actualizarlo o eliminarlo.

Antes de empezar

Comprueba que hayas habilitado Gestor de acceso privilegiado y configurado los permisos correspondientes.

Ver, actualizar y eliminar derechos mediante la Trusted Cloud consola

  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 quieras gestionar los derechos.

  3. En la pestaña Derechos, haga clic en la pestaña Derechos de todos los usuarios. Aquí puedes encontrar los derechos disponibles, los roles que conceden y los solicitantes y aprobadores válidos.

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

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

    • Para ver las concesiones asociadas al derecho, haga clic en Ver concesiones asociadas.

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

    • Para eliminar el derecho, haga clic en Eliminar derecho. No puedes eliminar un derecho con concesiones activas. Primero debes revocar los permisos.

  5. Para actualizar un derecho, haz clic en Editar derecho en la misma fila que el derecho que quieras actualizar.

    Ten en cuenta lo siguiente al actualizar un derecho:

    • La configuración de derechos actualizada solo se aplica a las concesiones solicitadas después de que se haya realizado la actualización. Sin embargo, los cambios en los aprobadores también se aplican a las solicitudes de concesión que aún no se hayan aprobado o rechazado.

    • Cuando actualices un derecho, no podrás cambiar si se necesita aprobación. Si necesitas cambiar el estado de aprobación, crea un nuevo derecho.

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

Ver derechos de forma programática

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

Mostrar derechos

gcloud

El comando gcloud pam entitlements list muestra los derechos que pertenecen a un ámbito específico.

Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

  • RESOURCE_TYPE: opcional. El tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: se usa con RESOURCE_TYPE. El ID del proyecto, la carpeta o la organización Trusted Cloud para los que quieres gestionar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud pam entitlements list \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements list `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements list ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Deberías recibir una respuesta similar a la siguiente:

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 Privileged Access Manager muestra los derechos que pertenecen a un ámbito específico.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • SCOPE: la organización, la carpeta o el proyecto en el que se encuentra el derecho, con 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 carpetas y organizaciones son numéricos, como 123456789012.
  • FILTER: opcional. Devuelve los derechos cuyos valores de campo coinciden con una expresión AIP-160.
  • PAGE_SIZE: opcional. Número de elementos que se van a devolver en una respuesta.
  • PAGE_TOKEN: opcional. Página desde la que se inicia la respuesta, mediante un token de página devuelto en una respuesta anterior.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

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

Obtener derechos

gcloud

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

Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

  • ENTITLEMENT_ID: ID del derecho del que quieres obtener los detalles.
  • RESOURCE_TYPE: opcional. El tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: se usa con RESOURCE_TYPE. El ID del proyecto, la carpeta o la organización Trusted Cloud para los que quieres gestionar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud pam entitlements describe \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements describe `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements describe ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Deberías recibir una respuesta similar a la siguiente:

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 Privileged Access Manager obtiene un derecho específico.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • SCOPE: la organización, la carpeta o el proyecto del que se va a obtener el derecho, con 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 carpetas y organizaciones son numéricos, como 123456789012.
  • ENTITLEMENT_ID: ID del derecho del que quieres obtener los detalles.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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 derechos con la CLI de gcloud

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

Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

  • ENTITLEMENT_ID: ID del derecho que se va a exportar.
  • FILENAME: nombre del archivo al que se exportará el contenido del derecho.
  • RESOURCE_TYPE: opcional. El tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: se usa con RESOURCE_TYPE. El ID del proyecto, la carpeta o la organización Trusted Cloud para los que quieres gestionar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud pam entitlements export \
    ENTITLEMENT_ID \
    --destination=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements export `
    ENTITLEMENT_ID `
    --destination=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements export ^
    ENTITLEMENT_ID ^
    --destination=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Deberías recibir una respuesta similar a la siguiente:

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

Actualizar derechos mediante programación

Ten en cuenta lo siguiente al actualizar un derecho:

  • La configuración de derechos actualizada solo se aplica a las concesiones solicitadas después de que se haya realizado la actualización. Sin embargo, los cambios en los aprobadores también se aplican a las solicitudes de concesión que aún no se hayan aprobado o rechazado.

  • Cuando actualices un derecho, no podrás cambiar si se necesita aprobación. Si necesitas cambiar el estado de aprobación, crea un nuevo derecho.

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

gcloud

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

Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

  • ENTITLEMENT_ID: ID del derecho que se va a actualizar.
  • RESOURCE_TYPE: opcional. El tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: se usa con RESOURCE_TYPE. El ID del proyecto, la carpeta o la organización Trusted Cloud para los que quieres gestionar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.
  • FILENAME: archivo que contiene la configuración modificada del derecho. Para crear este archivo, obtén o exporta el derecho actual, guarda la respuesta en un archivo YAML y, a continuación, modifícalo para usarlo como cuerpo de tu solicitud de actualización. Debe 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 añadir, consulta Crear derechos de forma programática.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud pam entitlements update \
    ENTITLEMENT_ID \
    --entitlement-file=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements update `
    ENTITLEMENT_ID `
    --entitlement-file=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements update ^
    ENTITLEMENT_ID ^
    --entitlement-file=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Deberías recibir una respuesta similar a la siguiente:

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 Privileged Access Manager actualiza un derecho específico.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • SCOPE: la organización, la carpeta o el proyecto en el que se encuentra el derecho, con 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 carpetas y organizaciones son numéricos, como 123456789012.
  • ENTITLEMENT_ID: ID del derecho que se va a actualizar.
  • UPDATED_FIELDS: lista separada por comas de los campos que se están actualizando en el derecho. Por ejemplo:

    ?updateMask=privilegedAccess,maxRequestDuration

    En todos los campos que se puedan actualizar, define la máscara de actualización como *.

  • REQUEST_ID: opcional. Debe ser un UUID distinto de cero. Si el servidor recibe una solicitud con un ID de solicitud, comprueba si ya se ha completado otra solicitud con ese ID en los últimos 60 minutos. Si es así, se ignora la nueva solicitud.
  • request.json: archivo que contiene la configuración modificada del derecho. Para crear este archivo, obtén o exporta el derecho actual, guarda la respuesta en un archivo llamado request.json y, a continuación, modifícalo para usarlo como cuerpo de tu solicitud de actualización. Debe incluir el ETAG en el cuerpo para actualizar la versión más reciente del derecho. Para ver los campos disponibles que puede cambiar o añadir, consulte Crear derechos de forma programática.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "name": "projects/my-project/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1.OperationMetadata",
    "createTime": "2024-03-25T01:55:02.544562950Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Para comprobar el progreso de una operación de actualización, puedes enviar una solicitud GET al siguiente endpoint:

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

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

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

Eliminar derechos de forma programática

gcloud

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

Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

  • ENTITLEMENT_ID: ID del derecho que se va a eliminar.
  • RESOURCE_TYPE: opcional. El tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: se usa con RESOURCE_TYPE. El ID del proyecto, la carpeta o la organización Trusted Cloud para los que quieres gestionar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpetas y organizaciones son numéricos, como 123456789012.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud pam entitlements delete \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements delete `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements delete ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Deberías recibir una respuesta similar a la siguiente:

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 Privileged Access Manager elimina un derecho específico.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • SCOPE: la organización, la carpeta o el proyecto en el que se va a eliminar el derecho, con 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 carpetas y organizaciones son numéricos, como 123456789012.
  • ENTITLEMENT_ID: ID del derecho que se va a eliminar.
  • REQUEST_ID: opcional. Debe ser un UUID distinto de cero. Si el servidor recibe una solicitud con un ID de solicitud, comprueba si ya se ha completado otra solicitud con ese ID en los últimos 60 minutos. Si es así, se ignora la nueva solicitud.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "name": "projects/my-project/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1.OperationMetadata",
    "createTime": "2024-03-06T02:28:28.020293460Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Para comprobar el progreso de una operación de eliminación, puedes enviar una solicitud GET al siguiente endpoint:

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

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

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