Paso 3: Configura el acceso

En esta sección, se proporciona orientación sobre las diferentes formas de otorgar acceso a tu implementación del MDE, según tus necesidades.

Túnel SSH a través de IAP

Para conectarte a las IPs privadas de los servicios de MDE, puedes usar un túnel SSH a una VM de proxy. Este enfoque te permite usar herramientas locales, como Postman, para interactuar con las APIs de MDE.

La implementación estándar de MDE crea una VM proxy llamada mde-proxy. Esta máquina puede redireccionar solicitudes entrantes a la puerta de enlace de la API de MDE o a la interfaz web de MDE. Esta VM solo tiene una IP privada, pero IAP te permite crear un túnel SSH seguro a esta máquina con Identity-Aware Proxy (IAP) para el reenvío de TCP. En el resto de esta sección, se explica cómo configurar IAP para el tráfico de tunelización hacia mde-proxy y cómo crear un túnel hacia él desde tu estación de trabajo:

  1. En la consola de Google Cloud , ve a IAP y haz clic en Habilitar API. Esta operación puede tardar varios minutos.

  2. En la consola de Google Cloud , ve a IAP y haz clic en RECURSOS SSH Y TCP.

  3. Otorga permiso a los usuarios autorizados para usar IAP y conectarse a mde-proxy a través de IAP:

    Antes de que los usuarios puedan usar IAP para conectarse a mde-proxy, otórgales el rol de roles/iap.tunnelResourceAccessor con las siguientes instrucciones:

    1. Selecciona mde-proxy en la lista.

    2. Haz clic en Agregar principal en el panel lateral derecho.

    3. Escribe el correo electrónico del principal al que quieres otorgar acceso.

    4. Selecciona el rol IAP-secured Tunnel User.

  4. Crea un túnel para la API de MDE con el siguiente comando:

    export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy"  \
    --format="value(zone)")
    
    gcloud compute ssh mde-proxy \
    --zone "$MDE_PROXY_ZONE" --tunnel-through-iap  \
    -- -N -L 8080:api.mde.cloud.google.com:80
    

    Después de ejecutar el comando, se puede acceder a las APIs de MDE en http://localhost:8080.

  5. Crea un túnel a la interfaz web del MDE.

    Si creaste un túnel para la API de MDE en el paso 3, puedes abrir una nueva terminal para ejecutar los comandos más adelante. Los túneles SSH a la API de MDE y a la interfaz web de MDE pueden ejecutarse en paralelo.

    export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy" \
    --format="value(zone)")
    
    gcloud compute ssh mde-proxy \
    --zone "$MDE_PROXY_ZONE" --tunnel-through-iap  \
    -- -N -L 8081:ui.mde.cloud.google.com:80
    

    Después de ejecutar el comando, se puede acceder a la interfaz web del MDE en http://localhost:8081.

Configura Identity-Aware Proxy

Identity-Aware Proxy (IAP) te permite conectarte de forma segura a las IPs internas de la API y la interfaz web de MDE, así como restringir el acceso externo a la interfaz web de MDE solo a los usuarios autorizados si la implementaste con la opción External Load Balancer.

Para usar IAP, primero debes habilitar la API del servicio de IAP (si aún no lo hiciste) y configurar la pantalla de OAuth:

  1. En la consola de Google Cloud , ve a IAP y haz clic en Habilitar API. Esta operación puede tardar varios minutos.

  2. Configura la pantalla de consentimiento de OAuth para las IAP:

    1. En la consola de Google Cloud , ve a la página de Google Auth Platform y selecciona el proyecto de implementación de MDE si se te solicita.

      1. En la página Resumen, haz clic en Crear cliente de OAuth.
      2. Selecciona Aplicación web como el tipo de aplicación.
      3. Ingresa el Nombre de la aplicación que deseas mostrar, por ejemplo, MDE.
      4. Haz clic en Crear y Aceptar en la ventana emergente.
      5. En la página Desarrollo de la marca, asegúrate de ver el Nombre de la app, el Correo electrónico de asistencia al usuario y la Información de contacto del desarrollador.

    Para cambiar la información en la pantalla de consentimiento de OAuth más tarde, como el nombre del producto o la dirección de correo electrónico, repite los pasos anteriores para configurarla.

Configura el acceso a la interfaz web del balanceador de cargas HTTP externo

En esta sección, configurarás el acceso a la interfaz web del MDE del balanceador de cargas HTTP externo con IAP.

Si habilitaste el balanceador de cargas HTTP externo para la interfaz web de MDE, debes usar el IAP para restringir el acceso a la aplicación solo a los usuarios autorizados.

Antes de comenzar

Asegúrate de completar los siguientes requisitos previos:

  • Implementaste MDE con la interfaz web de MDE.
  • Implementaste la interfaz web de MDE con un balanceador de cargas HTTP externo.
  • Completaste los pasos de la configuración general de IAP.

Pasos

  1. En la consola de Google Cloud , ve a la página IAP.

  2. Busca el recurso correspondiente al servicio de IU externa (busca mde-ui-ext-service).

  3. En la columna IAP de ese recurso, cambia el interruptor a Habilitado.

  4. En el diálogo de confirmación, haz clic en Activar.

  5. Selecciona la casilla de verificación junto al nombre del recurso.

  6. En el panel de la derecha, haz clic en Agregar principal.

  7. Escribe la dirección de correo electrónico del usuario o grupo al que quieres otorgar acceso.

  8. En el menú desplegable Rol, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.

  9. Haz clic en Guardar.

Acceso entre organizaciones (opcional)

De forma predeterminada, IAP usa clientes de OAuth administrados por Google, que restringen estrictamente el acceso a los usuarios dentro de la misma Google Cloud organización que el proyecto. Si tu implementación requiere acceso de usuarios externos (socios que usan un dominio diferente), debes usar un cliente de OAuth personalizado configurado con un tipo de usuario Externo.

Para obtener más detalles, consulta la documentación oficial sobre cómo usar clientes OAuth personalizados con IAP y cómo habilitar IAP para GKE. Google Cloud

Puedes configurar esto con uno de los siguientes métodos:

Método A: Configuración directa de la consola (sin Secrets de GKE)

Si tu BackendConfig de GKE no administra la configuración de IAP (es decir, no tiene un bloque iap, lo que permite que Ingress de GKE herede la configuración existente), puedes configurar el cliente personalizado directamente en la consola:

  1. Configura la pantalla de consentimiento de OAuth de tu proyecto como Externa (consulta la sección Configura la pantalla de consentimiento de OAuth más arriba). Si la app permanece en estado "Prueba", asegúrate de agregar a los usuarios externos a la lista de Usuarios de prueba.
  2. Ve a la página de IAP.
  3. En el recurso mde-ui-ext-service, haz clic en Más opciones (tres puntos) en la columna Acciones y selecciona Configuración.
  4. Selecciona OAuth personalizado.
  5. Haz clic en Generar credenciales automáticamente (o proporciona las credenciales existentes si las creaste manualmente en APIs y servicios).
  6. Haz clic en Guardar.

Método B: Configuración administrada por GKE (con secretos de Kubernetes)

Si prefieres administrar la configuración de la IAP con manifiestos de Kubernetes (GitOps), debes almacenar las credenciales en un secreto y hacer referencia a él en tu BackendConfig:

  1. Configura la pantalla de consentimiento de OAuth como Externa y crea credenciales de cliente de OAuth de forma manual en API y servicios > Credenciales (tipo de aplicación web).
  2. Crea un Secret de Kubernetes en el clúster: sh kubectl create secret generic iap-oauth-secret \ --namespace=mde \ --from-literal=client_id=YOUR_CLIENT_ID \ --from-literal=client_secret=YOUR_CLIENT_SECRET
  3. Actualiza BackendConfig para que tu servicio haga referencia al secreto: yaml spec: iap: enabled: true oauthclientCredentials: secretName: iap-oauth-secret

Configura el DNS para la interfaz web de MDE

Si habilitaste el balanceador de cargas HTTP externo para la interfaz web del MDE, debes establecer el registro A del nombre de dominio que asignaste a la variable MDE_UI_DOMAIN_NAME en input.tfvars a la dirección IP del balanceador de cargas HTTP externo que se implementó para finalizar el aprovisionamiento del certificado SSL administrado por Google.

Puedes buscar la dirección IP del balanceador de cargas HTTP externo con el siguiente comando:

gcloud compute addresses list --filter="name~'.*mde-ui.*'" --format="value(address)" --global

Consulta a tu host de DNS para obtener detalles sobre cómo crear un registro A.