Aplicar de manera forzosa el acceso basado en certificados para un grupo de usuarios

En esta página, se explica cómo aplicar el acceso basado en certificados (CBA) mediante políticas de acceso adaptado al contexto basadas en un grupo de usuarios.

Puedes restringir el acceso a todos los servicios de Google Cloud si vinculas un nivel de acceso CBA a un grupo de usuarios al que desees restringir el acceso. Esta restricción se aplica a todas las aplicaciones cliente que llaman a las APIs de Google Cloud. Las aplicaciones incluyen aplicaciones propias compiladas por Google, como la consola de Google Cloud y Google Cloud CLI, y aplicaciones de terceros. De manera opcional, puedes aplicar las restricciones a aplicaciones cliente específicas o excluir aplicaciones específicas.

Antes de comenzar

Asegúrate de haber creado un nivel de acceso de CBA que requiera certificados a la hora de determinar el acceso a los recursos.

Crea un grupo de usuarios

Crea un grupo de usuarios que contenga los miembros a los que se les debe otorgar acceso en función del nivel de acceso de CBA.

Asigna el rol Administrador de vinculación de acceso a Cloud

Asigna la función Administrador de vinculación de acceso a Cloud al grupo de usuarios.

Asegúrate de tener autorización con privilegios suficientes para agregar permisos de IAM a nivel de la organización. Como mínimo, necesitas las funciones de Administrador de la organización y de Administrador de vinculación de acceso a Cloud.

Consola

  1. En la consola, ve a la página IAM.

    Ir a IAM

  2. En la pestaña Permisos, haz clic en Otorgar acceso y, luego, configura lo siguiente:

    1. Principales nuevas: especifica el grupo al que deseas otorgarle el rol.
    2. En la opción Seleccionar un rol, elige Access Context Manager > Administrador de vinculación de acceso de Cloud.
    3. Haz clic en Guardar.

gcloud

  1. Accede a tu cuenta:

    gcloud auth login
    
  2. 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 la 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 la función.

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.

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

    Ir a Chrome Enterprise Premium

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

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

  4. Haz clic en Add y, luego, configura lo siguiente:

    1. Grupos de miembros: Especifica el grupo al que deseas otorgar acceso. Solo puedes seleccionar grupos que no estén vinculados a un nivel de acceso.
    2. Seleccionar niveles de acceso: Selecciona el nivel de acceso de CBA que desees aplicar al grupo.
    3. Haz clic en Guardar.

Vincula un nivel de acceso de CBA a un grupo de usuarios y aplicaciones específicas

En algunos casos prácticos, como las aplicaciones que admiten certificados de cliente, la vinculación de un nivel de acceso CBA a un grupo de usuarios puede ser demasiado amplio. Puedes usar esta opción para aplicar niveles de acceso 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.

  1. Accede a gcloud CLI.

    $ gcloud auth application-default login
    
  2. Crea un archivo policy_file.json.

    Puedes especificar aplicaciones con su ID de cliente de OAuth. Si quieres especificar aplicaciones de Google, usa el nombre de la aplicación, como Cloud Console para la consola de Google Cloud. Solo se admiten las apps de Google del SDK de Google Cloud y la consola de Google Cloud.

    {
        "groupKey": "{GROUP_KEY}",
        "restricted_client_applications": [
            {"name": "Cloud Console"},
            {"name": "Google Cloud SDK"},
            {"client_id": "{CLIENT_ID}"}
        ],
        "accessLevels": [ "{LEVEL}" ],
    }
    
  3. Crea la vinculación de nivel de acceso de CBA.

    curl -X POST \
    -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project:PROJECT_ID" \
    -d @policy_file.json \
    https://accesscontextmanager.googleapis.com/v1/organizations/ORG-ID/gcpUserAccessBindings
    

    En el ejemplo anterior, PROJECT_ID es el ID del proyecto de Google Cloud y ORG-ID es el ID de la organización.

  4. Actualiza una vinculación de nivel de acceso existente (opcional).

    $ curl -X PATCH \
    -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project:PROJECT_ID" \
    -d @policy_file.json \
    https://accesscontextmanager.googleapis.com/v1/POLICY_NAME?update_mask=restricted_client_applications
    

    En el ejemplo anterior, PROJECT_ID es el ID del proyecto de Google Cloud y POLICY_NAME es el nombre de la política de acceso.

Eximir una aplicación de una vinculación

Otra forma de aplicar un nivel de acceso CBA sin bloquear las aplicaciones cliente que no admiten certificados de cliente es eximirlas de la política.

En los siguientes pasos, se da por sentado que ya creaste un nivel de acceso de CBA que requiere certificados cuando se determina el acceso a los recursos.

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

  2. Crea un archivo exemption_file.json.

    Debes seleccionar un grupo diferente del que se usa en la opción Vincula un nivel de acceso de CBA a un grupo de usuarios, ya que solo puedes aplicar una vinculación a un grupo.

    {
        "groupKey": "{GROUP_KEY}",
        "restricted_client_applications": [
            {"client_id": "{CLIENT_ID}"}
        ],
        "accessLevels": [ "{LEVEL}" ],
    }
    
  3. Crea la política de vinculación de exención.

    $ curl -X POST \
    -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project:PROJECT_ID" \
    -d @exemption_file.json \
    https://accesscontextmanager.googleapis.com/v1/organizations/ORG-ID/gcpUserAccessBindings
    

    En el ejemplo anterior, PROJECT_ID es el ID del proyecto de Google Cloud y ORG-ID es el ID de la organización.