En este documento, 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 o cuentas de servicio. 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 o una cuenta de servicio.
Para obtener información sobre cómo crear vinculaciones de acceso para usuarios y obtener más detalles sobre los niveles de acceso y los controles de sesión, consulta Aplica políticas a grupos de usuarios con vinculaciones de acceso.
Si deseas obtener más información para crear vinculaciones de acceso para cuentas de servicio, consulta Configura el acceso adaptado al contexto para cuentas de servicio.
Cómo mostrar una lista de vinculaciones de acceso
Para mostrar una lista de todas las vinculaciones de acceso creadas anteriormente para grupos de usuarios, haz lo siguiente:
gcloud
Para mostrar una lista de todas las vinculaciones de acceso para usuarios con gcloud CLI, ejecuta el siguiente comando. Para mostrar las vinculaciones de acceso para cuentas de servicio, debes usar un filtro.
gcloud access-context-manager cloud-bindings list \
--organization ORGANIZATION_ID
ORG_ID: Es el ID de tu organización.
Si no se configuró la propiedad access-context-manager/organization, reemplaza ORG_ID en la marca --organization opcional por el ID de la organización que usaste cuando creaste el rol GcpAccessAdmin.
Para mostrar las vinculaciones de acceso en recursos específicos, puedes usar una marca de filtro.
--filter="FILTER"
Reemplaza FILTER por un filtro que describa el recurso al que está vinculada la política de acceso, por ejemplo:
- Grupos de usuarios:
principal:group_key
Cuentas de servicio:
principal:service_account OR principal:service_account_project_number
API de REST
Para mostrar una lista de todas las vinculaciones de acceso USER_LOGIN, ejecuta el siguiente comando:
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings"
Para mostrar las vinculaciones de acceso en recursos específicos, puedes usar un parámetro de filtro.
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings?filter=FILTER"
Reemplaza lo siguiente:
PROJECT_ID: El ID del proyectoORGANIZATION_ID: El ID de la organizaciónFILTER: Un filtro que describe el recurso al que está vinculada la política de acceso, por ejemplo:Grupos de usuarios:
principal:group_keyCuentas de servicio:
principal:service_account OR principal:service_account_project_number
Cómo ver una vinculación de acceso
Una vez que se crean las vinculaciones de acceso para un grupo de usuarios, el acceso a la Google Cloud consola y las Google Cloud APIs 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 Google Cloud consola de, ve a la página Access Context Manager.
Si se te solicita, selecciona un proyecto. Las vinculaciones de acceso se enumeran en la página Access Context Manager.
gcloud
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
Para ver los detalles de una vinculación 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 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 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"
]
}
Cómo actualizar una vinculación de acceso
Puedes actualizar una vinculación de acceso para hacer lo siguiente:
- Agregar, quitar o cambiar qué aplicaciones tienen una política
- Modificar los niveles de acceso para una aplicación dentro de un grupo de usuarios
- Agregar un nuevo nivel de acceso de ejecución de prueba o ascender uno existente a un nivel en vivo
Console
En la Google Cloud consola de, 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 ejecución de prueba o controles de sesión en la Google Cloud consola.
gcloud
Crea un archivo YAML de vinculación.
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_BINDINGtiene 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 del nivel de acceso opcional, que tiene el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. ReemplazaPOLICY_IDpor el ID de la política de acceso yACCESS_LEVEL_NAMEpor 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 ejecución de prueba especificado a todas las aplicaciones de forma predeterminada si no se especifican en el archivo YAML.
-
DEFAULT_SESSION_LENGTH: Es la duración de la sesión opcional en formato de hora,
como
15hpara 15 horas o2hpara 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 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: Requiere una llave de seguridad física.
Cómo funcionan juntos los argumentos
--levely--binding-file- Si solo usas
--binding-file, solo las aplicaciones del archivo tienen aplicadas las políticas. - Si solo usas
--level, el nivel de acceso se aplica a todas las aplicaciones. - Si usas ambos, las reglas se combinan. El valor
--levelse aplica a todas las aplicaciones, mientras que las políticas del archivo YAML especificadas por--binding-filesolo se aplican a las aplicaciones definidas en el archivo.
Trabaja con controles de sesión
- Para establecer controles de sesión predeterminados para todas las aplicaciones, usa
--session-lengthy--session-reauth-method. - Si también defines controles de sesión en el archivo YAML, esos controles de sesión anulan la configuración predeterminada para esas aplicaciones específicas.
- Debes usar
--session-lengthy--session-reauth-methodjuntos.
Para quitar un nivel de acceso predeterminado o un nivel de acceso de ejecución de prueba predeterminado, proporciona una cadena vacía, como
--level=o--dry-run-level=. Cuando no se proporcionan estos argumentos, el comandoupdateno realiza 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 del nivel de acceso opcional, que tiene el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. ReemplazaPOLICY_IDpor el ID de la política de acceso yACCESS_LEVEL_NAMEpor el nombre del nivel de acceso. - CLIENT_ID: Es el ID de cliente de OAuth. Puedes usar
clientIdonamecuando 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
30mpara 30 minutos o2hpara 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 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: Requiere una llave de seguridad física.
CLIENT_NAME: Es el nombre del cliente. Puedes usar
nameoclientIdcuando una aplicación contienesessionSettings.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 del nivel de acceso opcional, que tiene el formato
Envía la solicitud PATCH.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?updateMask=FIELD_MASKReemplaza lo siguiente:
-
ACCESS_BINDINGtiene 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 se deben modificar.
fieldMaskdebe contener las claves JSON de nivel superior en el cuerpo de la solicitud que deseas actualizar, que pueden conteneraccessLevels,dryRunAccessLevelsyscopedAccessSettings.Si la operación se realiza correctamente, deberías recibir una representación del objeto JSON. Si hay un problema, recibirás un mensaje de error.
-
Cómo borrar vinculaciones de acceso
Console
En la Google Cloud consola de, 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_BINDINGtiene el formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
ACCESS_BINDING_NAMEes la cadena única que se muestra para el identificadornamecuando 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_NAMEes la cadena única que se muestra para el identificadornamecuando 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.