Objetivos
En este instructivo, aprenderás lo siguiente:
- Cómo crear una plantilla de instancias para Compute Engine y un grupo de instancias administrado (MIG)
- Cómo obtener un nombre de dominio y un certificado
- Cómo crear un balanceador de cargas de HTTPS con un certificado
- Cómo habilitar IAP
- Cómo probar que IAP esté funcionando
Costos
En este instructivo, se usan componentes facturables de Google Cloud, que incluyen lo siguiente:
- Compute Engine
- 4 máquinas virtuales (VM)
- Herramientas de redes
- Regla de reenvío del balanceador de cargas
- Tráfico de entrada
Para obtener un costo estimado de acuerdo con el uso proyectado, consulta la siguiente calculadora de precios.
Antes de comenzar
Antes de comenzar con este instructivo, deberás realizar los siguientes pasos:
Selecciona o crea un proyecto de Google Cloud.
IR A LA PÁGINA DE PROYECTOSHabilita la facturación en tu proyecto. Obtén más información sobre cómo modificar la configuración de facturación de un proyecto.
Paso 1: Crear una plantilla de Compute Engine
En la consola de Google Cloud, ve a la página Compute Engine > Crear una plantilla de instancias y selecciona el proyecto para el que deseas crear una plantilla.
IR A LA PÁGINA CREAR UNA PLANTILLA DE INSTANCIAS
Usa los valores predeterminados, excepto para lo siguiente:
- Tipo de máquina:
- micro (f1-micro)
- Permisos de acceso:
- Configurar acceso para cada API
- Compute Engine: solo lectura
- Firewall:
- Permitir tráfico HTTP
- En la sección Administración, en Automatización > Secuencia de comandos de inicio, copia y pega la siguiente secuencia de comandos:
Una vez que hayas terminado de actualizar los valores, haz clic en Crear para crear la plantilla.
Paso 2: Crear un grupo de instancias administrado
En la consola de Google Cloud, ve a la página Compute Engine > Crear un nuevo grupo de instancias y selecciona el proyecto en el que deseas crear un grupo de instancias administrado.
IR A LA PÁGINA CREAR UN GRUPO DE INSTANCIAS
Usa los valores predeterminados, excepto para lo siguiente:
- Nombre: my-managed-instance-group
- Ubicación: multi-zona
- Plantilla de instancias: Selecciona la plantilla de instancias que creaste en el Paso 1
- Cantidad de instancias: Para cambiar la cantidad de instancias, primero debes desactivar el ajuste de escala automático.
- Modo de ajuste de escala automático: Sin ajuste de escala automático
Verificación de estado: Selecciona Crear una verificación de estado y, a continuación, ingresa los siguientes valores:
- Nombre: my-health-check
- Protocolo: HTTP
Para usar tu nueva verificación de estado, haz clic en Guardar y continuar.
Una vez que termines de actualizar los valores, haz clic en Crear para crear el Grupo de instancias administrado (MIG).
Paso 3: Obtener un nombre de dominio y un certificado
Para usar el balanceador de cargas con tráfico HTTPS, deberás tener un nombre de dominio y un certificado firmado. Puedes registrar un dominio en Google Domains o usar el registrador de dominios que prefieras. Registra tu dominio antes de seguir leyendo esta guía.
Configura tu certificado
Crea un certificado que identifique tu sitio web para los usuarios. Para obtener información sobre cómo crear un certificado, consulta Usa certificados SSL administrados por Google.
El CA debe verificar que el nombre de dominio que has registrado te pertenezca. En los siguientes pasos, podrás crear una VM para autenticar tu dominio con el CA.
Crea una VM para autenticar la propiedad del dominio
En la consola de Google Cloud, ve a la página Compute Engine > Crear una instancia.
IR A LA PÁGINA CREAR UNA INSTANCIA
Usa los valores predeterminados, excepto para lo siguiente:
- Nombre certbot-vm
- Tipo de máquina: micro (f1-micro)
- Permisos de acceso:
- Configurar acceso para cada API
- Compute Engine: lectura/escritura
- Imagen de disco de arranque:
- Debian GNU/Linux 9 (stretch)
- Firewall:
- Permitir tráfico HTTP
- Permitir tráfico HTTPS
Una vez que hayas terminado de actualizar los valores, haz clic en Crear para crear la instancia de VM. Toma nota de la dirección IP externa de la VM que acabas de crear. La necesitarás en la próxima sección.
Configura tu dominio para que se oriente a la VM
A fin de configurar tu dominio de modo que se oriente a la VM, sigue estos pasos para configurar los registros A:
- Accede a la cuenta de tu dominio en el host del dominio.
- Encuentra la página para actualizar los registros DNS de tu dominio. La página podría llamarse “Administración de DNS”, “Administración de servidor de nombres”, “Configuración avanzada” o alguna opción similar.
- Cambia tus registros A con los siguientes valores:
- Nombre/Host/Alias: @
- Valor: La dirección IP externa de la VM que creaste para autenticar la propiedad del dominio anterior.
- TTL: El valor predeterminado de tu registrador o 86400 (un día).
- Espera a que se actualice el registro DNS. Puede tomar hasta un día para que el registro que agregaste se propague.
Para obtener más información, consulta Acerca de los registros A.
Prueba tu servidor
Para probar que tu servidor esté funcionando correctamente, sigue estos pasos:
En la consola de Google Cloud, ve a la página Compute Engine > Instancias de VM.
IR A LA PÁGINA INSTANCIAS DE VM INSTANCESEn Conectar para certbot-vm, haz clic en SSH.
Ejecuta los siguientes comandos para implementar un pequeño servidor web en tu VM:
mkdir web cd web echo "Hello" > index.html sudo busybox httpd -v -f
En un navegador web, ve al nombre de dominio que registraste antes. El navegador web debe mostrar
Hello
, y la sesión SSH debe mostrar un mensaje que contenga... response:200
. De no ser así, espera algunos minutos y, a continuación, repite el paso.Cuando la prueba no arroje ningún error, presiona Ctrl+C para detener el servidor web.
Crear un certificado
Para crear un certificado, regístrate en Let's Encrypt. Para ello, ejecuta los siguientes comandos en la VM, en los que YOUR_DOMAIN es tu nombre de dominio, sin incluir el protocolo:
sudo pkill busybox sudo apt-get install -y certbot sudo certbot certonly --standalone -d YOUR-DOMAIN
En este proceso, es probable que Let's Encrypt te solicite una dirección de correo electrónico para poder enviarte un recordatorio antes de que venza tu certificado (de forma predeterminada, 3 meses después de su emisión). Además, debes aceptar las Condiciones del Servicio establecidas por Let's Encrypt.
Cuando te hayas registrado correctamente, verás un mensaje como el siguiente Congratulations! Your certificate and chain have been saved at...
Agrega un certificado a tu proyecto
Para agregar un certificado a tu proyecto, ejecuta los siguientes comandos en la VM:
sudo su cd /etc/letsencrypt/live/YOUR_DOMAIN gcloud compute ssl-certificates create my-cert --certificate=fullchain.pem --private-key=privkey.pem
Después de crear el certificado correctamente, verás un mensaje similar el siguiente: Created
[https://www.googleapis.com/compute/v1/projects/example-project/global/sslCertificates/my-cert]
Antes de continuar, cierra la sesión SSH.
Paso 4: Crear un balanceador de cargas
Antes de comenzar con este paso, asegúrate de haber cerrado la sesión SSH que abriste en el paso anterior. Cuando estés listo, sigue estos pasos para crear un balanceador de cargas:
En la consola de Google Cloud, ve a la página Servicios de red > Crear un balanceador de cargas y selecciona el proyecto para el que deseas crear un balanceador de cargas.
IR A LA PÁGINA CREAR UN BALANCEADOR DE CARGASEn Balanceo de cargas de HTTP(S), haga clic en Iniciar configuración.
Selecciona De Internet a mis VM.
En la página Nuevo balanceador de cargas de aplicaciones externo que aparece, ingresa un nombre para tu balanceador de cargas.
Haz clic en Configuración de backend y, a continuación, selecciona Servicios de backend > Crear un servicio de backend.
En el panel Crear servicio de backend, en el cuadro Nombre, ingresa
my-backend-service
.
En Nuevo backend, usa los valores predeterminados, salvo para el siguiente elemento:
- Grupo de instancias: my-managed-instance-group
En Verificación de estado, selecciona my-health-check.
Cuando hayas terminado de actualizar los valores, haz clic en Crear. Volverá a aparecer el panel Nuevo balanceador de cargas de HTTP(S).
Haz clic en Reglas de host y ruta para cargar los valores predeterminados. No es necesario agregar ninguna regla.
Haz clic en Configuración de front-end. Usa los valores predeterminados, excepto para los siguientes elementos:
- Protocolo: HTTPS
- Dirección IP: Haz clic en Crear dirección IP
- Ingresa un Nombre para vincularlo a tu nueva dirección IP estática.
- Haz clic en Reservar para reservar la dirección IP estática.
- Certificado: my-cert
Cuando hayas terminado de agregar los valores de configuración de frontend, haz clic en Listo.
Haz clic en Crear. Aparecerá la página Balanceo de cargas y se creará el nuevo balanceador de cargas en la lista de balanceadores de cargas.
Una vez que la consola de Google Cloud termine de crear el balanceador de cargas nuevo, haz clic en el nombre del balanceador de cargas y anota la dirección IP externa en Detalles > Frontend. La necesitarás en el próximo paso.
Configura tu dominio para que se oriente al balanceador de cargas
Para configurar tu dominio de tal forma que se oriente al balanceador de cargas, configura los registros A con los pasos que se muestran a continuación:
- Accede a la cuenta de tu dominio en el host del dominio.
- Encuentra la página para actualizar los registros DNS de tu dominio. La página podría llamarse “Administración de DNS”, “Administración de servidor de nombres”, “Configuración avanzada” o alguna opción similar.
- Cambia tus registros A con los siguientes valores:
- Nombre/Host/Alias: @
- Valor: la dirección IP externa del balanceador de cargas que creaste antes. No incluyas el puerto
:443
en tu Registro DNS. - TTL: el valor predeterminado de tu registrador o 86400 (un día).
- Espera a que se actualice el registro DNS. El registro puede tardar hasta un día en propagarse.
- Si quieres probar el balanceador de cargas, usa un navegador web para ir a tu dominio con un protocolo
https://
.- Si el balanceador de cargas aún no está configurado, verás los errores “HTTP 502”.
- Una vez que el balanceador de cargas esté listo, verás el mensaje "Solicitud no autorizada".
Para obtener más información, consulta Acerca de los registros A.
Reinicia tus VM
Para autenticar correctamente las solicitudes de IAP, debes reiniciar las VM en tu MIG siguiendo estos pasos:
- En la consola de Google Cloud, ve a la
página Compute Engine > Grupos de instancias.
IR A LA PÁGINA GRUPOS DE INSTANCIAS - Haz clic en my-managed-instance-group.
- En la parte superior de los detalles sobre el grupo de instancias, haz clic en Reemplazo o reinicio progresivo.
- En la página Reinicio o reemplazo de instancias de my-managed-instance-group que aparece, configura los siguientes valores:
- Operación: Reinicio
- Máximo no disponible: 3 instancias de 3 instancias
- Tiempo de espera mínimo: 0 s
- Cuando termines de actualizar los valores, haz clic en Reiniciar.
Paso 5: Configurar IAP
Configura tu firewall
A continuación, configurarás el firewall para bloquear el acceso a las VM subyacentes y solo permitir el acceso a través de IAP:
- Ve a la consola de Google Cloud
Red de VPC > Reglas de firewall.
IR A LA PÁGINA REGLAS DE FIREWALL - Selecciona la casilla de verificación junto a las siguientes reglas:
- default-allow-http
- default-allow-https
- default-allow-internal
- Haz clic en Borrar.
- Haz clic en Crear regla de firewall y configura los siguientes valores:
- Nombre: allow-iap-traffic
- Objetivos: todas las instancias de la red
- Rangos de IP de origen (presiona Intro después de pegar cada valor en el cuadro). Los rangos de IP están incluidos en la lista de entidades permitidas porque es un requisito previo para la comunicación del balanceador de cargas con los backends.
- 130.211.0.0/22
- 35.191.0.0/16
- Protocolos y puertos:
- Protocolos y puertos especificados
- tcp:80
- Cuando hayas terminado de actualizar los valores, haz clic en Crear.
Configura IAP
A fin de configurar IAP para tu proyecto, sigue estos pasos:
- En la consola de Google Cloud, ve a la página
Seguridad > Identity-Aware Proxy
y selecciona el proyecto para el que deseas habilitar IAP.
IR A LA PÁGINA IDENTITY-AWARE PROXY Si aún no has configurado la pantalla de consentimiento de OAuth para tu proyecto, se te solicitará hacerlo:
-
Ve a la pantalla de consentimiento de OAuth.
Configuración de la pantalla de consentimiento - En Correo electrónico de asistencia, selecciona la dirección de correo electrónico que deseas mostrar como contacto público. La dirección de correo electrónico debe pertenecer a la cuenta de usuario con la que se accedió o a un grupo de Google del que el usuario es propietario o propietario.
- Ingresa el Nombre de la aplicación que deseas mostrar.
- Agrega otro tipo de información opcional que desees mostrar.
- Haz clic en Guardar.
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.
-
Ve a la pantalla de consentimiento de OAuth.
Junto a my-backend-service,
En la ventana Activar IAP que aparece, selecciona la casilla de verificación junto a “Leí los requisitos de configuración y configuré mi recurso de Compute Engine según se indica en la documentación”.
Haz clic en Activar.
Agrega principales a la lista de acceso
A continuación, agregarás principales a la lista de acceso IAP de tu proyecto.
- En la sección Acceso ubicada a la derecha en IAM y administración > Identity-Aware Proxy, haz clic en Agregar.
- Ingresa las principales a las que quieres otorgar acceso, incluido tú mismo, y
asígnales el rol Usuario de aplicación web protegida con IAP. Las principales pueden ser las siguientes:
- Cuentas de Google: user@gmail.com
- Grupos de Google: admins@googlegroups.com
- Cuentas de servicio: server@example.gserviceaccount.com
- Dominios de lugar de trabajo de Google Workspace: example.com
Paso 6: Probar IAP
Para probar que IAP funcione correctamente, sigue estos pasos:
- En tu navegador web, ve a tu dominio.
- Si ves "Solicitud no autorizada", vuelve a intentarlo en unos minutos.
- Cuando veas una pantalla de Acceso con Google, accede con la Cuenta de Google a la que diste acceso en el paso anterior.
- Deberías ver un mensaje como “Hola, user@example.com. Soy my-managed-instance-group-29z6”.
- Intenta actualizar la página. Tu navegador debería mostrar los nombres de las 3 máquinas que integran tu grupo de instancias administrado. Se trata del balanceador de cargas que está distribuyendo el tráfico entre todas las VM del grupo.
¡Felicitaciones! Habilitaste correctamente un servicio de balanceo de cargas mediante IAP.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Una vez que hayas terminado de configurar IAP para Compute Engine, puedes limpiar los recursos que creaste en Google Cloud a fin de que no se facturen en el futuro. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.
Para borrar el proyecto, haz lo siguiente:
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Borra instancias
Para borrar una instancia de Compute Engine:
- En la consola de Google Cloud, ve a la página Instancias de VM.
-
Selecciona tu instancia
en la casilla de verificación de es la instancia que deseas borrar.
- Para borrar la instancia, haz clic en Más acciones, haz clic en Borrar y, luego, sigue las instrucciones.
Borra reglas de firewall para la red predeterminada
Para borrar una regla de firewall, haz lo siguiente:
- En la consola de Google Cloud, ve a la página Firewall.
- Selecciona la casilla de verificación para la regla de firewall que quieres borrar.
- Para borrar la regla de firewall, haz clic en Borrar.
¿Qué sigue?
- Trata de modificar la aplicación de ejemplo que usamos en este instructivo para entregar otros datos.
- Lee las prácticas recomendadas para comprender cómo escribir tus propias aplicaciones y protegerlas con IAP.