Paso 3: Configura el acceso
En esta sección, se proporcionan instrucciones sobre las diferentes formas de otorgar acceso a tu implementación de MDE, según tus necesidades.
Túneles 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 de proxy llamada mde-proxy. Esta máquina puede enviar solicitudes entrantes al gateway 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 túneles a mde-proxy y cómo crear un túnel a él desde tu estación de trabajo:
En la Google Cloud consola de, ve a IAP y haz clic en Habilitar API. Esta operación puede tardar varios minutos.
En la Google Cloud consola de, ve a la IAP y haz clic en RECURSOS DE SSH Y TCP.
Otorga permiso a los usuarios autorizados para usar IAP para conectarse a
mde-proxya través de IAP:Antes de que los usuarios puedan usar IAP para conectarse a
mde-proxy, otorga les elroles/iap.tunnelResourceAccessorrol con las siguientes instrucciones:Selecciona mde-proxy de la lista.
Haz clic en Agregar principal en el panel derecho.
Escribe el correo electrónico de la principal a la que deseas otorgar acceso.
Selecciona el rol
IAP-secured Tunnel User.
Crea un túnel a 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:80Después de ejecutar el comando, se puede acceder a las APIs de MDE en
http://localhost:8080.Crea un túnel a la interfaz web de MDE.
Si creaste un túnel a la API de MDE en el paso 3, puedes abrir una terminal nueva para ejecutar los comandos más tarde. 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:80Después de ejecutar el comando, se puede acceder a la interfaz web de 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 de balanceador de cargas externo.
Para usar IAP, primero debes habilitar la API del servicio de IAP (si aún no lo hiciste) y configurar la pantalla de OAuth:
En la Google Cloud consola de, ve a la IAP y haz clic en Habilitar API. Esta operación puede tardar varios minutos.
Configura la pantalla de consentimiento de OAuth para IAP:
- En la Google Cloud consola de, ve a la página de Google Auth Platform y selecciona el proyecto de implementación de MDE si se te solicita.
- En la página Resumen, haz clic en Comenzar.
- Ingresa el Nombre de la aplicación que deseas mostrar, por ejemplo,
MDE. - Agrega tu correo electrónico como Correo electrónico de asistencia al usuario y haz clic en Siguiente.
- En Público, selecciona Externo y haz clic en Siguiente.
- Agrega tu correo electrónico como Información de contacto y haz clic en Siguiente.
- Lee y acepta la Política de Datos del Usuario de los Servicios de las APIs de Google y haz clic en Continuar.
- Haz clic en Crear.
Configura el acceso al balanceador de cargas HTTP externo de la interfaz web
En esta sección, configurarás el acceso al balanceador de cargas HTTP externo de la interfaz web de MDE con IAP.
Si habilitaste el balanceador de cargas HTTP externo para la interfaz web de MDE, debes usar 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 generales de configuración de IAP.
Pasos
En la Google Cloud consola de, ve a la página de IAP.
Ubica el recurso correspondiente al servicio de IU externa (busca
mde-ui-ext-service).En la columna IAP de ese recurso, activa el botón de activación a Habilitado.
En el diálogo de confirmación, lee y acepta los requisitos de configuración y, luego, haz clic en Activar.
Una vez activada, selecciona la casilla de verificación junto al nombre del recurso (
mde-ui-ext-service).En el panel derecho, haz clic en Agregar principal.
Escribe la dirección de correo electrónico del usuario o grupo al que deseas otorgar acceso.
En el menú desplegable Rol, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.
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 de OAuth personalizados con IAP y 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 secretos 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 GKE Ingress herede la configuración existente), puedes configurar el cliente personalizado directamente en la consola:
- Ve a la página de IAP.
- Para el recurso
mde-ui-ext-service, haz clic en Más opciones (tres puntos) en la columna Acciones y selecciona Configuración. - Selecciona OAuth personalizado.
- Haz clic en Generar credenciales automáticamente (o proporciona las credenciales existentes si las creaste de forma manual en API y servicios).
- Haz clic en Guardar.
Método B: Configuración administrada por GKE (con secretos de Kubernetes)
Si prefieres administrar la configuración de IAP con manifiestos de Kubernetes (GitOps), debes almacenar las credenciales en un secreto y hacer referencia a él en tu BackendConfig:
- Configura la pantalla de consentimiento de OAuth como Externo y crea credenciales de cliente de OAuth de forma manual en API y servicios > Credenciales (tipo de aplicación web).
- Crea un secreto de Kubernetes en el clúster de :
sh kubectl create secret generic iap-oauth-secret \ --namespace=mde \ --from-literal=client_id=YOUR_CLIENT_ID \ --from-literal=client_secret=YOUR_CLIENT_SECRET - Actualiza el
BackendConfigde tu servicio para hacer 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 de 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.