Una vez que se ha creado un derecho, determinados principales pueden solicitar una ayuda en relación con ese derecho. Si ese derecho tiene un flujo de trabajo de aprobación especificado, los principales configurados como aprobadores pueden aprobar o denegar las solicitudes de concesión de ese derecho.
Ten en cuenta lo siguiente al aprobar o rechazar una solicitud de concesión de un derecho:
No puedes aprobar tu propia solicitud.
Si una solicitud no se aprueba ni se rechaza en un plazo de 24 horas, el estado de la concesión cambia a
expired
. Después, una cuenta principal debe enviar una nueva solicitud de concesión si sigue siendo necesario elevar los privilegios.
Aprobar o denegar concesiones mediante la Trusted Cloud consola
Para aprobar o denegar una solicitud de concesión que se haya hecho en relación con un derecho, sigue estas instrucciones:
Ve a la página Privileged Access Manager.
Haz clic en la pestaña Aprobar concesiones y, a continuación, en la pestaña Pendiente de aprobación.
En la fila relacionada con la solicitud que quieras aprobar o rechazar, haz clic en Aprobar o rechazar.
Si se requiere una justificación, introdúcela en el campo Comentario.
Haz clic en Aprobar o en Rechazar.
Puedes consultar tu historial de aprobaciones en la pestaña Mi historial de aprobaciones. El historial de aprobaciones está disponible durante 30 días después de que se haya tomado una medida de aprobación.
Aprobar o denegar concesiones mediante programación
Para aprobar o denegar las concesiones, debes completar las siguientes acciones:
Busca los derechos de los que eres aprobador.
Con el ID de derecho correspondiente, busca las solicitudes de concesión que puedes aprobar o rechazar.
Acepta o rechaza las solicitudes de concesión.
Buscar derechos de los que eres responsable de aprobación
gcloud
El comando
gcloud pam entitlements search
con el tipo de acceso de la persona que llama grant-approver
busca los derechos en los que eres aprobador.
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 valororganization
,folder
oproject
.RESOURCE_ID
: se usa conRESOURCE_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, comomy-project
. Los IDs de carpetas y organizaciones son numéricos, como123456789012
.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud pam entitlements search \ --caller-access-type=grant-approver \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam entitlements search ` --caller-access-type=grant-approver ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud pam entitlements search ^ --caller-access-type=grant-approver ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deberías recibir una respuesta similar a la siguiente:
additionalNotificationTargets: {} approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - approvalsNeeded: 1 approvers: - principals: - user:alex@example.com createTime: '22024-03-26T11:07:37.009498890Z' 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: notMandatory: {} state: AVAILABLE updateTime: '2024-03-26T11:07:40.056780645Z'
REST
El método searchEntitlements
de la API Privileged Access Manager con el tipo de acceso de la persona que llama GRANT_APPROVER
busca los derechos en los que eres aprobador.
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 formatoorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de carpetas y organizaciones son numéricos, como123456789012
.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:search?callerAccessType=GRANT_APPROVER&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=" } ]
Buscar solicitudes de concesión que puedes aprobar o denegar
gcloud
El comando
gcloud pam grants search
busca una concesión que puedes aprobar o rechazar, o que ya has aprobado o rechazado. Este método no requiere permisos específicos de Gestor de acceso privilegiado para usarse.
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
ENTITLEMENT_ID
: ID del derecho al que pertenece la concesión. Para obtener el ID, puedes buscar los derechos de los que seas aprobador.-
CALLER_RELATIONSHIP_TYPE
: usa uno de los siguientes valores:had-approved
: devuelve las concesiones que el llamante ha aprobado o denegado.can-approve
: las devoluciones permiten que la persona que llama apruebe o rechace la solicitud.
RESOURCE_TYPE
: opcional. El tipo de recurso al que pertenece el derecho. Usa el valororganization
,folder
oproject
.RESOURCE_ID
: se usa conRESOURCE_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, comomy-project
. Los IDs de carpetas y organizaciones son numéricos, como123456789012
.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud pam grants search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=CALLER_RELATIONSHIP_TYPE \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=CALLER_RELATIONSHIP_TYPE ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud pam grants search ^ --entitlement=ENTITLEMENT_ID ^ --caller-relationship=CALLER_RELATIONSHIP_TYPE ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deberías recibir una respuesta similar a la siguiente:
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'
REST
El método searchGrants
de la API Privileged Access Manager busca una concesión que puedas aprobar o rechazar, o que ya hayas aprobado o rechazado. Este método no requiere permisos específicos de Gestor de acceso privilegiado para usarse.
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 formatoorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de carpetas y organizaciones son numéricos, como123456789012
.ENTITLEMENT_ID
: ID del derecho al que pertenece la concesión. Para obtener el ID, puedes buscar los derechos de los que seas aprobador.RELATIONSHIP_TYPE
: los valores válidos son los siguientes:HAD_APPROVED
: devuelve las concesiones que el llamante ha aprobado o denegado previamente.CAN_APPROVE
: las devoluciones permiten que la persona que llama apruebe o rechace la solicitud.
FILTER
: opcional. Devuelve las concesiones 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/ENTITLEMENT_ID/grants:search?callerRelationship=RELATIONSHIP_TYPE&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:
{ "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" ] } ] }
Aprobar concesiones de forma programática
gcloud
El comando
gcloud pam grants describe
aprueba una solicitud de concesión específica.
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
GRANT_ID
: ID de la concesión que vas a aprobar. Puedes obtener el ID de las siguientes formas: Buscando solicitudes de concesión que puedas aprobar o denegar.ENTITLEMENT_ID
: ID del derecho al que pertenece la concesión.APPROVAL_REASON
: por qué se ha aprobado la subvención.RESOURCE_TYPE
: opcional. El tipo de recurso al que pertenece el derecho. Usa el valororganization
,folder
oproject
.RESOURCE_ID
: se usa conRESOURCE_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, comomy-project
. Los IDs de carpetas y organizaciones son numéricos, como123456789012
.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud pam grants approve \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="APPROVAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam grants approve ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="APPROVAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud pam grants approve ^ GRANT_ID ^ --entitlement=ENTITLEMENT_ID ^ --reason="APPROVAL_REASON" ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deberías recibir una respuesta similar a la siguiente:
createTime: '2024-04-05T01:17:04.596455403Z' 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: SCHEDULED timeline: events: - eventTime: '2024-04-05T01:17:04.732226659Z' requested: expireTime: '2024-04-06T01:17:04.732226659Z' - approved: actor: alex@example.com reason: Access allowed under existing policy eventTime: '2024-04-05T01:21:49.139539732Z' - eventTime: '2024-04-05T01:21:49.139463954Z' scheduled: scheduledActivationTime: '2024-04-05T01:21:49.139463954Z' updateTime: '2024-04-05T01:21:49.139463954Z'
REST
El método approveGrant
de la API Privileged Access Manager aprueba una solicitud de concesión específica.
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 formatoorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de carpetas y organizaciones son numéricos, como123456789012
.ENTITLEMENT_ID
: ID del derecho al que pertenece la concesión.GRANT_ID
: el ID de la concesión que vas a aprobar. Puedes obtener el ID de las siguientes formas: Buscando solicitudes de concesión que puedas aprobar o denegar.REASON
: el motivo por el que se ha aprobado la solicitud de concesión.
Método HTTP y URL:
POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:approve
Cuerpo JSON de la solicitud:
{ "reason": "REASON" }
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/grants/GRANT_ID", "createTime": "2024-03-06T03:08:49.330577625Z", "updateTime": "2024-03-06T23:01:13.964619844Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "SCHEDULED", "timeline": { "events": [ { "eventTime": "2024-03-06T03:08:49.462765846Z", "requested": { "expireTime": "2024-03-07T03:08:49.462765846Z" } }, { "eventTime": "2024-03-06T23:01:13.964685709Z", "approved": { "reason": "Approved escalation", "actor": "cruz@example.com" } }, { "eventTime": "2024-03-06T23:01:13.964619844Z", "scheduled": { "scheduledActivationTime": "2024-03-06T23:01:13.964619844Z" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "bola@example.com.com" ] }
Denegar concesiones de forma programática
gcloud
El comando
gcloud pam grants describe
deniega una solicitud de concesión específica.
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
GRANT_ID
: ID de la concesión que vas a rechazar. Puedes obtener el ID buscando las concesiones que puedes aprobar o rechazar.ENTITLEMENT_ID
: ID del derecho al que pertenece la concesión.DENIAL_REASON
: por qué se ha denegado la concesión.RESOURCE_TYPE
: opcional. El tipo de recurso al que pertenece el derecho. Usa el valororganization
,folder
oproject
.RESOURCE_ID
: se usa conRESOURCE_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, comomy-project
. Los IDs de carpetas y organizaciones son numéricos, como123456789012
.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud pam grants deny \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="DENIAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam grants deny ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="DENIAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud pam grants deny ^ GRANT_ID ^ --entitlement=ENTITLEMENT_ID ^ --reason="DENIAL_REASON" ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deberías recibir una respuesta similar a la siguiente:
createTime: '2024-04-05T01:29:13.129192816Z' 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: DENIED timeline: events: - eventTime: '2024-04-05T01:29:13.267878626Z' requested: expireTime: '2024-04-06T01:29:13.267878626Z' - denied: actor: alex@example.com reason: Access denied under existing policy eventTime: '2024-04-05T01:29:49.492161363Z' updateTime: '2024-04-05T01:29:49.492097724Z'
REST
El método
denyGrant
de la API Privileged Access Manager deniega una solicitud de concesión específica.
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 formatoorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de carpetas y organizaciones son numéricos, como123456789012
.ENTITLEMENT_ID
: ID del derecho al que pertenece la concesión.GRANT_ID
: ID de la concesión que vas a denegar. Puedes obtener el ID buscando las concesiones que puedes aprobar o rechazar.REASON
: el motivo por el que se ha denegado la solicitud de concesión.
Método HTTP y URL:
POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:deny
Cuerpo JSON de la solicitud:
{ "reason": "REASON" }
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/grants/GRANT_ID", "createTime": "2024-03-07T00:34:32.557017289Z", "updateTime": "2024-03-07T00:36:08.309046580Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "DENIED", "timeline": { "events": [ { "eventTime": "2024-03-07T00:34:32.793769042Z", "requested": { "expireTime": "2024-03-08T00:34:32.793769042Z" } }, { "eventTime": "2024-03-07T00:36:08.309116203Z", "denied": { "reason": "Outage already resolved", "actor": "cruz@example.com" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "bola@example.com" ] }