Aplicar el acceso basado en certificados a un grupo de usuarios

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

  1. En la consola, ve a la página Gestión de identidades y accesos.

    Ir a IAM

  2. En la pestaña Permisos, haga clic en Dar acceso y, a continuación, configure lo siguiente:

    1. Nuevos principales: especifica el grupo al que quieres asignar el rol.
    2. En la opción Seleccionar un rol, selecciona Administrador de contextos de acceso > Administrador de enlaces de acceso a Cloud.
    3. Haz clic en Guardar.

gcloud

  1. Iniciar sesión:

    gcloud auth login
    
  2. 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.

  1. En la consola, ve a la página Chrome Enterprise Premium.

    Ir a Chrome Enterprise Premium

  2. Elige una organización y haz clic en Seleccionar.

  3. Haz clic en Gestionar acceso para elegir los grupos de usuarios que deben tener acceso.

  4. Haz clic en Añadir y, a continuación, configura lo siguiente:

    1. 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.
    2. Seleccionar niveles de acceso: selecciona el nivel de acceso de la autenticación basada en certificados que quieras aplicar al grupo.
    3. 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.

  1. Inicia sesión en gcloud CLI.

    gcloud auth application-default login
    
  2. 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.
  3. 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.

  4. (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.

  1. Crea un nivel de acceso de excepción con uno de los siguientes métodos.

  2. 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.
  3. 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.