Proteger recursos con acceso basado en certificados

El acceso basado en certificados funciona para proteger el acceso a muchos recursos de Google mediante la identificación de dispositivos a través de sus certificados X.509. Esta característica se basa en las funciones existentes de acceso adaptado al contexto de BeyondCorp Enterprise (Endpoint Verification, Access Context Manager, Controles del servicio de VPC y reenvío de TCP de Identity-Aware Proxy) y garantiza que solo esas los usuarios de un dispositivo de confianza con un certificado generado por Google pueden tener acceso de administrador a través del reenvío de TCP de IAP o acceder a las API de Google Cloud mediante Google Cloud Console o la biblioteca cliente de Google Cloud para Go. ,

Esto proporciona una señal más sólida de identidad de dispositivo y, lo que es más importante, ayuda a proteger a los usuarios contra la pérdida accidental o el robo de credenciales, ya que solo otorga acceso cuando se presentan las credenciales y el certificado de dispositivo original.

El acceso basado en certificados es compatible con los siguientes servicios de Controles del servicio de VPC, las herramientas y la interfaz de línea de comandos (CLI), y las bibliotecas cliente:

Servicios Compute Engine, Google Kubernetes Engine (GKE), Pub/Sub, Cloud Spanner, Cloud Key Management Service, Cloud Storage, BigQuery y Cloud Logging
Herramientas de la CLI gcloud, gsutil, Terraform, IAP Desktop
Bibliotecas cliente Go, Python, Java

Esta función se puede configurar mediante los siguientes pasos:

  1. Implementa Endpoint Verification en los dispositivos de tu organización.
  2. Crea un nivel de acceso en Access Context Manager que requiera certificados de dispositivo coincidentes para acceder.
  3. Aplica las restricciones de acceso mediante la aplicación del nivel de acceso a través del reenvío de TCP de IAP o un perímetro de servicio de Controles del servicio de VPC.
  4. Tus usuarios habilitan el acceso a instancias de VM o a las API de Google Cloud que ahora están protegidas por el acceso basado en certificados.

Implementa Endpoint Verification

Endpoint Verification te permite compilar un inventario de dispositivos que acceden a los datos de tu organización. Como parte de una solución de BeyondCorp Enterprise, también proporciona confianza crítica del dispositivo y control de acceso basado en la seguridad, y puede ayudar a aplicar un control de acceso detallado en tus recursos de Google Cloud. En el caso del acceso basado en certificados, la verificación de extremos es además responsable de generar, registrar y presentar un certificado X.509 verificado por Google para cada dispositivo de confianza.

Endpoint Verification se ejecuta como una extensión de Chrome en computadoras de escritorio y laptops para los usuarios de Mac, Windows y Linux. Un administrador puede implementarlo en los dispositivos de la organización de la empresa desde la Consola del administrador de Google Workspace, o los miembros de la organización pueden instalarlo por su cuenta.

Los usuarios que instalen por primera vez deberían tener la versión más reciente, pero se requieren las siguientes versiones de Endpoint Verification para admitir el acceso basado en certificados:

  • Extensión de Chrome de Endpoint Verification: 1.0.38 o posterior
  • Auxiliar nativo: 0.4.40.0 o posterior para Mac, 0.4.36.0 o posterior para Windows y 20191007 o posterior para Linux

Crear un nivel de acceso

Deberás definir un nivel de acceso que requiera certificados para determinar el acceso a los recursos mediante la creación de un nivel de acceso personalizado en Access Context Manager.

Los valores que usas para el nombre del nivel de acceso, la descripción, el título fácil de usar, etc., pueden ser los que tengan sentido, pero la expresión para el nivel de acceso personalizado debe ser la siguiente:

certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE

Por ejemplo, si usaras la herramienta de gcloud para crear tu nivel de acceso personalizado, podrías usar el siguiente comando:

gcloud access-context-manager levels create LEVEL_NAME \
  --title=TITLE \
  --custom-level-spec=FILE \
  --description=DESCRIPTION \
  --policy=POLICY_NAME

El contenido del archivo .yaml al que hace referencia FILE es, simplemente, la expresión personalizada:

expression: "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE"

Aplica el nivel de acceso

Ahora que se creó un nivel de acceso, el paso administrativo final consiste en aplicar sus restricciones.

Aplica restricciones al acceso de administrador a las VM

Puedes aplicar el nivel de acceso para el acceso de administrador a instancias de VM (a través de SSH y RDP) con reenvío de TCP de IAP:

  • Edita el permiso para agregar una condición para los usuarios o grupos que tengan el rol de Usuario de túnel protegido con IAP.
  • Usa el nombre del nivel de acceso que definiste antes (ese sería el valor de TITLE en el ejemplo de la herramienta de gcloud) para restringir el acceso por nivel de acceso.

Aplica restricciones de acceso a las API de Google Cloud

Puedes aplicar el acceso basado en certificados cada vez que los usuarios intenten acceder a ciertas API de administración mediante la creación de un perímetro de servicio de Controles del servicio de VPC. Cuando creas (o modificas) un perímetro de servicio, la opción para especificar un nivel de acceso de solicitudes fuera del perímetro es necesaria para el acceso basado en certificados.

Usa el nombre del nivel de acceso personalizado que creaste antes (el valor de TITLE en el ejemplo de la herramienta de gcloud) para incluirlo en el perímetro de servicio.

Habilita el acceso de los usuarios a recursos protegidos

Una vez que las restricciones de acceso basadas en certificados estén vigentes, los usuarios deben habilitar su propio acceso a los recursos protegidos.

  • Haz que tus usuarios instalen o actualicen la herramienta de gcloud para asegurarse de que tengan una versión que funcione con el acceso basado en certificados.

    Los usuarios que ya tienen instalada la herramienta gcloud pueden confirmar que tienen la versión 264.0.0 o posterior con el comando gcloud --version. Si es necesario, pueden actualizar su versión con el siguiente comando:

    gcloud components update
    
  • Los usuarios deben ejecutar el siguiente comando para comenzar a usar el acceso basado en certificados:

    gcloud config set context_aware/use_client_certificate true
    
  • Luego, pueden acceder a la herramienta de gcloud como de costumbre:

    gcloud auth login
    

Una vez que se completan esos pasos, los usuarios pueden volver a usar la herramienta de gcloud para acceder de forma administrativa a las instancias de VM y a las API de Google Cloud.