En este documento, se muestra cómo proteger el acceso a la consola de Google Cloud y a las APIs de Google Cloud mediante las reglas basadas en el contexto.
El acceso adaptado al contexto para la consola de Google Cloud y las APIs de Google Cloud restringe el acceso a la consola de Google Cloud y a las APIs de Google Cloud con reglas basadas en el contexto. Es parte de BeyondCorp Enterprise y ayuda a garantizar que las personas y los grupos dentro de tu organización que cumplan con los requisitos de acceso definidos puedan acceder a la consola de Google Cloud y a las APIs de Google Cloud (incluido el acceso desde Google Cloud CLI).
Para proteger la consola de Google Cloud y las APIs de Google Cloud, completa los siguientes pasos:
- Implementa Endpoint Verification en los dispositivos de tu organización (opcional).
- Crea un nivel de acceso en Access Context Manager.
- Crea un grupo de usuarios sujeto a restricciones contextuales.
- Obtén los permisos necesarios de la administración de identidades y accesos.
- Crea una vinculación de acceso que aplique reglas contextuales para la consola de Google Cloud y las APIs de Google Cloud.
Implementa la verificación de extremos (opcional)
Si deseas proteger el acceso a la consola de Google Cloud y a las APIs de Google Cloud mediante los atributos del dispositivo, implementa la verificación de extremos en los dispositivos de tu organización.
La Verificación de extremos se ejecuta como una extensión de Chrome en computadoras de escritorio y laptops para usuarios de macOS, Windows y Linux. Un administrador puede implementarlo en los dispositivos que pertenecen a la empresa de la organización desde la Consola del administrador de Google o los miembros de la organización pueden instalarlo por su cuenta.
Crea un nivel de acceso
Debes definir un nivel de acceso que se pueda usar cuando se determina el acceso a la consola de Google Cloud y a las APIs de Google Cloud. Para ello, crea un nivel de acceso básico en Access Context Manager.
Cómo crear un grupo de usuarios
Crea un grupo de usuarios que esté vinculado por restricciones contextuales. Todos los usuarios de este grupo que también sean miembros de tu organización deben cumplir con el nivel de acceso que creaste antes para acceder a la consola de Google Cloud y a las APIs de Google Cloud.
Otorga los permisos de IAM necesarios
Otorga a nivel de organización los permisos de IAM que se necesitarán para crear vinculaciones de acceso de Access Context Manager.
Console
Ve a la página IAM y administración en la consola de Google Cloud.
Haz clic en Agregar y configura lo siguiente:
- Miembros nuevos: especifica el usuario o el grupo al que deseas otorgar los permisos.
- Selecciona una función: Selecciona Access Context Manager > Administrador de vinculaciones de acceso a Cloud.
Haz clic en Guardar.
gcloud
Asegúrate de estar autenticado con privilegios suficientes para agregar permisos de IAM a nivel de organización. Como mínimo, necesitas la función de Administrador de la organización.
Una vez que confirmes que tienes los permisos adecuados, accede con el siguiente comando:
gcloud auth login
Asigna el rol
GcpAccessAdmin
mediante la ejecución del siguiente comando:gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdmin
ORG_ID
es el ID de tu organización. Si aún no tienes el ID de la organización, puedes usar el siguiente comando para encontrarlo:gcloud organizations list
EMAIL
es la dirección de correo electrónico de la persona o el grupo al que deseas otorgar el rol.
Crea una vinculación de acceso
Una vinculación de acceso es una asignación entre el grupo de usuarios que creaste antes y el nivel de acceso de Access Context Manager que definiste para acceder a la consola de Google Cloud y a las API de Google Cloud.
Puedes crear una vinculación de acceso de una de las siguientes maneras:
- Vinculación de acceso entre un grupo y un nivel de acceso.
- Vinculación de acceso entre un grupo y un nivel de acceso con la configuración de ejecución de prueba. Con la configuración de la ejecución de prueba, puedes crear una vinculación de acceso entre un grupo y un nivel de acceso de ejecución de prueba, o entre un grupo, un nivel de acceso y uno de ejecución de prueba.
Crea una vinculación de acceso con un nivel de acceso
Console
Ve a la página de BeyondCorp Enterprise en la consola de Google Cloud.
Elige una organización y haz clic en Seleccionar.
Haz clic en Administrar acceso para elegir los grupos de usuarios que deben tener acceso.
Haz clic en Agregar y configura lo siguiente:
- Grupos de miembros: Especifica el grupo al que deseas otorgar acceso. Solo los grupos que aún no están vinculados a un nivel de acceso están disponibles para seleccionarse.
- Selecciona niveles de acceso: Elige el nivel de acceso que se debe aplicar al grupo.
Haz clic en Guardar.
gcloud
Puedes consultar Google Cloud CLI para obtener más información sobre este y otros comandos gcloud access-context-manager cloud-bindings, incluidas las opciones adicionales de marca.
gcloud access-context-manager cloud-bindings create \
--group-key GROUP_ID \
--level ACCESS_LEVEL \
--organization ORG_ID
Aquí:
-
GROUP_ID
es el ID del grupo de usuarios que creaste antes.Si el ID de grupo no está disponible, puedes llamar al método
get
en el recursoGroups
para recuperarlo. -
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. Si no se configuró la propiedadaccess-context-manager/organization
, reemplazaORG_ID
en la marca opcional--organization
por el ID de la organización que usaste cuando creaste el rolGcpAccessAdmin
. -
POLICY_ID
es el ID de la política de acceso de tu organización. -
ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
API
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. -
GROUP_ID
es el ID del grupo de usuarios que creaste antes.Si el ID de grupo no está disponible, puedes llamar al método
get
en el recursoGroups
para recuperarlo. -
POLICY_ID
es el ID de la política de acceso de tu organización. -
ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
HTTP method and URL:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Cuerpo JSON de la solicitud:
{ "groupKey": "GROUP_ID", "accessLevels": [ "ACCESS_LEVEL" ], }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ] }
Crea una vinculación de acceso con la configuración de ejecución de prueba
Puedes crear una vinculación de acceso con configuración de ejecución de prueba para comprender el impacto de los niveles de acceso en tu entorno en las siguientes situaciones:
- Para evaluar el impacto de un nivel de acceso antes de aplicarlo, crea una vinculación de acceso con un nivel de acceso de ejecución de prueba.
- Para aplicar un nivel de acceso y evaluar el impacto de un nivel de acceso de ejecución de prueba al mismo tiempo, crea una vinculación de acceso con un nivel de acceso activo y uno de ejecución de prueba.
Una vinculación de acceso con un nivel de acceso de ejecución de prueba no impide el acceso, pero registra los incumplimientos de ese nivel. Para ver los detalles del registro, consulta los registros de denegación.
Crea una vinculación de acceso con un nivel de acceso de ejecución de prueba
gcloud
gcloud access-context-manager cloud-bindings create \
--group-key = GROUP_ID \
--dry-run-level = DRY_RUN_ACCESS_LEVEL \
--organization ORG_ID
Aquí:
-
GROUP_ID
es el ID del grupo de usuarios que creaste antes.Si el ID de grupo no está disponible, puedes llamar al método
get
en el recursoGroups
para recuperarlo. -
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. Si no se configuró la propiedadaccess-context-manager/organization
, reemplazaORG_ID
en la marca opcional--organization
por el ID de la organización que usaste cuando creaste el rolGcpAccessAdmin
. -
POLICY_ID
es el ID de la política de acceso de tu organización. -
DRY_RUN_ACCESS_LEVEL
es elACCESS_LEVEL
para el que quieres comprender el efecto.ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
API
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. -
GROUP_ID
es el ID del grupo de usuarios que creaste antes.Si el ID de grupo no está disponible, puedes llamar al método
get
en el recursoGroups
para recuperarlo. -
POLICY_ID
es el ID de la política de acceso de tu organización. -
DRY_RUN_ACCESS_LEVEL
es elACCESS_LEVEL
para el que quieres comprender el efecto.ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
HTTP method and URL:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Cuerpo JSON de la solicitud:
{ "groupKey": "GROUP_ID", "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
Crea una vinculación de acceso con un nivel de acceso y un nivel de acceso de ejecución de prueba
gcloud
gcloud access-context-manager cloud-bindings create \
--group-key = GROUP_ID \
--level = ACCESS_LEVEL \
--dry-run-level = DRY_RUN_ACCESS_LEVEL \
--organization ORG_ID
Aquí:
-
GROUP_ID
es el ID del grupo de usuarios que creaste antes.Si el ID de grupo no está disponible, puedes llamar al método
get
en el recursoGroups
para recuperarlo. -
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. Si no se configuró la propiedadaccess-context-manager/organization
, reemplazaORG_ID
en la marca opcional--organization
por el ID de la organización que usaste cuando creaste el rolGcpAccessAdmin
. -
POLICY_ID
es el ID de la política de acceso de tu organización. -
ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso. -
DRY_RUN_ACCESS_LEVEL
es elACCESS_LEVEL
para el que quieres comprender el efecto.ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
API
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. -
GROUP_ID
es el ID del grupo de usuarios que creaste antes.Si el ID de grupo no está disponible, puedes llamar al método
get
en el recursoGroups
para recuperarlo. -
POLICY_ID
es el ID de la política de acceso de tu organización. -
ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso. -
DRY_RUN_ACCESS_LEVEL
es elACCESS_LEVEL
para el que quieres comprender el efecto.ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
HTTP method and URL:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Cuerpo JSON de la solicitud:
{ "groupKey": "GROUP_ID", "accessLevels": [ "ACCESS_LEVEL" ], "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
Visualiza los registros de denegación
Después de crear una configuración de ejecución de prueba, puedes revisar los registros para identificar dónde la configuración de ejecución de prueba rechaza el acceso.
En la siguiente tabla, se enumeran los campos de registro que puedes usar para crear y ejecutar la consulta y obtener los registros:
Nombre del campo | Descripción |
---|---|
protoPayload > authenticationInfo > principalEmail |
ID de correo electrónico de la principal para la que se denegó el acceso. |
protoPayload > metadata > deniedApplications |
Nombre de la aplicación para la que se denegó el acceso |
protoPayload > metadata > evaluationResult |
El resultado de la evaluación de la política de acceso activa. Valores posibles: GRANTED o DENIED . |
protoPayload > metadata > appliedAccessLevels |
Los niveles de acceso aplicados que requiere la política de acceso activa. |
protoPayload > metadata > appliedDryRunAccessLevels |
Los niveles de acceso aplicados que requiere la política de acceso de ejecución de prueba. |
protoPayload > metadata > dryRunEvaluationResult |
El resultado de la evaluación de la política de acceso de ejecución de prueba, que indica la acción prevista cuando se aplica la política de acceso.
Valores posibles: GRANTED o DENIED . |
Para obtener detalles sobre cómo crear consultas para registros, visita Lenguaje de consulta de Logging.
Console
En el menú de navegación de la consola de Google Cloud, haz clic en Logging y, luego, en Explorador de registros.
En el campo Consulta, ingresa un filtro de consulta como el siguiente y haz clic en Ejecutar consulta.
severity="ERROR" AND (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"
Visualiza los registros en Resultados de la consulta.
gcloud
Para ver registros con gcloud CLI, ejecuta un comando como el siguiente:
gcloud logging read 'severity="ERROR" AND
(protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"'
Administra las vinculaciones de acceso
Después de crear las vinculaciones de acceso para un grupo de usuarios, el acceso a la consola de Google Cloud y a las APIs de Google Cloud se controla según el nivel de satisfacción del nivel de acceso vinculado.
Puedes ver los detalles de la vinculación de acceso que creaste, editarla o borrarla.
Ver vinculaciones de acceso
Console
Puedes ver todas las vinculaciones de acceso de la organización y los detalles de una vinculación de acceso.
gcloud
Para ver todas las vinculaciones de acceso, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
Aquí:
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. . Si no se configuró la propiedadaccess-context-manager/organization
, reemplazaORG_ID
en la marca opcional--organization
por el ID de la organización que usaste cuando creaste el rolGcpAccessAdmin
.Para ver los detalles de una vinculación de acceso, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings describe \ --binding=BINDING_ID
Aquí:
BINDING_ID
es el ID del identificador de vinculación de acceso o completamente calificado para la vinculación de acceso.
API
Visualiza todas las vinculaciones de acceso:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. Si no se configuró la propiedadaccess-context-manager/organization
, reemplazaORG_ID
en la marca opcional--organization
por el ID de la organización que usaste cuando creaste el rolGcpAccessAdmin
.
HTTP method and URL:
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": string, "groupKey": string, "accessLevels": [ string ] "dryRunAccessLevels": [ string ] }
-
Consulta los detalles de una vinculación de acceso:
HTTP method and URL:
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/BINDING_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
Actualizar vinculaciones de acceso
Console
Puedes actualizar una vinculación de acceso según sea necesario.
gcloud
Para actualizar una vinculación de acceso, por ejemplo, para cambiar el nivel de acceso, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings update \ --binding ACCESS_BINDING \ --level ACCESS_LEVEL
Aquí:
-
ACCESS_BINDING
tiene el formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. -
ORG_ID
es el ID de la organización que usaste cuando creaste la funciónGcpAccessAdmin
. -
ACCESS_BINDING_NAME
es la cadena única que se mostró para el identificadorname
cuando se creó la vinculación de acceso. - Reemplaza el valor de ACCESS_LEVEL según sea necesario.
ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
-
Para actualizar una vinculación de acceso con un nivel de acceso de ejecución de prueba, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --dry-run-level=DRY_RUN_ACCESS_LEVEL
Reemplaza el valor de
DRY_RUN_ACCESS_LEVEL
según sea necesario. Tiene el formatoaccessPolicies/
.POLICY_ID
/accessLevels/DRY_ACCESS_LEVEL_NAME
Para actualizar una vinculación de acceso y cambiar el nivel de acceso y el de ejecución de prueba, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --level=`ACCESS_LEVEL` --dry-run-level=DRY_RUN_ACCESS_LEVEL
Reemplaza el valor de
ACCESS_LEVEL
yDRY_RUN_ACCESS_LEVEL
según sea necesario.ACCESS_LEVEL
yDRY_RUN_ACCESS_LEVEL
tienen el formatoaccessPolicies/
, yPOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
DRY_RUN_ACCESS_LEVEL
es igual aACCESS_LEVEL
.Para quitar un nivel de acceso de ejecución de prueba de una vinculación de acceso, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --dry-run-level=
API
Actualiza una vinculación de acceso, por ejemplo, para cambiar el nivel de acceso:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ACCESS_BINDING_NAME
es la cadena única que se mostró para el identificadorname
cuando se creó la vinculación de acceso. -
ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
HTTP method and URL:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels
Cuerpo JSON de la solicitud:
{ "accessLevels": [ "ACCESS_LEVEL" ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ] }
-
Actualiza una vinculación de acceso con el nivel de acceso de ejecución de prueba:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ACCESS_BINDING_NAME
es la cadena única que se mostró para el identificadorname
cuando se creó la vinculación de acceso. -
DRY_RUN_ACCESS_LEVEL
es elACCESS_LEVEL
para el que quieres comprender el efecto.ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
HTTP method and URL:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels
Cuerpo JSON de la solicitud:
{ "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ name: "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", group_key: "045jfvxd0ybeul8", dry_run_access_levels: [ "accessPolicies/305009197125/accessLevels/another" ] }
-
Actualiza una vinculación de acceso y cambia el nivel de acceso y el de ejecución de prueba:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ACCESS_BINDING_NAME
es la cadena única que se mostró para el identificadorname
cuando se creó la vinculación de acceso. -
ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso. -
DRY_RUN_ACCESS_LEVEL
es elACCESS_LEVEL
para el que quieres comprender el efecto.ACCESS_LEVEL
tiene el formatoaccessPolicies/
. Los valores dePOLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
yACCESS_LEVEL_NAME
pueden encontrarse en Access Context Manager desde el momento en que creaste el nivel de acceso.
HTTP method and URL:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels
Cuerpo JSON de la solicitud:
{ "accessLevels": [ "ACCESS_LEVEL" ], "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
-
Quita un nivel de acceso de ejecución de prueba de una vinculación de acceso:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ACCESS_BINDING_NAME
es la cadena única que se mostró para el identificadorname
cuando se creó la vinculación de acceso.
HTTP method and URL:
PATCH PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels
Cuerpo JSON de la solicitud:
{ "dryRunAccessLevels": [ ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand ContentDeberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
-
Borrar vinculaciones de acceso
Console
Puedes borrar una vinculación de acceso siempre que sea necesario.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
Aquí:
-
ACCESS_BINDING
tiene el formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. -
ACCESS_BINDING_NAME
es la cadena única que se mostró para el identificadorname
cuando se creó la vinculación de acceso.
API
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
ACCESS_BINDING_NAME
es la cadena única que se mostró para el identificadorname
cuando se creó la vinculación de acceso.
HTTP method and URL:
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
Preguntas frecuentes
¿Cuánto tiempo toma en que surta efecto una vinculación de acceso recién creada?
Esto puede tardar hasta 24 horas.
¿Qué sucede si borro un grupo que tiene una vinculación de acceso?
El grupo y la vinculación se borran, y todos los usuarios en el grupo tienen acceso permitido.
¿Qué sucede si borro el nivel de acceso que se usa en una vinculación de acceso?
El nivel de acceso nunca se puede satisfacer, y todos los usuarios del grupo vinculado tienen acceso denegado.
¿Qué sucede cuando un usuario está en varios grupos que tienen vinculaciones de acceso?
El usuario solo debe satisfacer el nivel de acceso de uno de esos grupos para obtener acceso.
¿Qué sucede con los usuarios que no forman parte de mi organización?
Cualquier persona que no sea parte de tu organización, incluso si los agregaste al grupo de usuarios que debe estar sujetos a las restricciones contextuales, no están sujetos a la vinculación de acceso.
¿Qué sigue?
- Si quieres obtener más información sobre el registro de auditoría para BeyondCorp Enterprise, consulta Registro de auditoría.
- Si deseas obtener más información sobre el registro de auditoría en Access Context Manager, incluido un resumen de las operaciones de API que se registran para las acciones de administrador, consulta la Información del registro de auditoría de Access Context Manager.