Puedes crear derechos para permitir la elevación de privilegios temporal para un conjunto seleccionado de principales. Ten en cuenta lo siguiente cuando crees derechos:
Los derechos se pueden crear a nivel de la organización, la carpeta o el proyecto. Los roles que otorga un derecho en cada nivel siguen la jerarquía de recursos de Google Cloud. Por ejemplo, los roles otorgados por un derecho a nivel de la organización se heredan a nivel de la carpeta y el proyecto.
Si agregas un grupo como solicitante a un derecho, todas las cuentas individuales de ese grupo pueden solicitar la concesión de ese derecho. Sin embargo, solo la cuenta individual que solicita la concesión puede recibir privilegios elevados.
Si agregas un grupo como revisor a un derecho, todas las cuentas individuales de ese grupo pueden aprobar o rechazar una solicitud de otorgamiento.
No se admiten los roles básicos.
Antes de comenzar
Asegúrate de habilitar Privileged Access Manager y configurar los permisos correspondientes.
Crea derechos con la consola de Google Cloud
Para crear un derecho, completa las siguientes instrucciones:
Ve a la página Privileged Access Manager.
Selecciona la organización, la carpeta o el proyecto al que deseas que se aplique el derecho.
Haz clic en la pestaña Derechos.
Haz clic en Crear.
Agrega los siguientes detalles de derechos:
Un nombre de derecho
Hasta 30 roles que se otorgarán en la organización, la carpeta o el proyecto Puedes aplicar condiciones de IAM a estos roles, siempre que no coincidan con las etiquetas de recursos.
Es la duración de los otorgamientos en relación con el derecho.
Haz clic en Siguiente.
Busca y agrega hasta 20 principales solicitantes válidos para el derecho. Se admiten todos los tipos principales, excepto
allUsers
yallAuthenticatedUsers
. Para agregar más de 20 identidades, agrégalas a un grupo y, luego, indícalo en el derecho.Elige si los principales deben proporcionar una justificación para la solicitud de otorgamiento.
Haz clic en Siguiente.
Elige permitir que se otorguen roles sin aprobación o busca y agrega principales válidos que puedan aprobar la solicitud. Los tipos principales válidos son los siguientes:
Cuentas de Google
Grupos de Google
Dominios de Google Workspace.
Identificadores de grupos de trabajadores
Si decides tener aprobadores, también elige si estos deben proporcionar una justificación para aprobar la solicitud de subvención. Puedes agregar hasta 20 directores de aprobación por derecho. Para agregar más de 20 identidades, agrégalas a un grupo y, luego, indícalo en el derecho.
Haz clic en Siguiente.
Opcional: Agrega las direcciones de correo electrónico de las personas a las que se les notificará cuando el derecho esté disponible para solicitarse, cuando una concesión esté pendiente de aprobación y cuando se le otorgue acceso a un solicitante. Las identidades de Google asociadas con el derecho, como los responsables de aprobación y los solicitantes, reciben notificaciones 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 Crear derechos.
Crea derechos de manera programática
gcloud
El comando gcloud beta pam entitlements create
crea un derecho a nivel de la organización, la carpeta o el proyecto.
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 creará. Un ID debe tener entre 4 y 63 caracteres, y usar los siguientes caracteres:[a-z0-9-]
. El primer carácter debe ser una letraRESOURCE_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 de la organización, la carpeta o el proyecto de Google Cloud para el que deseas administrar los derechos. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.SCOPE
: La organización, la carpeta o el proyecto en el que se creará el derecho, en el formato deorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.RESOURCE_MANAGER_RESOURCE_TYPE
: Puede serOrganization
,Folder
oProject
, según el alcance.ROLE
: Los roles que se asignarán cuando se otorgue un derechoTIME_IN_SECONDS
: Es la duración máxima de un otorgamiento, en segundos.-
REQUESTING_MEMBER
: Son las principales que pueden solicitar que se otorgue el derecho. Se admiten todos los tipos principales, exceptoallUsers
yallAuthenticatedUsers
. APPROVING_EMAIL
: Opcional Direcciones de correo electrónico adicionales para notificar cuando se haya solicitado una subvención Las identidades de Google asociadas con los revisores de subvenciones 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.-
APPROVING_MEMBER
: Son las principales que pueden aprobar la solicitud de derechos. Los tipos principales válidos son los siguientes:- Usuario
- Grupo
- Dominio
- Identificadores de grupos de trabajadores
ADMIN_EMAIL_ADDRESS
: Opcional Direcciones de correo electrónico adicionales para notificar cuando se le otorgue acceso a un solicitante. Las identidades de Google asociadas con los revisores de subvenciones 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.REQUESTER_EMAIL_ADDRESS
: Opcional Direcciones de correo electrónico adicionales para notificar cuando este derecho esté disponible para solicitarse Las identidades de Google asociadas con los solicitantes de subvenciones 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.
Guarda el siguiente código en un archivo llamado entitlement.yaml
.
privilegedAccess: gcpIamAccess: resourceType: cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE resource: //cloudresourcemanager.googleapis.com/SCOPE roleBindings: - role: ROLE_1 - role: ROLE_2 maxRequestDuration: TIME_IN_SECONDSs eligibleUsers: - principals: - REQUESTING_MEMBER_1 - REQUESTING_MEMBER_2 approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - approvalsNeeded: 1 approverEmailRecipients: - APPROVING_EMAIL_1 - APPROVING_EMAIL_2 approvers: - principals: - APPROVING_MEMBER_1 - APPROVING_MEMBER_2 requesterJustificationConfig: unstructured: {} additionalNotificationTargets: adminEmailRecipients: - ADMIN_EMAIL_ADDRESS_1 - ADMIN_EMAIL_ADDRESS_2 requesterEmailRecipients: - REQUESTER_EMAIL_ADDRESS_1 - REQUESTER_EMAIL_ADDRESS_2
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta pam entitlements create \ ENTITLEMENT_ID \ --entitlement-file=entitlement.yaml \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam entitlements create ` ENTITLEMENT_ID ` --entitlement-file=entitlement.yaml ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam entitlements create ^ ENTITLEMENT_ID ^ --entitlement-file=entitlement.yaml ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Deberías recibir una respuesta similar a la que figura a continuación:
Create request issued for: [ENTITLEMENT_ID] Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done. Created entitlement [ENTITLEMENT_ID]. additionalNotificationTargets: {} 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 createEntitlement
de la API de Privileged Access Manager crea un derecho a nivel de la organización, la carpeta o el proyecto.
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 creará el derecho, en el formato deorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
oprojects/PROJECT_ID
. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.ENTITLEMENT_ID
: Es el ID del derecho que se creará. Un ID debe tener entre 4 y 63 caracteres, y usar los siguientes caracteres:[a-z0-9-]
. El primer carácter debe ser una letraREQUEST_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.RESOURCE_MANAGER_RESOURCE_TYPE
: Puede serOrganization
,Folder
oProject
, según el alcance.ROLE
: Los roles que se asignarán cuando se otorgue un derechoTIME_IN_SECONDS
: Es la duración máxima de un otorgamiento, en segundos.-
REQUESTING_MEMBER
: Son los principales que pueden solicitar que se otorgue el derecho. Se admiten todos los tipos principales, exceptoallUsers
yallAuthenticatedUsers
. -
APPROVING_MEMBER
: Son las principales que pueden aprobar la solicitud de derechos. Los tipos principales válidos son los siguientes:- Usuario
- Grupo
- Dominio
- Identificadores de grupos de trabajadores
APPROVING_EMAIL
: Opcional Direcciones de correo electrónico adicionales para notificar cuando se haya solicitado una subvención Las identidades de Google asociadas con los revisores de subvenciones 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.ADMIN_EMAIL_ADDRESS
: Opcional Direcciones de correo electrónico adicionales para notificar cuando se le otorgue acceso a un solicitante. Las identidades de Google asociadas con los revisores de subvenciones 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.REQUESTER_EMAIL_ADDRESS
: Opcional Direcciones de correo electrónico adicionales para notificar cuando este derecho esté disponible para solicitarse Las identidades de Google asociadas con los solicitantes de subvenciones 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?entitlementId=ENTITLEMENT_ID&requestId=REQUEST_ID
Cuerpo JSON de la solicitud:
{ "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE", "resource": "//cloudresourcemanager.googleapis.com/SCOPE", "roleBindings": [ { "role": "ROLE_1" }, { "role": "ROLE_2" } ] } }, "maxRequestDuration": "TIME_IN_SECONDSs", "eligibleUsers": [ { "principals": [ "REQUESTING_MEMBER_1", "REQUESTING_MEMBER_2", ... ] } ], "approvalWorkflow": { "manualApprovals": { "requireApproverJustification": true, "steps": [ { "approvers": [ { "principals": [ "APPROVING_MEMBER_1", "APPROVING_MEMBER_2", ... ] } ], "approvalsNeeded": 1, "approverEmailRecipients": [ "APPROVING_EMAIL_1", "APPROVING_EMAIL_2", ... ] } ] } }, "requesterJustificationConfig": { "unstructured": { } }, "additionalNotificationTargets": { "adminEmailRecipients": [ "ADMIN_EMAIL_ADDRESS_1", "ADMIN_EMAIL_ADDRESS_2", ... ], "requesterEmailRecipients": [ "REQUESTER_EMAIL_ADDRESS_1", "REQUESTER_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/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata", "createTime": "2024-03-05T03:35:14.596739353Z", "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1beta" }, "done": false }
Para verificar el progreso de una operación de creació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
Terraform
Puedes usar Terraform para crear derechos. Para obtener más información, consulta google_privileged_access_manager_entitlement en la documentación de Terraform.¿Qué sigue?
- Solicita acceso temporal elevado
- Aprueba o rechaza los otorgamientos
- Cómo ver, actualizar y borrar derechos
- Audita los eventos de derechos