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. El acceso basado en certificados garantiza que solo los usuarios de un dispositivo de confianza con un certificado generado por Google tengan acceso de administrador mediante el reenvío de TCP de Identity-Aware Proxy o el acceso a las API de Google Cloud a través de un perímetro de servicio de Controles del servicio de VPC.

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.

Para obtener una lista de los servicios, herramientas y bibliotecas cliente de los Controles del servicio de VPC compatibles con el acceso basado en certificados, consulta Servicios, herramientas y bibliotecas cliente basados en certificados.

Esta función se puede configurar con 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, el extremo de verificación también es 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 instalan por primera vez deben tener la versión más reciente, pero las siguientes versiones de Verificación de extremos son compatibles con 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 cuando determines 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 usas la CLI de gcloud para crear tu nivel de acceso personalizado, puedes 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"

Cómo aplicar el nivel de acceso

Ahora que se creó el nivel de acceso, el último paso administrativo es aplicar sus restricciones.

Aplica restricciones al acceso de administrador a las VM

Puedes aplicar el nivel de acceso para el acceso de administrador a las instancias de VM (a través de SSH y RDP) con la redirección 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 (que sería el valor de TITLE en el ejemplo de la CLI 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 los Controles del servicio de VPC. Cuando creas (o modificas) un perímetro de servicio, se requiere la opción de especificar un nivel de acceso para las solicitudes externas fuera del perímetro 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 CLI de gcloud) para incluirlo en tu perímetro de servicio.

Habilita el acceso de los usuarios a recursos protegidos

Cuando las restricciones de acceso basadas en certificados están vigentes, los usuarios deben habilitar su propio acceso a los recursos protegidos.

Console

Haz que tus usuarios vayan a la consola segura y verifica que puedan acceder a servicios protegidos por el acceso basado en certificados para los Controles del servicio de VPC.

Ir a la consola segura

Cuando un usuario intenta acceder a un servicio de la consola que está protegido por el acceso basado en certificados y no se incluye en la política, se muestra el siguiente mensaje de error:

VPC Service Controls: Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier

gcloud

  1. Haz que tus usuarios instalen o actualicen la CLI de gcloud para asegurarte de que tengan una versión que funcione con el acceso basado en certificados, versión 264.0.0 o posterior.

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

    gcloud components update
    
  2. 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
    
  3. Luego, los usuarios podrán acceder a la CLI de gcloud como de costumbre:

    gcloud auth login
    

    Cuando se completan los pasos anteriores, tus usuarios pueden volver a usar la CLI de gcloud para obtener acceso de administrador a las instancias de VM y acceso a las API de Google Cloud.