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). A continuación, se muestran los componentes principales con los que trabajas para habilitar y usar la CBA para VMs:
- Access Context Manager: Te permite crear niveles de acceso que requieran certificados cuando se determine el acceso a las aplicaciones web.
- Identity-Aware Proxy (IAP): El reenvío de TCP de IAP te permite establecer un túnel encriptado sobre el que puedes reenviar SSH, RDP y otro tráfico a instancias de VM. Además, una política de IAP te proporciona un control detallado sobre qué usuarios pueden establecer túneles a instancias de VM específicas y qué condiciones de acceso deben cumplir los usuarios para usar esos túneles.
- Política de Chrome Enterprise: Proporciona autenticación mutua (mTLS) entre usuarios y VMs cuando se usa 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 administración de identidades y accesos (IAM) adecuados en un proyecto para permitir 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 administradores de confianza 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 roles para el reenvío de TCP de IAP.
Configura el acceso basado en certificados a una VM
Aunque IAP-TCP te permite otorgar acceso a todas las instancias de VM de un proyecto, 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
Abre la página Administrador de IAP y, luego, selecciona la pestaña Recursos SSH y TCP.
Selecciona las instancias de VM que deseas configurar. Haz clic en Mostrar panel de información si el panel de información no está visible.
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.
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 nivel de acceso basado en certificados que creaste anteriormente.
Haz clic en Guardar.
API
Para configurar el acceso basado en certificados a una VM, modifica el archivo policy.json
de tu aplicación.
Consulta Administra el acceso a los recursos protegidos por IAP para obtener más información sobre cómo usar la API de IAM para administrar las políticas de acceso.
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
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 enPOST
en lugar deGET
.curl -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \ ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:getIamPolicy \ -d ''
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 laiap.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 un 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 un nombre de política, llama al método
accessPolicies.list
.GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
Configura tu nuevo archivo
policy.json
con el métodosetIamPolicy
.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 empresariales: Usa este método si tienes una infraestructura PKI.
- Usa certificados aprovisionados de verificación de extremos: Usa este método si no tienes una infraestructura PKI. La Verificación de extremos provisiona y registra automáticamente certificados autofirmados con Google Cloud para cada dispositivo.
Usa certificados de cliente en el navegador Chrome para acceder a las VMs
- Configura el navegador Chrome con una de las siguientes opciones.
- En el navegador Chrome, ingresa el siguiente dominio para acceder a la
console de Google Cloud:
console-secure.cloud.google.com
. - Accede a las VMs de Google Cloud con Tunelización IAP.
Usa certificados de cliente en gcloud CLI para acceder a las VMs
Configura gcloud CLI con uno de los siguientes métodos.
Acceder a las VMs de Google Cloud con túneles IAP