Después de crear un derecho, los principales seleccionados pueden solicitar una concesión en función de ese derecho. Si ese derecho tiene especificado un flujo de trabajo de aprobación, los principales seleccionados configurados como responsables de aprobación pueden aprobar o rechazar las solicitudes de otorgamiento de ese derecho.
Ten en cuenta lo siguiente cuando apruebes o rechaces una solicitud de concesión en función de un derecho:
No puedes aprobar tu propia solicitud.
Si una solicitud no se aprueba ni se rechaza en 24 horas, el estado de la concesión cambia a
expired
. Después de esto, un principal debe realizar una nueva solicitud de otorgamiento si aún se requiere la elevación de privilegios.
Aprueba o rechaza las concesiones con la consola de Google Cloud
Para aprobar o rechazar una solicitud de otorgamiento que se realizó en función de un derecho, completa las siguientes instrucciones:
Ve a la página Privileged Access Manager.
Haz clic en la pestaña Aprobar subvenciones y, luego, en la pestaña Aprobación pendiente.
En la fila relacionada con la solicitud que quieres aprobar o rechazar, haz clic en Aprobar/rechazar.
Si se requiere una justificación, ingrésala en el campo Comentario.
Haz clic en Aprobar o Rechazar.
Puedes ver tu historial de aprobaciones en la pestaña Mi historial de aprobación. El historial de aprobación está disponible durante 30 días después de que se realiza una acción de aprobación.
Aprueba o rechaza las concesiones de forma programática
Para aprobar o rechazar las subvenciones, debes completar las siguientes acciones:
Busca los derechos para los que tienes permiso de aprobación.
Con el ID de derecho relevante, busca las solicitudes de otorgamiento que puedes aprobar o rechazar.
Aprobar o rechazar las solicitudes de otorgamiento.
Busca los derechos para los que tienes permiso de aprobación
gcloud
El
comando
gcloud beta pam entitlements search
con el tipo de acceso del emisor grant-approver
busca derechos en los que eres revisor.
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 valororganization
,folder
oproject
.RESOURCE_ID
: Se usa conRESOURCE_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, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta pam entitlements search \ --caller-access-type=grant-approver \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam entitlements search ` --caller-access-type=grant-approver ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam entitlements search ^ --caller-access-type=grant-approver ^ --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: 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 de Privileged Access Manager
con el tipo de acceso del emisor GRANT_APPROVER
busca derechos en los que eres responsable de aprobación.
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 formatoorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.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_APPROVER&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=" } ]
Busca solicitudes de otorgamiento que puedas aprobar o rechazar
gcloud
El
comando
gcloud beta pam grants search
busca una subvención que puedas aprobar o rechazar o que ya
hayas aprobado o rechazado. Este método no requiere permisos específicos de Privileged Access Manager
para usarlo.
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 la concesión. Para recuperar el ID, puedes buscar los derechos de los que eres revisor.-
CALLER_RELATIONSHIP_TYPE
: Usa uno de los siguientes valores:had-approved
: Muestra los permisos que el emisor aprobó o rechazó.can-approve
: Muestra las concesiones que el emisor puede aprobar o rechazar.
RESOURCE_TYPE
: Opcional Es el tipo de recurso al que pertenece el derecho. Usa el valororganization
,folder
oproject
.RESOURCE_ID
: Se usa conRESOURCE_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, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta pam grants search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=CALLER_RELATIONSHIP_TYPE \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=CALLER_RELATIONSHIP_TYPE ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta 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 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'
REST
El método searchGrants
de la API de Privileged Access Manager busca un otorgamiento que puedas aprobar o rechazar o que ya hayas aprobado o rechazado. Este método no requiere permisos específicos de Privileged Access Manager
para usarlo.
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 formatoorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.ENTITLEMENT_ID
: Es el ID del derecho al que pertenece la concesión. Para recuperar el ID, puedes buscar los derechos de los que eres revisor.RELATIONSHIP_TYPE
: Estos son los valores válidos:HAD_APPROVED
: Muestra las concesiones que el emisor aprobó o denegó anteriormente.CAN_APPROVE
: Muestra las concesiones que el emisor puede aprobar o rechazar.
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=RELATIONSHIP_TYPE&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" ] } ] }
Cómo aprobar otorgamientos de manera programática
gcloud
El comando
gcloud beta pam grants describe
aprueba una solicitud de subvención específica.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
GRANT_ID
: Es el ID de la subvención que apruebas. Para recuperar el ID, puedes buscar solicitudes de subvenciones que puedas aprobar o rechazar.ENTITLEMENT_ID
: Es el ID del derecho al que pertenece la concesión.APPROVAL_REASON
: Por qué se aprobó el otorgamiento.RESOURCE_TYPE
: Opcional Es el tipo de recurso al que pertenece el derecho. Usa el valororganization
,folder
oproject
.RESOURCE_ID
: Se usa conRESOURCE_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, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta pam grants approve \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="APPROVAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants approve ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="APPROVAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta 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 que figura a continuación:
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 de Privileged Access Manager
aprueba una solicitud de otorgamiento específica.
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 formatoorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.ENTITLEMENT_ID
: Es el ID del derecho al que pertenece la concesión.GRANT_ID
: Es el ID de la subvención que apruebas. Para recuperar el ID, puedes buscar solicitudes de subvenciones que puedas aprobar o rechazar.REASON
: El motivo por el que se aprobó la solicitud de otorgamiento.
Método HTTP y URL:
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:approve
Cuerpo JSON de la solicitud:
{ "reason": "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/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" ] }
Cómo denegar otorgamientos de manera programática
gcloud
El
comando
gcloud beta pam grants describe
rechaza una solicitud de subvención específica.
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 rechazas. Para recuperar el ID, busca las subvenciones que puedes aprobar o rechazar.ENTITLEMENT_ID
: Es el ID del derecho al que pertenece la concesión.DENIAL_REASON
: Por qué se rechazó el otorgamiento.RESOURCE_TYPE
: Opcional Es el tipo de recurso al que pertenece el derecho. Usa el valororganization
,folder
oproject
.RESOURCE_ID
: Se usa conRESOURCE_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, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta pam grants deny \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="DENIAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants deny ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="DENIAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta 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 que figura a continuación:
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 de Privileged Access Manager niega una solicitud de otorgamiento específica.
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 formatoorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.ENTITLEMENT_ID
: Es el ID del derecho al que pertenece la concesión.GRANT_ID
: Es el ID de la subvención que rechazas. Para recuperar el ID, puedes buscar las subvenciones que puedes aprobar o rechazar.REASON
: Es el motivo por el que se rechazó la solicitud de otorgamiento.
Método HTTP y URL:
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:deny
Cuerpo JSON de la solicitud:
{ "reason": "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/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" ] }