En esta página se explica cómo aplicar el acceso basado en certificados (CBA) mediante políticas de acceso contextual basadas en un grupo de usuarios.
Puedes restringir el acceso a todos los Google Cloud servicios vinculando un nivel de acceso de CBA a un grupo de usuarios al que quieras restringir el acceso. Esta restricción se aplica a todas las aplicaciones cliente que llamen a las APIs de Google Cloud.
También puedes aplicar las restricciones a aplicaciones cliente específicas o excluir aplicaciones concretas. Las aplicaciones incluyen tanto aplicaciones de terceros como aplicaciones propias creadas por Google, como Cloud Console
para la consola Google Cloud y Google Cloud SDK
para Google Cloud CLI
.
Antes de empezar
Asegúrate de haber creado un nivel de acceso de autenticación basada en certificados que requiera certificados al determinar el acceso a los recursos.
Crear un grupo de usuarios
Crea un grupo de usuarios que contenga los miembros a los que se les debe conceder acceso en función del nivel de acceso de la autenticación basada en certificados.
Asignar el rol Administrador de enlace de acceso de Cloud
Asigna el rol Administrador de enlace de acceso a la nube al grupo de usuarios.
Asegúrate de que tienes autorización y privilegios suficientes para añadir permisos de gestión de identidades y accesos a nivel de organización. Como mínimo, necesitas los roles Administrador de la organización y Administrador de vinculaciones de acceso a Cloud.
Consola
En la consola, ve a la página Gestión de identidades y accesos.
En la pestaña Permisos, haga clic en Dar acceso y, a continuación, configure lo siguiente:
- Nuevos principales: especifica el grupo al que quieres asignar el rol.
- En la opción Seleccionar un rol, selecciona Administrador de contextos de acceso > Administrador de enlaces de acceso a Cloud.
- Haz clic en Guardar.
gcloud
Iniciar sesión:
gcloud auth login
Asigna el rol
GcpAccessAdmin
ejecutando el 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 tu organización, puedes usar el siguiente comando para encontrarlo:gcloud organizations list
EMAIL
es la dirección de correo de la persona o el grupo al que quieres asignar el rol.
Vincular un nivel de acceso de CBA a un grupo de usuarios
En esta opción de vinculación, el nivel de acceso de CBA se aplica a todas las aplicaciones cliente del grupo de usuarios que especifiques.
En la consola, ve a la página Chrome Enterprise Premium.
Elige una organización y haz clic en Seleccionar.
Haz clic en Gestionar acceso para elegir los grupos de usuarios que deben tener acceso.
Haz clic en Añadir y, a continuación, configura lo siguiente:
- Grupos de miembros: especifica el grupo al que quieres conceder acceso. Solo puedes seleccionar grupos que aún no estén vinculados a un nivel de acceso.
- Seleccionar niveles de acceso: selecciona el nivel de acceso de la autenticación basada en certificados que quieras aplicar al grupo.
- Haz clic en Guardar.
Vincular un nivel de acceso de autenticación basada en certificados a un grupo de usuarios y a aplicaciones específicas
En algunos casos prácticos, como las aplicaciones que admiten certificados de cliente, vincular un nivel de acceso de autenticación basada en certificados a un grupo de usuarios puede ser demasiado general. Puedes usar esta opción para aplicar niveles de acceso de autenticación basada en certificados a aplicaciones que admitan certificados de cliente.
En el siguiente ejemplo, se vincula un nivel de acceso de CBA a la consola de Google Cloud , a la CLI de gcloud y a la aplicación OAuth de un usuario.
Inicia sesión en gcloud CLI.
gcloud auth application-default login
Crea un archivo
policy_file.json
.Puedes especificar aplicaciones mediante su ID de cliente de OAuth. Para especificar aplicaciones de Google, usa el nombre de la aplicación, como
Cloud Console
para la consolaGoogle Cloud . Solo se admiten las aplicaciones de la consola Google Cloud y el SDK de Google Cloud.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: name: Cloud Console activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: Google Cloud SDK activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_1 activeSettings: accessLevels: - CBA_ACCESS_LEVEL
Haz los cambios siguientes:
- CLIENT_ID_1: el ID de cliente de OAuth.
- CBA_ACCESS_LEVEL: nombre de nivel de acceso de CBA con el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
Crea la vinculación a nivel de acceso de CBA.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=.../policy_file.json
Sustituye GROUP_KEY por el grupo de acceso contextual y ORG_ID por el ID de tu organización.
Si no tienes el GROUP_KEY disponible, puedes obtenerlo llamando al método
get
en el recurso de grupo.(Opcional) Actualiza una vinculación a nivel de acceso.
gcloud access-context-manager cloud-bindings update \ --binding='BINDING_NAME' \ --binding-file=.../policy_file.json
Sustituye BINDING_NAME por el nombre de la vinculación que se generó automáticamente cuando se creó la vinculación.
Eximir una aplicación de una vinculación
Otra forma de aplicar un nivel de acceso de CBA sin bloquear las aplicaciones cliente que no admiten certificados de cliente es excluir esas aplicaciones de la política.
En los siguientes pasos se da por hecho que ya has creado un nivel de acceso de autenticación basada en certificados que requiere certificados para determinar el acceso a los recursos.
Crea un nivel de acceso de excepción con uno de los siguientes métodos.
- Nivel de acceso personalizado:
proporciona
true
como valor en la condición de la expresión CEL. - Nivel de acceso básico:
crea un nivel de acceso basado en intervalos de IP
proporcionando las subredes IP
0.0.0.0/0
y::/0
, que corresponden a IPv4 e IPv6 respectivamente.
- Nivel de acceso personalizado:
proporciona
Crea un archivo
exemption_file.json
.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: APPLICATION_NAME_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVEL
Haz los cambios siguientes:
- CLIENT_ID_2: el ID de cliente de OAuth.
- APPLICATION_NAME_2: nombre de la aplicación.
- EXEMPT_ACCESS_LEVEL: nombre de nivel de acceso de exención con el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
Crea la política de vinculación de la exención.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=.../exemption_file.json
Sustituye GROUP_KEY por el grupo de acceso contextual y ORG_ID por el ID de tu organización.
Si no tienes el GROUP_KEY disponible, puedes obtenerlo llamando al método
get
en el recurso de grupo.