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
Abre la Página de administrador de IAP y selecciona la opción SSH y TCP la pestaña Recursos.
Selecciona las instancias de VM que deseas configurar. Haz clic en Mostrar información. panel 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 acceso basado en certificados creado antes.
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.
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 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
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. Verificación de extremos aprovisiona 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 al
Consola 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