En esta página, se explica cómo aplicar el acceso basado en certificados (CBA) con políticas de acceso que se adaptan al contexto y se basan en un grupo de usuarios.
Puedes restringir el acceso a todos los servicios de Google Cloud vinculando un nivel de acceso de la CBA a un grupo de usuarios al que deseas restringir el acceso. Esta restricción se aplica a todas las aplicaciones cliente que llaman a las APIs de Google Cloud.
De manera opcional, puedes aplicar las restricciones a aplicaciones cliente específicas o exentar aplicaciones específicas. Las aplicaciones incluyen aplicaciones de terceros y aplicaciones propias compiladas por Google, como Cloud Console
para la consola de Google Cloud y Google Cloud SDK
para Google Cloud CLI
.
Antes de comenzar
Asegúrate de haber creado un nivel de acceso de CBA que requiera certificados cuando determines el acceso a los recursos.
Cómo crear un grupo de usuarios
Crea un grupo de usuarios que contenga a los miembros a los que se les debe otorgar acceso según el nivel de acceso de la CBA.
Asigna el rol de Administrador de vinculaciones de acceso a Cloud
Asigna el rol de Administrador de vinculación de acceso a la nube al grupo de usuarios.
Asegúrate de tener los privilegios necesarios para agregar permisos de IAM a nivel de la organización. Como mínimo, necesitas los roles de Administrador de la organización y Administrador de vinculación de acceso a la nube.
Console
En la consola, ve a la página IAM.
En la pestaña Permisos, haz clic en Otorgar acceso y, luego, configura lo siguiente:
- Principales nuevas: Especifica el grupo al que deseas otorgar el rol.
- En la opción Seleccionar un rol, selecciona Access Context Manager > Cloud Access Binding Admin.
- Haz clic en Guardar.
gcloud
Acceder:
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 tu 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.
Cómo vincular un nivel de acceso de CBA a un grupo de usuarios
En esta opción de vinculación, el nivel de acceso de la 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, luego, haz clic en Seleccionar.
Haz clic en Administrar acceso para elegir los grupos de usuarios que deben tener acceso.
Haz clic en Agregar y, luego, configura lo siguiente:
- Grupos de miembros: Especifica el grupo al que deseas otorgar acceso. Solo puedes seleccionar grupos que aún no estén vinculados a un nivel de acceso.
- Selecciona niveles de acceso: Selecciona el nivel de acceso de CBA que se aplicará al grupo.
- Haz clic en Guardar.
Vincula un nivel de acceso de CBA a un grupo de usuarios y aplicaciones específicas
En algunos casos de uso, como las aplicaciones que admiten certificados de cliente, vincular un nivel de acceso de CBA a un grupo de usuarios podría ser demasiado amplio. Puedes usar esta opción para aplicar niveles de acceso de CBA a las aplicaciones que admiten certificados de cliente.
En el siguiente ejemplo, se vincula un nivel de acceso de CBA a la consola de Google Cloud , gcloud CLI y la aplicación de OAuth de un usuario.
Accede a gcloud CLI.
gcloud auth application-default login
Crea un archivo
policy_file.json
.Puedes especificar aplicaciones con su ID de cliente de OAuth. Para especificar las aplicaciones de Google, usa el nombre de la aplicación, como
Cloud Console
para la consola deGoogle Cloud . Solo se admiten las aplicaciones de Google de la consola de 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
Reemplaza lo siguiente:
- CLIENT_ID_1: El ID de cliente de OAuth.
- CBA_ACCESS_LEVEL: Es un nombre de nivel de acceso de CBA en el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
Crea la vinculación de nivel de acceso de CBA.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=.../policy_file.json
Reemplaza GROUP_KEY por el grupo de acceso consciente del contexto y ORG_ID por el ID de tu organización.
Si no tienes el GROUP_KEY disponible, puedes recuperarlo si llamas al método
get
en el recurso del grupo.(Opcional) Actualiza una vinculación de nivel de acceso existente.
gcloud access-context-manager cloud-bindings update \ --binding='BINDING_NAME' \ --binding-file=.../policy_file.json
Reemplaza BINDING_NAME por el nombre de la vinculación que se generó automáticamente cuando se creó.
Exenta 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 eximirlas de la política.
En los siguientes pasos, se supone que ya creaste un nivel de acceso de CBA que requiere certificados para determinar el acceso a los recursos.
Crea un nivel de acceso de exención con uno de los siguientes métodos.
- Nivel de acceso personalizado: proporciona
true
como el valor en la condición de expresión CEL. - Nivel de acceso básico: Para crear un nivel de acceso basado en el rango de IP, proporciona las subredes de 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
Reemplaza lo siguiente:
- CLIENT_ID_2: El ID de cliente de OAuth.
- APPLICATION_NAME_2: Es el nombre de la aplicación.
- EXEMPT_ACCESS_LEVEL: Es un nombre de nivel de acceso de exención en el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
Crea la política de vinculación de exención.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=.../exemption_file.json
Reemplaza GROUP_KEY por el grupo de acceso consciente del contexto y ORG_ID por el ID de tu organización.
Si no tienes el GROUP_KEY disponible, puedes recuperarlo si llamas al método
get
en el recurso del grupo.