Habilitar el acceso basado en certificados para las VMs

En esta página se describe cómo habilitar el acceso basado en certificados (CBA) para tus VMs de Google Cloud. Puedes usar la CBA para proteger el acceso desde a las VMs de Google Cloud.

Descripción general

CBA para VMs usa la función de acceso adaptado al contexto de Google Cloud para proteger con TLS mutua (mTLS). Los siguientes son los componentes principales con los que trabajas para habilitar y usar CBA para las VMs:

  • Access Context Manager: te permite crear niveles de acceso que requieren certificados cuando determinar el acceso a aplicaciones web.
  • Identity-Aware Proxy (IAP): IAP TCP reenvío te permite establecer un túnel a través del cual puedes reenviar SSH, RDP y otro tráfico a instancias de VM. Además, una política de IAP te proporciona información control sobre qué usuarios pueden establecer túneles hacia VM específicas las instancias y qué condiciones de acceso deben cumplir los usuarios para usar de Cloud VPN.
  • Política de Chrome Enterprise: Proporciona autenticación mutua (mTLS) entre usuarios y VMs cuando uses el navegador Chrome.
  • Google Cloud CLI: Proporciona autenticación mutua (mTLS) entre usuarios y VMs cuando uses gcloud CLI.

Antes de comenzar

Asegúrate de crear niveles de acceso de CBA. para tu proyecto de Google Cloud.

Otorga roles para acceder a las VMs a través del reenvío de TCP de IAP

Debes otorgar los roles de Identity and Access Management (IAM) adecuados en un proyecto para permiten que los usuarios o grupos de usuarios usen el reenvío de TCP de IAP para acceder a las VMs.

En la siguiente tabla, se muestran los roles predefinidos que debes otorgar a los roles para el reenvío de TCP y las tareas relacionadas.

Tarea Funciones Más información
Redirección de TCP Usuario de túnel protegido con IAP (roles/iap.tunnelResourceAccessor) Otorga acceso a todas las instancias de VM de un proyecto o Otorga acceso a una VM específica
Acceso SSH Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1)
Acceso al SO (recomendado) Varios Configura las funciones de Acceso al SO en las cuentas de usuario
Usa una cuenta de servicio Usuario de la cuenta de servicio (roles/iam.serviceAccountUser) El rol serviceAccountUser

Para obtener más información sobre cómo otorgar roles para el reenvío de TCP de IAP, Consulta Otorga funciones para el reenvío de TCP de IAP.

Configura el acceso basado en certificados a una VM

Aunque IAP-TCP permite otorgar acceso a todas las instancias de VM en un debes configurar el acceso basado en certificados para cada instancia de VM individual.

Para otorgar a un usuario o grupo de usuarios acceso basado en certificados a una VM, otorga el permiso La función roles/iap.tunnelResourceAccessor en la instancia de VM Los otros roles en el proyecto.

Console

  1. Abre la Página de administrador de IAP y selecciona la opción SSH y TCP la pestaña Recursos.

    Ir a la página IAP

  2. Selecciona las instancias de VM que deseas configurar. Haz clic en Mostrar información. panel si el panel de información no está visible.

  3. Haz clic en Agregar principal y configura lo siguiente:

    • Principales nuevas: Especifica el usuario o grupo de usuarios que deseas. a los que otorgas acceso.
    • Selecciona un rol: Selecciona Cloud IAP > Usuario de túnel protegido con IAP.
  4. Haz clic en Agregar condición de IAM y configura una condición:

    • Título: Ingresa un nombre para la condición.
    • Creador de condiciones: Selecciona Nivel de acceso en el Menú desplegable Tipo de condición y, luego, selecciona el acceso basado en certificados creado antes.
  5. Haz clic en Guardar.

API

Para configurar el acceso basado en certificados a una VM, modifica la configuración de policy.json.

Consulta Administra el acceso a los recursos protegidos con IAP. si quieres obtener más información sobre el uso de la API de IAM para administrar las políticas de acceso.

  1. Exporta las siguientes variables.

    export IAP_BASE_URL=https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_tunnel
    # Replace POLICY_FILE.JSON with the name of JSON file to use for setIamPolicy
    export JSON_NEW_POLICY=POLICY_FILE.JSON
    
  2. Obtén la política de IAM para la instancia de Compute Engine con el método getIamPolicy. El bit de datos vacío al final convierte el curl solicitud en POST en lugar de GET.

    curl -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:getIamPolicy \
         -d ''
    
  3. Otorga el rol iap.tunnelResourceAccessor y acceso basado en certificados a tus principales modificando el Archivo JSON de la política de IAM.

    A continuación, se muestra un ejemplo de un archivo policy.json que otorga la iap.tunnelResourceAccessor a un grupo de administradores de instancias de VM, lo que otorga acceso basado en certificados a recursos de túneles protegidos con IAP.

    Ten en cuenta que si una principal tiene el rol de propietario, tiene permiso para usar IAP para el reenvío de TCP.

    {
      "policy": {
        "bindings": [
          {
            "role": "roles/iap.tunnelResourceAccessor",
            "members": ["group:instance-admins@example.com"],
            "condition": {
              "expression": "\"accessPolicies/POLICY_NAME/accessLevels/CERTIFICATE_BASED_ACCESS_LEVEL_NAME\" in request.auth.access_levels,
              "title": "CERTIFICATE_BASED_CONDITION_NAME"
            }
          }
        ]
      }
    }
    

    Para encontrar el nombre de una política, llama a accessPolicies.list .

    GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
    
  4. Configura tu nuevo archivo policy.json con el método setIamPolicy.

    curl -i -H "Content-Type:application/json" \
              -H "Authorization: Bearer $(gcloud auth print-access-token)" \
              ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:setIamPolicy \
              -d @${JSON_NEW_POLICY}
    

Accede a las VMs con certificados de cliente

Para acceder a las VMs con certificados de cliente, usa uno de los siguientes métodos.

Usa certificados de cliente en el navegador Chrome para acceder a las VMs

  1. Configura el navegador Chrome con una de las siguientes opciones.
  2. En el navegador Chrome, ingresa el siguiente dominio para acceder al Consola de Google Cloud: console-secure.cloud.google.com.
  3. Accede a las VMs de Google Cloud con Tunelización IAP.

Usa certificados de cliente en gcloud CLI para acceder a las VMs

  1. Configura gcloud CLI con uno de los siguientes métodos.

  2. Acceder a las VMs de Google Cloud con túneles IAP