En esta página se explica cómo gestionar las vinculaciones de acceso que ya tienes, que definen cómo se aplican las políticas de acceso a tus grupos de usuarios. Puedes ver, modificar y eliminar estas vinculaciones según sea necesario. Los enlaces de acceso determinan cómo se aplican los niveles de acceso y los controles de sesión a un grupo de usuarios.
Para obtener información sobre cómo crear enlaces de acceso y más detalles sobre los niveles de acceso y los controles de sesión, consulta el artículo Aplicar políticas a grupos de usuarios con enlaces de acceso.
Ver enlaces de acceso
Una vez que se hayan creado las vinculaciones de acceso para un grupo de usuarios, el acceso a laGoogle Cloud consola Google Cloud y a las APIs se controlará en función de si se cumple el nivel de acceso vinculado.
Puede ver los detalles del enlace de acceso que ha creado, editarlo o eliminarlo.
Consola
En la consola de Google Cloud , ve a la página Administrador de contextos de acceso.
Si se te solicita, selecciona un proyecto. La lista de enlaces de acceso se muestra en la página Administrador de contextos de acceso.
gcloud
Para ver todos los enlaces de acceso, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
ORG_ID: el ID de tu organización. Si no se ha definido la propiedad
access-context-manager/organization
, sustituyeORG_ID
en la marca opcional--organization
por el ID de la organización que has usado al crear el rolGcpAccessAdmin
.Para ver los detalles de un enlace de acceso, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings describe \ --binding=BINDING_ID
BINDING_ID
es el ID de la vinculación de acceso o el identificador completo de la vinculación de acceso.
API
Ver todos los enlaces de acceso:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
-
ORG_ID
es el ID de la organización que usaste al crear el rolGcpAccessAdmin
. Si no se ha definido la propiedadaccess-context-manager/organization
, sustituyeORG_ID
en la marca opcional--organization
por el ID de la organización que has usado al crear el rolGcpAccessAdmin
.
Método HTTP y URL:
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"PowerShell
Ejecuta el comando siguiente:
$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 siguiente:
{ "name": string, "groupKey": string, "accessLevels": [ string ] "dryRunAccessLevels": [ string ] }
-
Para ver los detalles de un enlace de acceso, haz lo siguiente:
Método HTTP y URL:
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/BINDING_ID"PowerShell
Ejecuta el comando siguiente:
$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 siguiente:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
Actualizar una vinculación de acceso
Puedes actualizar un enlace de acceso para hacer lo siguiente:
- Añadir, quitar o cambiar las aplicaciones que tienen una política.
- Modifica los niveles de acceso de una aplicación en un grupo de usuarios.
- Añade un nuevo nivel de acceso de prueba o asciende uno que ya tengas a nivel de acceso real.
Consola
En la consola de Google Cloud , ve a la página Administrador de contextos de acceso.
Si se te solicita, selecciona un proyecto.
En la página Gestor de contexto de acceso, seleccione una vinculación de acceso y, a continuación, haga clic en Editar para actualizarla.
No puedes actualizar las vinculaciones de acceso con niveles de acceso de prueba o controles de sesión en la consola Google Cloud .
gcloud
Crea un archivo de vinculación YAML.
gcloud access-context-manager cloud-bindings update --binding ACCESS_BINDING --binding-file BINDING_FILE_PATH [ --level DEFAULT_ACCESS_LEVEL ] [ --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL ] [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]
Haz los cambios siguientes:
-
ACCESS_BINDING
tiene la formaorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. -
BINDING_FILE_PATH: ruta al archivo YAML que contiene el esquema de vinculación de acceso.
El archivo de vinculación solo admite
scopedAccessSettings
. -
DEFAULT_ACCESS_LEVEL: nombre de nivel de acceso opcional, que tiene el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. SustituyePOLICY_ID
por el ID de la política de acceso yACCESS_LEVEL_NAME
por el nombre del nivel de acceso. - DEFAULT_DRY_RUN_ACCESS_LEVEL_2: nombre de nivel de acceso opcional con el formato `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`. Incluye esta marca para aplicar el nivel de acceso de prueba especificado a todas las aplicaciones de forma predeterminada si no se especifica en el archivo YAML.
-
DEFAULT_SESSION_LENGTH: duración de la sesión opcional en formato de duración ISO 8601, como
30m
para 30 minutos o2h
para dos horas. -
DEFAULT_SESSION_REAUTH_METHOD: método opcional para pedir a los usuarios que vuelvan a verificar su identidad. Debe ser uno de los siguientes:
LOGIN
: aplica el inicio de sesión estándar, que puede incluir la autenticación multifactor u otros factores definidos por Workspace.PASSWORD
: solo se requiere una contraseña, aunque se hayan definido otros factores. Si las contraseñas se gestionan con un proveedor de identidades externo, se redirige a los usuarios al proveedor de identidades. Si la sesión del IdP está activa, los usuarios se vuelven a autenticar de forma implícita. Si el proveedor de identidades no está activo, los usuarios deben iniciar sesión a través de él.SECURITY_KEY
: requiere una llave de seguridad de hardware.
Cómo funcionan juntos los argumentos
--level
y--binding-file
- Si solo usas
--binding-file
, solo se aplicarán las políticas a las aplicaciones del archivo. - Si solo usas
--level
, el nivel de acceso se aplica a todas las aplicaciones. - Si usas ambas, las reglas se combinan. El valor
--level
se aplica a todas las aplicaciones, mientras que las políticas del archivo YAML especificado por--binding-file
solo se aplican a las aplicaciones definidas en el archivo.
Trabajar con los controles de sesión
- Para definir los controles de sesión predeterminados de todas las aplicaciones, usa
--session-length
y--session-reauth-method
. - Si también defines controles de sesión en el archivo YAML, esos controles de sesión anularán la configuración predeterminada de esas aplicaciones específicas.
- Debes usar
--session-length
y--session-reauth-method
juntos.
Para quitar un nivel de acceso predeterminado o un nivel de acceso predeterminado de prueba, proporciona una cadena vacía, como
--level=
o--dry-run-level=
. Si no se proporcionan estos argumentos, el comandoupdate
no hará ningún cambio.Para quitar un control de sesión, asigna el valor
--session-length=0
.-
API
Crea un cuerpo JSON.
{ "accessLevels": [ "DEFAULT_ACCESS_LEVEL" ], "scopedAccessSettings": [ { "scope": { "clientScope": { "restrictedClientApplication": { "clientId": "CLIENT_ID" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_A" ], "sessionSettings": [ { "sessionLength": "SESSION_LENGTH", "sessionReauthMethod": "SESSION_REAUTH_METHOD", "sessionLengthEnabled": true } ] } }, { "scope": { "clientScope": { "restrictedClientApplication": { "name": "CLIENT_NAME" } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_C" ] } } } ] }
Haz los cambios siguientes:
-
DEFAULT_ACCESS_LEVEL: nombre de nivel de acceso opcional, que tiene el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. SustituyePOLICY_ID
por el ID de la política de acceso yACCESS_LEVEL_NAME
por el nombre del nivel de acceso. - CLIENT_ID: el ID de cliente de OAuth. Debes usar
clientId
cuando una aplicación contengasessionSettings
. - ACCESS_LEVEL_A: nombre de un nivel de acceso con el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - SESSION_LENGTH: duración de la sesión en formato de duración ISO 8601, como
30m
para 30 minutos o2h
para dos horas. SESSION_REAUTH_METHOD: método opcional para pedir a los usuarios que vuelvan a verificar su identidad. Debe ser uno de los siguientes:
LOGIN
: aplica el inicio de sesión estándar, que puede incluir la autenticación multifactor u otros factores definidos por Workspace.PASSWORD
: Solo se requiere una contraseña, aunque se hayan definido otros factores. Si las contraseñas se gestionan mediante un IdP externo, se redirige a los usuarios al IdP. Si la sesión del IdP está activa, los usuarios se vuelven a autenticar de forma implícita. Si el IdP no está activo, los usuarios deben iniciar sesión a través del IdP.SECURITY_KEY
: requiere una llave de seguridad de hardware.
CLIENT_NAME: el nombre del cliente. Si la solicitud contiene
sessionSettings
, no puede usar el nombre del cliente. En su lugar, usa el ID de cliente de OAuth.ACCESS_LEVEL_C: nombre de un nivel de acceso con el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
-
DEFAULT_ACCESS_LEVEL: nombre de nivel de acceso opcional, que tiene el formato
Envía la solicitud PATCH.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
Haz los cambios siguientes:
-
ACCESS_BINDING
tiene la formaorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. - FIELD_MASK: lista obligatoria de campos separados por comas que quiere actualizar. Indica a la API qué partes del enlace de acceso se deben modificar.
fieldMask
debe contener las claves JSON de nivel superior del cuerpo de la solicitud que quieras actualizar, que pueden incluiraccessLevels
,dryRunAccessLevels
yscopedAccessSettings
.Si se ejecuta correctamente, deberías recibir una representación del objeto JSON. Si hay algún problema, recibirás un mensaje de error.
-
Eliminar enlaces de acceso
Consola
En la consola de Google Cloud , ve a la página Administrador de contextos de acceso.
Si se te solicita, selecciona un proyecto.
En la página Gestor de contexto de acceso, seleccione un enlace de acceso y, a continuación, haga clic en Eliminar.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
Haz los cambios siguientes:
-
ACCESS_BINDING
tiene la formaorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. -
ACCESS_BINDING_NAME
es la cadena única devuelta para el identificadorname
cuando se creó la vinculación de acceso.
API
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
-
ACCESS_BINDING_NAME
es la cadena única devuelta para el identificadorname
cuando se creó la vinculación de acceso.
Método HTTP y URL:
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"
PowerShell
Ejecuta el comando siguiente:
$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 que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.