En esta página, se explica cómo aplicar el acceso basado en certificados (CBA) con políticas de acceso adaptado al contexto que se basan en un grupo de usuarios.
Puedes restringir el acceso a todos los Cloud de Confiance by S3NS servicios vinculando un nivel de acceso de CBA a un grupo de usuarios. Esta restricción se aplica a todas las aplicaciones cliente que llaman a las Cloud de Confiance APIs.
De manera opcional, puedes aplicar las restricciones a aplicaciones cliente específicas o eximir aplicaciones específicas. Las aplicaciones incluyen aplicaciones de terceros
y aplicaciones propias creadas por Google, como
Cloud Console para la Cloud de Confiance consola y Google Cloud SDK para la
Google Cloud CLI.
Antes de comenzar
Crea un nivel de acceso de CBA que requiera certificados cuando se determine el acceso a los recursos.
Crea un grupo de usuarios
Crea un grupo de usuarios que contenga los miembros a los que se debe otorgar acceso según el nivel de acceso de CBA.
Asigna el rol de administrador de vinculaciones de acceso a Cloud
Asigna el rol de administrador de vinculaciones de acceso a Cloud al grupo de usuarios.
Debes tener privilegios suficientes para agregar permisos de IAM a nivel de la organización. Necesitas al menos los roles de administrador de la organización y administrador de vinculaciones de acceso a Cloud.
Console
En la consola, ve a IAM.
En la pestaña Permisos, haz clic en Otorgar acceso y, luego, configura lo siguiente:
- Principales nuevas: Especifica el grupo al que quieres otorgar el rol.
- En la opción Selecciona un rol, selecciona Access Context Manager > Administrador de vinculaciones de acceso a Cloud.
- Haz clic en Guardar.
gcloud
Accede a tu cuenta:
gcloud auth loginAsigna el rol
GcpAccessAdminejecutando el siguiente comando:gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdminORG_IDes 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 listEMAILes la dirección de correo electrónico de la persona o el grupo al que quieres otorgar el rol.
Vincula 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 Política de acceso a la consola y las APIs:
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 quieres 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 a 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 aplicaciones que admitan certificados de cliente.
En el siguiente ejemplo, se vincula un nivel de acceso de CBA a la Cloud de Confiance consola, gcloud CLI y a la aplicación de OAuth de un usuario.
Accede a gcloud CLI.
gcloud auth application-default loginCrea un archivo
policy_file.yaml.Puedes especificar aplicaciones con su ID de cliente de OAuth. Para especificar aplicaciones de Google, usa el nombre de la aplicación, como
Cloud Consolepara la Cloud de Confiance consola. Solo se admiten las aplicaciones de Google de la Cloud de Confiance consola y del 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_LEVELReemplaza lo siguiente:
- CLIENT_ID_1: El ID de cliente de OAuth
- CBA_ACCESS_LEVEL: Un nombre de nivel de acceso de CBA en el formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
Crea la vinculación del nivel de acceso de CBA.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=policy_file.yamlReemplaza lo siguiente:
GROUP_KEY: El ID del grupo únicoORG_ID: El ID de la organización
gcloud
Puedes usar el ID del grupo único como GROUP_KEY. Para obtener el ID del grupo único, usa el siguiente comando:
gcloud identity groups describe EMAILReemplaza EMAIL por la dirección de correo electrónico de tu grupo. El ID del grupo único es el valor que se muestra después de
/en el nombre del grupo. Por ejemplo, el ID del grupo único engroups/01gf8i8311xalqges01gf8i8311xalqg.REST
Puedes usar el ID del grupo único como GROUP_KEY. Para obtener el ID del grupo único con la API de REST, puedes recuperarlo llamando al
getmétodo en el recurso del grupo. El ID del grupo único se muestra en el campoiddel 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.yamlReemplaza BINDING_NAME por el nombre de vinculación que se generó automáticamente cuando se creó la vinculación.
Exime 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 eximir esas aplicaciones de la política.
En los siguientes pasos, se supone que ya creaste un nivel de acceso de CBA que requiere certificados cuando se determina 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
truecomo el valor en la condición de expresión CEL. - Nivel de acceso básico:
Crea un
nivel de acceso basado en rangos de IP
proporcionando las subredes de IP
0.0.0.0/0y::/0, que corresponden a IPv4 y IPv6, respectivamente.
- Nivel de acceso personalizado:
Proporciona
Crea un archivo
exemption_file.yaml.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: APPLICATION_NAME_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVELReemplaza lo siguiente:
- CLIENT_ID_2: El ID de cliente de OAuth
- APPLICATION_NAME_2: El nombre de la aplicación
- EXEMPT_ACCESS_LEVEL: 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.yamlReemplaza lo siguiente:
- GROUP_KEY: El ID del grupo único
- ORG_ID: El ID de la organización