arrow_back

Redes de VPC: Cómo controlar el acceso

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Redes de VPC: Cómo controlar el acceso

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP213

Labs de autoaprendizaje de Google Cloud

Descripción general

En este lab, crearás dos servidores web Nginx y controlarás el acceso HTTP externo a los servidores web con reglas de firewall etiquetadas. Luego, explorarás roles de IAM y cuentas de servicio.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Crear un servidor web Nginx
  • Crear reglas de firewall etiquetadas
  • Crear una cuenta de servicio con roles de IAM
  • Explorar los permisos de los roles de Administrador de red y Administrador de seguridad

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:

    • El botón Abrir la consola de Google
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1: Crea los servidores web

En esta sección, crearás dos servidores web (blue y green) en la red de VPC predeterminada. Luego, instalarás nginx en los servidores web y modificarás la página de bienvenida para distinguir entre servidores.

Crea el servidor blue

Crea el servidor blue con una etiqueta de red.

  1. En la consola, navega a Menú de navegación (Ícono del menú de navegación) > Compute Engine > Instancias de VM.

  2. Haz clic en Crear instancia.

  3. Configura los siguientes valores y deja el resto con la configuración predeterminada:

    Propiedad Valor (escribe el valor o selecciona la opción como se especifica)
    Nombre blue
    Región
    Zona

    Para obtener más información sobre las regiones y las zonas disponibles, en la guía de regiones y zonas de Compute Engine de Google Cloud, consulta la sección Regiones y zonas disponibles en las guías de Compute Engine.

  4. Haz clic en Opciones avanzadas > Redes.

  5. En Etiquetas de red, escribe web-server.

Nota: Las redes usan etiquetas de red para identificar qué instancias de VM están sujetas a ciertas reglas de firewall y rutas de red. Más adelante en este lab, crearás una regla de firewall para otorgar acceso HTTP a las instancias de VM con la etiqueta web-server. Como alternativa, podrías marcar la casilla de verificación Permitir el tráfico HTTP, lo cual etiquetaría la instancia como http-server y crearía la regla de firewall etiquetada de tcp:80.
  1. Haz clic en Crear.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Crear el servidor blue

Crea el servidor green

Crea el servidor green sin una etiqueta de red.

  1. En la consola, en la página Instancias de VM, haz clic en Crear instancia.

  2. Configura los siguientes valores y deja el resto con la configuración predeterminada:

    Propiedad Valor (escribe el valor o selecciona la opción como se especifica)
    Nombre green
    Región
    Zona
  3. Haz clic en Crear.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Crear el servidor green

Instala Nginx y personaliza la página de bienvenida

Instala Nginx en ambas instancias de VM y modifica la página de bienvenida para distinguir los servidores.

  1. En el diálogo Instancias de VM del servidor blue, haz clic en SSH para iniciar una terminal y conectarte.

  2. En la terminal SSH del servidor blue, ejecuta el siguiente comando para instalar Nginx:

sudo apt-get install nginx-light -y
  1. Abre la página de bienvenida en el editor nano:
sudo nano /var/www/html/index.nginx-debian.html
  1. Reemplaza la línea <h1>Welcome to nginx!</h1> por <h1>Welcome to the blue server!</h1>.
  2. Presiona CTRL + O, INTRO, CTRL + X.
  3. Verifica el cambio:
cat /var/www/html/index.nginx-debian.html

El resultado debería contener lo siguiente:

<h1>Welcome to the blue server!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p>
  1. Cierra la terminal SSH del servidor blue:
exit

Repite los mismos pasos para el servidor green:

  1. En el caso del servidor green, haz clic en SSH para iniciar una terminal y conectarte.
  2. Instala Nginx:
sudo apt-get install nginx-light -y
  1. Abre la página de bienvenida en el editor nano:
sudo nano /var/www/html/index.nginx-debian.html
  1. Reemplaza la línea <h1>Welcome to nginx!</h1> por <h1>Welcome to the green server!</h1>.
  2. Presiona CTRL + O, INTRO, CTRL + X.
  3. Verifica el cambio:
cat /var/www/html/index.nginx-debian.html

El resultado debería contener lo siguiente:

<h1>Welcome to the green server!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p>
  1. Cierra la terminal SSH del servidor green:
exit

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Instalar Nginx y personalizar la página de bienvenida

Tarea 2: Crea la regla de firewall

Crea la regla de firewall etiquetada y prueba la conectividad HTTP.

Crea la regla de firewall etiquetada

Crea una regla de firewall que se aplique a las instancias de VM con la etiqueta de red web-server.

  1. En la consola, navega a Menú de navegación (Ícono del menú de navegación) > Red de VPC > Firewall.
  2. Observa la regla de firewall default-allow-internal.
Nota: La regla de firewall default-allow-internal permite el tráfico en todos los protocolos o puertos dentro de la red default. Te recomendamos que crees una regla de firewall para permitir el tráfico desde fuera de esta red hacia el servidor blue solamente, con la etiqueta de red web-server.
  1. Haz clic en Crear regla de firewall.

  2. Establece los siguientes valores y deja el resto con la configuración predeterminada.

    Propiedad Valor (escribe el valor o selecciona la opción como se especifica)
    Nombre allow-http-web-server
    Red predeterminado
    Destinos Etiquetas de destino especificadas
    Etiquetas de destino web-server
    Filtro de origen Rangos de IPv4
    Rangos de IPv4 de origen 0.0.0.0/0
    Protocolos y puertos Protocolos y puertos especificados; marca tcp, escribe 80, y marca Otros protocolos y escribe icmp.
Nota: Asegúrate de incluir el valor /0 en los Rangos de IP de origen para especificar todas las redes.
  1. Haz clic en Crear.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Crear la regla de firewall etiquetada

Crea la instancia test-vm

Crea la instancia test-vm con la línea de comandos de Cloud Shell.

  1. Abre una nueva terminal de Cloud Shell.

  2. Ejecuta el siguiente comando para crear una instancia test-vm, en la zona :

gcloud compute instances create test-vm --machine-type=e2-micro --subnet=default --zone={{{project_0.default_zone|ZONE}}}

El resultado debería verse así:

NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS test-vm {{{project_0.default_zone|ZONE}}} e2-micro 10.142.0.4 35.237.134.68 RUNNING Nota: Puedes crear instancias de VM con facilidad desde la consola o la línea de comandos de gcloud.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Crear la instancia test-vm

Prueba la conectividad HTTP

Desde test-vm, ejecuta curl en las direcciones IP interna y externa de los servidores blue y green.

  1. En la consola, navega a Menú de navegación (Ícono del menú de navegación) > Compute Engine > Instancias de VM.
  2. Observa las direcciones IP interna y externa de los servidores blue y green.
  3. En test-vm, haz clic en SSH para iniciar una terminal y conectarte.
  4. Para probar la conectividad HTTP con la IP interna del servidor blue, ejecuta el siguiente comando, en el cual deberás ingresar la IP interna del servidor blue:
curl <Enter blue's internal IP here>

Deberías ver el encabezado Welcome to the blue server!.

  1. Para probar la conectividad HTTP con la IP interna del servidor green, ejecuta el siguiente comando, en el cual deberás ingresar la IP interna del servidor green:
curl -c 3 <Enter green's internal IP here>

Deberías ver el encabezado Welcome to the green server!.

Nota: Puedes obtener acceso HTTP a ambos servidores con sus direcciones IP internas. La regla de firewall default-allow-internal permite la conexión en tcp:80, ya que test-vm se encuentra en la misma red de VPC que la red default del servidor web.
  1. Para probar la conectividad HTTP con la IP externa del servidor blue, ejecuta el siguiente comando, en el cual deberás ingresar la IP externa del servidor blue:
curl <Ingresa aquí la IP externa del servidor blue>

Deberías ver el encabezado Welcome to the blue server!.

  1. Para probar la conectividad HTTP con la IP externa del servidor green, ejecuta el siguiente comando, en el cual deberás ingresar la IP externa del servidor green:
curl -c 3 <Ingresa aquí la IP externa del servidor green> Nota: Es probable que no funcione. La solicitud queda en espera.
  1. Presiona CTRL + C para detener la solicitud HTTP.
Nota: Como era de esperar, solo puedes obtener acceso HTTP a la dirección IP externa del servidor blue, ya que allow-http-web-server solo se aplica a instancias de VM con la etiqueta web-server.

Puedes verificar el mismo comportamiento desde el navegador. Para ello, abre una pestaña nueva y navega a http://[External IP of server].

Tarea 3: Explora los roles de Administrador de red y Administrador de seguridad

Cloud IAM te permite autorizar quién puede tomar medidas sobre recursos específicos, lo que te proporciona control y visibilidad completos para administrar recursos de nube de manera central. Los siguientes roles se usan junto con las herramientas de redes de proyecto único para controlar de manera independiente el acceso de administrador a cada red de VPC:

  • Administrador de red: tiene permisos para crear, modificar y borrar recursos de red, excepto reglas de firewall y certificados SSL.
  • Administrador de seguridad: tiene permisos para crear, modificar y borrar reglas de firewall y certificados SSL.

Para explorar estos roles, puedes aplicarlos a una cuenta de servicio, que es una Cuenta de Google especial que pertenece a tu instancia de VM, en lugar de a un usuario final individual. En lugar de crear un usuario nuevo, autorizarás a test-vm para que utilice la cuenta de servicio y, así, demuestre los permisos de los roles de Administrador de red y Administrador de seguridad.

Verifica los permisos actuales

Actualmente, test-vm usa la cuenta de servicio predeterminada de Compute Engine, que se habilita en todas las instancias que crean la línea de comandos de Cloud Shell y la consola de Cloud.

Intenta obtener una lista de las reglas de firewall disponibles desde test-vm o trata de borrarlas.

  1. Regresa a la terminal SSH de la instancia test-vm.
  2. Intenta obtener una lista de las reglas de firewall disponibles:
gcloud compute firewall-rules list

El resultado debería verse así:

ERROR: (gcloud.compute.firewall-rules.list) Some requests did not succeed: - Insufficient Permission Nota: Es probable que no funcione.
  1. Intenta borrar la regla de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
  1. En caso de que se te pregunte si deseas continuar, ingresa Y.

El resultado debería verse así:

ERROR: (gcloud.compute.firewall-rules.delete) Could not fetch resource: - Insufficient Permission Nota: Es probable que no funcione. Nota: La cuenta de servicio predeterminada de Compute Engine no tiene los permisos adecuados para que puedas obtener una lista de las reglas de firewall o borrarlas. Lo mismo se aplica a otros usuarios que no tienen los roles adecuados.

Crea una cuenta de servicio

Crea una cuenta de servicio y aplica el rol de Administrador de red.

  1. En la consola, ve a Menú de navegación (Ícono del menú de navegación) > IAM y administración > Cuentas de servicio.

  2. Observa la cuenta de servicio predeterminada de Compute Engine.

  3. Haz clic en Crear cuenta de servicio.

  4. A la cuenta de servicio asígnale el nombre Network-admin y haz clic en CREAR Y CONTINUAR.

  5. En Selecciona un rol, elige Compute Engine > Administrador de red de Compute y haz clic en CONTINUAR y luego en LISTO.

  6. Después de crear la cuenta de servicio Network-admin, haz clic en los tres puntos ubicados en la esquina derecha y haz clic en Administrar claves en el menú desplegable. Luego, haz clic en Agregar clave y selecciona Crear nueva clave en el menú desplegable. Haz clic en Crear para descargar la salida de JSON.

  7. Haz clic en Cerrar.

    Se descargará un archivo de claves JSON en tu computadora local. Encuentra ese archivo de claves y súbelo a la VM en un paso posterior.

  8. Cambia el nombre del archivo de claves JSON en tu máquina local por credentials.json.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Crear una cuenta de servicio llamada Network-admin

Autoriza la instancia test-vm y verifica los permisos

Autoriza a test-vm para que use la cuenta de servicio Network-admin.

  1. Regresa a la terminal SSH de la instancia test-vm.
  2. Para subir credentials.json a través de la terminal SSH de la VM, haz clic en el ícono Subir archivo ubicado en la esquina superior derecha.
  3. Selecciona credentials.json y súbelo.
  4. En la ventana Transferencia de archivos, haz clic en Cerrar. Nota: Si se te solicita, haz clic en Reintentar en el diálogo No se pudo establecer la conexión a través de Cloud Identity-Aware Proxy y vuelve a subir el archivo.
  5. Autoriza la VM con las credenciales que subiste:
gcloud auth activate-service-account --key-file credentials.json Nota: Dado que la imagen que usas tiene preinstalado el SDK de Cloud, no es necesario que lo inicialices. Si pruebas este lab en un entorno diferente, asegúrate de haber seguido los procedimientos de instalación del SDK de Cloud.
  1. Intenta obtener una lista de las reglas de firewall disponibles:
gcloud compute firewall-rules list

El resultado debería verse así:

NAME NETWORK DIRECTION PRIORITY ALLOW DENY allow-http-web-server default INGRESS 1000 tcp:80 default-allow-icmp default INGRESS 65534 icmp default-allow-internal default INGRESS 65534 all default-allow-rdp default INGRESS 65534 tcp:3389 default-allow-ssh default INGRESS 65534 tcp:22

Esto debería funcionar.

  1. Intenta borrar la regla de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
  1. En caso de que se te pregunte si deseas continuar, ingresa Y.

El resultado debería verse así:

ERROR: (gcloud.compute.firewall-rules.delete) Could not fetch resource: - Required 'compute.firewalls.delete' permission for 'projects/[PROJECT_ID]/global/firewalls/allow-http-web-server' Nota: Es probable que no funcione. Nota: Como era de esperar, el rol de Administrador de red tiene permisos para obtener una lista de las reglas de firewall, pero no las puede modificar ni borrar.

Actualiza la cuenta de servicio y verifica los permisos

Para actualizar la cuenta de servicio Network-admin, proporciona el rol de Administrador de seguridad.

  1. En la consola, navega a Menú de navegación (Ícono del menú de navegación) > IAM y administración > IAM.

  2. Busca la cuenta Network-admin. Enfócate en la columna Nombre para identificar esta cuenta.

  3. Haz clic en el ícono de lápiz de la cuenta Network-admin.

  4. Cambia el Rol por Compute Engine > Administrador de seguridad de Compute.

  5. Haz clic en Guardar.

  6. Regresa a la terminal SSH de la instancia test-vm.

  7. Intenta obtener una lista de las reglas de firewall disponibles:

gcloud compute firewall-rules list

El resultado debería verse así:

NAME NETWORK DIRECTION PRIORITY ALLOW DENY allow-http-web-server default INGRESS 1000 tcp:80 default-allow-icmp default INGRESS 65534 icmp default-allow-internal default INGRESS 65534 all default-allow-rdp default INGRESS 65534 tcp:3389 default-allow-ssh default INGRESS 65534 tcp:22

Esto debería funcionar.

  1. Intenta borrar la regla de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
  1. En caso de que se te pregunte si deseas continuar, ingresa Y.

El resultado debería verse así:

Deleted [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-00e186e4b1cec086/global/firewalls/allow-http-web-server].

Esto debería funcionar.

Nota: Como era de esperar, el rol de Administrador de seguridad tiene permisos para obtener una lista de las reglas de firewall y borrarlas.

Verifica la eliminación de la regla de firewall

Verifica que ya no tengas acceso HTTP a la IP externa del servidor blue, dado que borraste la regla de firewall allow-http-web-server.

  1. Regresa a la terminal SSH de la instancia test-vm.
  2. Para probar la conectividad HTTP con la IP externa del servidor blue, ejecuta el siguiente comando, en el cual deberás ingresar la IP externa del servidor blue:
curl -c 3 <Ingresa aquí la IP externa del servidor blue> Nota: Es probable que no funcione.
  1. Presiona CTRL + C para detener la solicitud HTTP.
Nota: Proporciona el rol de Administrador de seguridad al usuario o cuenta de servicio adecuados para evitar cambios no deseados en tus reglas de firewall.

¡Felicitaciones!

En este lab, creaste dos servidores web Nginx y controlaste el acceso HTTP externo con una regla de firewall etiquetada. Después, creaste una cuenta de servicio, primero con el rol de Administrador de red y, luego, con el de Administrador de seguridad, para explorar los diferentes permisos de esos roles.

Si tu empresa tiene un equipo de seguridad que administra firewalls y certificados SSL y un equipo de red que administra el resto de los recursos de red, otórgale al equipo de seguridad el rol de Administrador de seguridad y al de red el de Administrador de red.

Próximos pasos y más información

Para obtener información sobre los conceptos básicos de Google Cloud Identity and Access Management, consulta la Descripción general de Google Cloud Identity and Access Management

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 19 de septiembre de 2023

Prueba más reciente del lab: 19 de septiembre de 2023

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.