GNU/Linux >> Belajar Linux >  >> Linux

Apa perintah gcloud untuk mengizinkan lalu lintas http pada instance VM? (Ini bukan membuat aturan firewall!)

Terselesaikan. Saya tidak sepenuhnya memahami apa yang terjadi di balik layar, tetapi solusi untuk ini memerlukan penggunaan "tag" yang mengaitkan aturan firewall di jaringan dengan instance VM. Sejauh yang saya lihat saat ini, ini hanya berlaku untuk http dan https. Port lain yang terbuka di jaringan dan VM tampaknya berfungsi tanpa bagian tambahan ini.

Jika Anda melihat aturan firewall, Anda mungkin akan melihat aturan port 80 dan 443 masing-masing memiliki tag "http-server" dan "https-server". Jika tidak, Anda harus menambahkannya (atau tag lain yang Anda pilih). Ternyata instance membutuhkan tag yang ditambahkan ke dalamnya juga.

Untuk menambahkan tag ke instance VM yang ada, gunakan perintah gcloud ini:

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

Untuk menambahkan tag pada saat pembuatan instance, sertakan tanda tersebut dalam pernyataan Anda:

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

Jika Anda melihat di gui GCE, Anda akan melihat kotak centang "Izinkan lalu lintas http" dan "Izinkan lalu lintas https" dicentang setelah melakukan itu. Permintaan dan tanggapan kemudian mengalir melalui port 80 dan 443 seperti yang diharapkan.


Salah satu hal yang sangat membantu yang ditawarkan Google Cloud Console adalah tautan di bagian bawah pembuatan untuk sebagian besar sumber daya untuk REST API dan baris perintah untuk membuat sumber daya yang sama. Saya menantang diri sendiri untuk dapat melakukan semua yang dapat saya lakukan di konsol dari baris perintah SDK, jadi saya sering menggunakan ini saat memiliki pertanyaan seperti pertanyaan Anda.

Memiliki pertanyaan yang sama seperti di atas, di konsol saya membuat VM dan memilih "Izinkan lalu lintas HTTP". Melihat baris perintah untuk ini, Anda akan melihat dua perintah. Yang pertama adalah perintah buat dengan tag seperti yang disebutkan di atas (http-server):

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

Yang kedua sebenarnya membuat aturan firewall (default-allow-http ) untuk Anda, dan menetapkan target untuk permintaan ke tag http-server (--target-tags=http-server ) pada tcp port 80 (--rules=tcp:80 ) dari permintaan masuk (--direction=INGRESS ) dari semua sumber (--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

Saya harap ini bermanfaat bagi orang lain.

CATATAN: Saya memang mengurangi output dari gcloud compute instance create ke bit yang relevan untuk mengurangi kekacauan.


Linux
  1. Apa itu Perintah cURL Dan Bagaimana Cara Menggunakannya?

  2. Apa keajaiban - (tanda hubung) dalam parameter baris perintah?

  3. Apa perintah ekspor yang seharusnya dilakukan di Linux?

  1. Izinkan lalu lintas web di firewall perangkat lunak firewall

  2. Izinkan lalu lintas web di firewall perangkat lunak iptables

  3. Apa gunanya opsi -o dalam perintah useradd?

  1. Izinkan lalu lintas web di firewall perangkat lunak ufw

  2. Apa yang setara dengan ~ (tilde) Linux di Windows?

  3. Mengubah PATH, sekarang saya mendapatkan perintah tidak ditemukan untuk semuanya