En esta página, se explica cómo administrar tus vinculaciones de acceso existentes, que definen cómo se aplican las políticas de acceso a tus grupos de usuarios. Puedes ver, modificar y borrar estas vinculaciones según sea necesario. Las vinculaciones 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 vinculaciones de acceso y más detalles sobre los niveles de acceso y los controles de sesión, consulta Cómo aplicar políticas a grupos de usuarios con vinculaciones de acceso.
Cómo ver las vinculaciones de acceso
Después de crear las vinculaciones de acceso para un grupo de usuarios, el acceso a las APIs deGoogle Cloud y Google Cloud se controla en función de la satisfacción del nivel de acceso vinculado.
Puedes ver los detalles de la vinculación de acceso que creaste, editarla o borrarla.
Console
En la consola de Google Cloud , ve a la página Access Context Manager.
Si se te solicita, selecciona un proyecto. La lista de vinculaciones de acceso se muestra en la página de Access Context Manager.
gcloud
Para ver todas las vinculaciones de acceso, ejecuta el siguiente comando:
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
ORG_ID: Es el ID de tu organización. Si no se configuró la propiedad
access-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
BINDING_ID
es el ID de la vinculación de acceso o el identificador completamente calificado para la vinculación de acceso.
API
Consulta 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 el rolGcpAccessAdmin
. 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
.
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 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:
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 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" ] }
Actualiza una vinculación de acceso
Puedes actualizar una vinculación de acceso para hacer lo siguiente:
- Agrega, quita o cambia las aplicaciones que tienen una política.
- Modifica los niveles de acceso de una aplicación dentro de un grupo de usuarios.
- Agrega un nuevo nivel de acceso de ejecución de prueba o promociona uno existente a un nivel activo.
Console
En la consola de Google Cloud , ve a la página Access Context Manager.
Si se te solicita, selecciona un proyecto.
En la página Access Context Manager, selecciona una vinculación de acceso y, luego, haz clic en Editar para actualizarla.
No puedes actualizar las vinculaciones de acceso con niveles de acceso de prueba sin conexión ni controles de sesión en la consola de 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 ]
Reemplaza lo siguiente:
-
ACCESS_BINDING
tiene el formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. -
BINDING_FILE_PATH: Es la ruta de acceso al archivo YAML que contiene el esquema de vinculación de acceso.
El archivo de vinculación solo admite
scopedAccessSettings
. -
DEFAULT_ACCESS_LEVEL: Es el nombre opcional del nivel de acceso, que tiene el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. ReemplazaPOLICY_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: Es un 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 especifican en el YAML.
-
DEFAULT_SESSION_LENGTH: Es la duración opcional de la sesión con el formato de duración ISO 8601, como
30m
para 30 minutos o2h
para dos horas. -
DEFAULT_SESSION_REAUTH_METHOD: Es el método opcional para desafiar a los usuarios a volver a verificar su identidad, que debe ser uno de los siguientes:
LOGIN
: Aplica el acceso estándar, que puede incluir la MFA o cualquier otro factor definido por Workspace.PASSWORD
: Solo requiere una contraseña, incluso si se definen otros factores. Si las contraseñas se administran con un IdP externo, los usuarios se redireccionan al IdP. Si la sesión del IdP está activa, se vuelve a autenticar a los usuarios de forma implícita. Si el IdP no está activo, los usuarios deben acceder a través de él.SECURITY_KEY
: Exige una llave de seguridad física.
Cómo funcionan juntos los argumentos
--level
y--binding-file
- Si solo usas
--binding-file
, solo las aplicaciones del archivo tienen las políticas aplicadas. - Si solo usas
--level
, el nivel de acceso se aplica a todas las aplicaciones. - Si usas ambos, las reglas del archivo YAML tienen prioridad. El valor
--level
se aplica a todas las aplicaciones que no aparecen en el archivo.
Cómo trabajar con controles de sesión
- Para establecer controles de sesión predeterminados para 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 anula 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 de prueba preliminar predeterminado, proporciona una cadena vacía, como
--level=
o--dry-run-level=
. Cuando no se proporcionan estos argumentos, el comandoupdate
no realizará ningún cambio.Para quitar un control de sesión, establece
--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" ] } } } ] }
Reemplaza lo siguiente:
-
DEFAULT_ACCESS_LEVEL: Es el nombre opcional del nivel de acceso, que tiene el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. ReemplazaPOLICY_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 contienesessionSettings
. - ACCESS_LEVEL_A: Es un nombre de nivel de acceso con el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - SESSION_LENGTH: Es la duración de la sesión con el formato de duración ISO 8601, como
30m
para 30 minutos o2h
para dos horas. SESSION_REAUTH_METHOD: Es el método opcional para desafiar a los usuarios a volver a verificar su identidad, que debe ser uno de los siguientes:
LOGIN
: Aplica el acceso estándar, que puede incluir la MFA o cualquier otro factor definido por Workspace.PASSWORD
: Solo requiere una contraseña, incluso si se definen otros factores. Si las contraseñas se administran con un IdP externo, los usuarios se redireccionan 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 acceder a través del IdP.SECURITY_KEY
: Exige una llave de seguridad física.
CLIENT_NAME: El nombre del cliente. Si la aplicación contiene
sessionSettings
, no puedes usar el nombre del cliente. En su lugar, usa el ID de cliente de OAuth.ACCESS_LEVEL_C: Es un nombre de nivel de acceso con el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
-
DEFAULT_ACCESS_LEVEL: Es el nombre opcional del nivel de acceso, que tiene el formato
Envía la solicitud PATCH.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
Reemplaza lo siguiente:
-
ACCESS_BINDING
tiene el formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. - FIELD_MASK: Es una lista obligatoria de campos separados por comas que deseas actualizar. Esto le indica a la API qué partes de la vinculación de acceso modificar.
fieldMask
debe contener las claves JSON de nivel superior en el cuerpo de la solicitud que deseas actualizar, que puede conteneraccessLevels
,dryRunAccessLevels
yscopedAccessSettings
.Si se realiza correctamente, deberías recibir una representación del objeto JSON. Si hay un problema, recibirás un mensaje de error.
-
Borra vinculaciones de acceso
Console
En la consola de Google Cloud , ve a la página Access Context Manager.
Si se te solicita, selecciona un proyecto.
En la página Access Context Manager, selecciona una vinculación de acceso y, luego, haz clic en Borrar.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
Reemplaza lo siguiente:
-
ACCESS_BINDING
tiene el formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. -
ACCESS_BINDING_NAME
es la cadena única que se muestra 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 muestra 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 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.