Para elevar temporalmente tus privilegios, puedes solicitar un otorgamiento con un derecho en Privileged Access Manager (PAM) por un período fijo.
Un derecho contiene los roles que se te otorgan después de que se aprueba tu solicitud de concesión. Privileged Access Manager quita estos roles cuando finaliza el otorgamiento.
Ten en cuenta lo siguiente cuando quieras solicitar un otorgamiento en función de un derecho:
Solo puedes solicitar otorgamiento para los derechos a los que se te haya agregado. Para que te agreguen a un derecho, comunícate con el principal que lo administra.
Según cómo esté configurada, es posible que una solicitud de otorgamiento requiera aprobación.
Si una solicitud de otorgamiento requiere aprobación y no se aprueba ni se rechaza en 24 horas, el estado del otorgamiento cambia a
Expired
. Después de esto, debes realizar una nueva solicitud de otorgamiento si aún se requiere la elevación de privilegios.Las solicitudes de otorgamiento que se realizan correctamente pueden tardar unos minutos en aplicarse.
Solicita un otorgamiento con la consola de Google Cloud
Para solicitar un otorgamiento en función de un derecho, completa las siguientes instrucciones:
Ve a la página Privileged Access Manager.
Selecciona la organización, la carpeta o el proyecto en el que deseas solicitar un otorgamiento.
En la pestaña Mis derechos, busca el derecho para el que deseas solicitar un otorgamiento y, luego, haz clic en Solicitar otorgamiento en la misma fila.
Proporciona los siguientes detalles:
Es la duración requerida para el otorgamiento, hasta la duración máxima establecida en el derecho.
Si es necesario, una justificación para el otorgamiento.
Opcional: A qué direcciones de correo electrónico se notificará la solicitud de otorgamiento. Las identidades de Google asociadas con los revisores se notifican automáticamente. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
Haz clic en Solicitar otorgamiento.
Para ver tu historial de otorgamiento, incluidos los estados de aprobación, haz clic en la pestaña Otorgamiento y, luego, en la pestaña Mis otorgamientos.
Cómo solicitar un otorgamiento de manera programática
Para solicitar un otorgamiento en función de un derecho, debes completar los siguientes pasos:
Busca los IDs de derechos disponibles para los que puedes solicitar otorgamiento.
Solicita el otorgamiento.
Luego, puedes verificar el estado de tu otorgamiento para ver si está activo, lo que significa que recibiste la elevación temporal.
Buscar derechos disponibles
gcloud
El
comando
gcloud beta pam entitlements search
con el tipo de acceso del emisor grant-requester
busca derechos para los que puedes solicitar un otorgamiento.
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-requester \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam entitlements search ` --caller-access-type=grant-requester ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam entitlements search ^ --caller-access-type=grant-requester ^ --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: ETAG 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_REQUESTER
busca derechos en los que puedes solicitar un otorgamiento.
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_REQUESTER&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": "ETAG" } ]
Cómo solicitar un otorgamiento de derechos
gcloud
El comando
gcloud beta pam grants create
solicita un otorgamiento.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
ENTITLEMENT_ID
: Es el ID del derecho con el que se creará el otorgamiento.GRANT_DURATION
: Es la duración solicitada del otorgamiento, en segundos.JUSTIFICATION
: La justificación para solicitar el otorgamiento.EMAIL_ADDRESS
: Opcional Direcciones de correo electrónico adicionales para notificar la solicitud de otorgamiento. Las identidades de Google asociadas con los revisores se notifican automáticamente. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.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 create \ --entitlement=ENTITLEMENT_ID \ --requested-duration="GRANT_DURATIONs" \ --justification="JUSTIFICATION" \ --location=global \ [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants create ` --entitlement=ENTITLEMENT_ID ` --requested-duration="GRANT_DURATIONs" ` --justification="JUSTIFICATION" ` --location=global ` [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam grants create ^ --entitlement=ENTITLEMENT_ID ^ --requested-duration="GRANT_DURATIONs" ^ --justification="JUSTIFICATION" ^ --location=global ^ [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ^ --RESOURCE_TYPE=RESOURCE_ID
Deberías recibir una respuesta similar a la que figura a continuación:
Created [GRANT_ID].
REST
El método createGrant
de la API de Privileged Access Manager solicita un otorgamiento.
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 con el que se creará el otorgamiento.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.GRANT_DURATION
: Es la duración solicitada del otorgamiento, en segundos.JUSTIFICATION
: La justificación para solicitar el otorgamiento.EMAIL_ADDRESS
: Opcional Direcciones de correo electrónico adicionales para notificar la solicitud de otorgamiento. Las identidades de Google asociadas con los revisores se notifican automáticamente. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
Método HTTP y URL:
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants?requestId=REQUEST_ID
Cuerpo JSON de la solicitud:
{ "requestedDuration": "GRANT_DURATIONs", "justification": { "unstructuredJustification": "JUSTIFICATION" }, "additionalEmailRecipients": [ "EMAIL_ADDRESS_1", "EMAIL_ADDRESS_2", ... ] }
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-06T03:08:49.330577625Z", "requester": "bola@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": [ "alex@example.com" ] }
Verifica el estado de tu solicitud de otorgamiento
gcloud
El
comando
gcloud beta pam grants search
que se usa con la relación de emisor
had-created
busca los otorgamientos que creaste. Para verificar su estado,
busca el campo state
en la respuesta.
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 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 search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=had-created \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=had-created ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam grants search ^ --entitlement=ENTITLEMENT_ID ^ --caller-relationship=had-created ^ --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'
Los otorgamientos pueden tener los siguientes estados:
Estado | Descripción |
---|---|
ACTIVATING | El otorgamiento está en proceso de activación. |
ACTIVATION_FAILED | Privileged Access Manager no pudo otorgar los roles debido a un error que no se puede recuperar. |
ACTIVE | El otorgamiento está activo y el principal tiene acceso a los recursos que permiten los roles. |
APPROVAL_AWAITED | La solicitud de otorgamiento está esperando la decisión de un revisor. |
DENIED | Un revisor rechazó la solicitud de otorgamiento. |
ENDED | El otorgamiento finalizó y los roles se quitaron de la principal. |
EXPIRED | La solicitud de otorgamiento venció porque no se aprobó en un plazo de 24 horas. |
REVOKED | Se revoca el otorgamiento, y el principal ya no tiene acceso a los recursos que permiten los roles. |
REVOKING | El otorgamiento está en proceso de revocación. |
REST
El método searchGrants
de la API de Privileged Access Manager
que se usa con la relación de emisor
HAD_CREATED
busca los otorgamientos que creaste. Para verificar su estado, busca el campo state
en la respuesta.
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 el otorgamiento.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=HAD_CREATED&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" ] } ] }
Los estados de otorgamiento se detallan en la siguiente tabla.
Estado | Descripción |
---|---|
ACTIVATING | El otorgamiento está en proceso de activación. |
ACTIVATION_FAILED | Privileged Access Manager no pudo otorgar los roles debido a un error que no se puede recuperar. |
ACTIVE | El otorgamiento está activo y el principal tiene acceso a los recursos que permiten los roles. |
APPROVAL_AWAITED | La solicitud de otorgamiento está esperando la decisión de un revisor. |
DENIED | Un revisor rechazó la solicitud de otorgamiento. |
ENDED | El otorgamiento finalizó y los roles se quitaron de la principal. |
EXPIRED | La solicitud de otorgamiento venció porque no se aprobó en un plazo de 24 horas. |
REVOKED | Se revoca el otorgamiento, y el principal ya no tiene acceso a los recursos que permiten los roles. |
REVOKING | El otorgamiento está en proceso de revocación. |