GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el comando de gcloud para permitir el tráfico http en una instancia de VM? (¡No es crear una regla de firewall!)

Resuelto. No entiendo completamente lo que sucede detrás de escena, pero la solución a esto requiere el uso de "etiquetas" que asocian las reglas de firewall en la red con la instancia de VM. Por lo que puedo ver en este punto, esto solo es pertinente para http y https. Otros puertos que están abiertos en la red y la VM parecen funcionar sin esta pieza adicional.

Si ve las reglas de su firewall, probablemente verá que las reglas de los puertos 80 y 443 tienen las etiquetas "http-server" y "https-server" respectivamente. Si no es así, deberá agregar esas (u otras etiquetas de su elección). Resulta que la instancia también necesita que se le agreguen esas etiquetas.

Para agregar las etiquetas a una instancia de VM existente, use este comando de gcloud:

gcloud compute instances add-tags [YOUR_INSTANCE_NAME] --tags http-server,https-server

Para agregar las etiquetas en el momento de la creación de la instancia, incluya esa bandera en su declaración:

gcloud compute instances create [YOUR_INSTANCE_NAME] --tags http-server,https-server

Si observa la interfaz gráfica de usuario de GCE, verá que las casillas de verificación "Permitir tráfico http" y "Permitir tráfico https" están marcadas después de hacer eso. Luego, las solicitudes y las respuestas fluyen a través de los puertos 80 y 443 como se esperaba.


Una de las cosas súper útiles que ofrece Google Cloud Console es un enlace en la parte inferior de la creación para la mayoría de los recursos para la API REST y la línea de comando para crear el mismo recurso. Me estoy desafiando a mí mismo para poder hacer todo lo que puedo hacer en la consola desde la línea de comandos del SDK, así que lo uso a menudo cuando tengo una pregunta como la suya.

Teniendo la misma pregunta que arriba, en la consola creé una VM y seleccioné "Permitir tráfico HTTP". Mirando la línea de comando para esto, verá dos comandos. El primero es el comando de creación con la etiqueta como se indicó anteriormente (servidor http):

gcloud beta compute --project=XXXX instances create cgapperi-vm1 \
--zone=XXXXX --machine-type=f1-micro --subnet=default \
--tags=http-server --image=debian-10-buster-v20200413 \
--image-project=debian-cloud --boot-disk-size=10GB \
--boot-disk-type=pd-standard --boot-disk-device-name=cgapperi-vm1 \
--no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring \
--reservation-affinity=any

El segundo en realidad crea la regla de firewall (default-allow-http ) y establece el destino de las solicitudes a la etiqueta del servidor http (--target-tags=http-server ) en el puerto TCP 80 (--rules=tcp:80 ) de solicitudes entrantes (--direction=INGRESS ) de todas las fuentes (--source-ranges=0.0.0.0/0 ):

gcloud compute --project=XXXX firewall-rules create default-allow-http \
--direction=INGRESS --priority=1000 --network=default --action=ALLOW \
--rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server

Espero que esto sea útil para cualquier otra persona.

NOTA: Reduje la salida del gcloud compute instance create a los bits relevantes para reducir el desorden.


Linux
  1. ¿Qué es un comando cURL y cómo usarlo?

  2. Permitir el tráfico web en un firewall de software firewalld

  3. ¿Cuál es el equivalente de ~ (tilde) de Linux en Windows?

  4. ¿Cuál es el punto del comando hostnamectl?

  5. ¿Cuál es el uso de la opción -o en el comando useradd?

¿Qué es el comando Watch de Linux + ejemplos?

Useradd vs Adduser:¿Cuál es la diferencia?

¿Qué es el comando matar en Linux?

HTTP vs HTTPS:¿Cuál es la diferencia?

Cree una regla de permiso de puerto de entrada para Windows Firewall 2008

useradd vs adduser:¿Cuáles son las diferencias?