Menggunakan Tag untuk firewall

Buat Tag sebelum Anda mencoba mengikatnya ke resource atau menggunakannya di kebijakan firewall jaringan. Untuk mengontrol akses jaringan, Tag hanya akan efektif jika terikat ke instance VM.

Untuk ringkasan, lihat Tag untuk firewall.

Memberikan izin ke Tag

Peran tagAdmin memungkinkan Anda membuat Tag baru atau memperbarui dan menghapus Tag yang sudah ada. Administrator organisasi dapat memberikan peran ini di level organisasi, dan pemilik project dapat memberikannya di level project.

gcloud

  1. Berikan peran tagAdmin kepada pengguna.

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagAdmin
    

    Ganti kode berikut:

    • ORGANIZATION_ID: ID organisasi Anda
    • EMAIL_ADDRESS: alamat email pengguna
  2. Berikan peran tagUser kepada pengguna.

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Ganti kode berikut:

    • ORGANIZATION_ID: ID organisasi Anda
    • TAG_KEY: Kunci tag
    • EMAIL_ADDRESS: alamat email pengguna

Peran khusus untuk mengelola Tag

Peran tagAdmin memungkinkan Anda melakukan tindakan berikut: membuat Tag baru, memperbarui, dan menghapus Tag yang ada. Jika memerlukan beberapa kemampuan ini, Anda dapat membuat peran IAM khusus dengan izin yang relevan, lalu memberikan peran baru kepada pengguna target. Untuk daftar izin yang relevan, lihat Izin IAM.

Tag yang digunakan dalam kebijakan firewall harus ditetapkan dengan tujuan GCE_FIREWALL. Meskipun tujuan GCE_FIREWALL diperlukan agar Tag dapat digunakan di fitur jaringan, Anda dapat menggunakan Tag tersebut untuk tindakan lainnya.

Tag yang digunakan dalam kebijakan firewall jaringan harus memiliki cakupan yang dibatasi pada VPC tunggal.

Buat kunci dan nilai Tag

Sebelum mengaitkan Tag ke kebijakan firewall jaringan, Anda harus membuat kunci dan nilai Tag.

gcloud

  1. Setelah mendapatkan izin yang diperlukan, buat kunci Tag.

    gcloud resource-manager tags keys create TAG_KEY \
       --parent organizations/ORGANIZATION_ID \
       --purpose GCE_FIREWALL \
       --purpose-data network=PROJECT_ID/NETWORK
    

    Ganti kode berikut:

    • TAG_KEY: Kunci tag
    • ORGANIZATION_ID: ID organisasi Anda
    • PROJECT_ID: ID project Anda
    • NETWORK: nama jaringan Anda
  2. Tambahkan nilai Tag yang relevan ke kunci Tag. Jalankan perintah beberapa kali untuk menambahkan beberapa nilai. Pastikan setiap nilai Tag yang ditambahkan ke kunci Tag bersifat unik.

    gcloud resource-manager tags values create TAG_VALUE \
       --parent ORGANIZATION_ID/TAG_KEY
    

    Ganti kode berikut:

    • ORGANIZATION_ID: ID organisasi Anda
    • TAG_KEY: Kunci tag
    • TAG_VALUE: nilai yang akan ditetapkan ke kunci Tag

Membuat kebijakan firewall jaringan

Setelah membuat Tag, Anda dapat menggunakannya di kebijakan firewall jaringan. Jika Anda belum memiliki kebijakan firewall jaringan, buat yang baru.

gcloud

  1. Buat kebijakan firewall jaringan.

    gcloud compute network-firewall-policies create \
       FIREWALL_POLICY_NAME \
       --global
    

    Ganti kode berikut:

    • FIREWALL_POLICY_NAME: nama kebijakan firewall jaringan global jaringan baru

Membuat aturan kebijakan firewall dengan Tag

Setelah membuat kebijakan Tag dan firewall jaringan, Anda dapat membuat aturan kebijakan firewall jaringan dengan nilai tag sumber dan nilai tag target tertentu untuk mengizinkan traffic yang diinginkan antara VM dengan tag sumber dan tag tujuan.

gcloud

  1. Buat aturan kebijakan firewall jaringan dengan kunci serta nilai sumber dan target tertentu.

    gcloud compute network-firewall-policies rules create 1 \
        --firewall-policy FIREWALL_POLICY_NAME \
        --src-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --target-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --direction DIRECTION \
        --action ACTION \
        --layer4-configs tcp:PORT \
        --global-firewall-policy
    

    Ganti kode berikut:

    • FIREWALL_POLICY_NAME: nama kebijakan firewall jaringan global jaringan baru
    • ORGANIZATION_ID: ID organisasi Anda
    • TAG_KEY: Kunci tag
    • TAG_VALUE: nilai yang akan ditetapkan ke kunci Tag
    • DIRECTION: menunjukkan apakah aturannya merupakan aturan INGRESS atau EGRESS
    • ACTION: salah satu tindakan berikut:
      • allow: mengizinkan koneksi yang sesuai dengan aturan
      • deny: menolak koneksi yang cocok dengan aturan
      • goto_next: meneruskan evaluasi koneksi ke level berikutnya dalam hierarki, baik folder maupun jaringan
    • PORT: nomor port untuk mengakses resource

Mengikat Tag ke instance VM

Administrator tag dapat mengikat Tag ke instance VM individual.

Mengikat Tag ke resource melampirkan nilai Tag ke resource. Meskipun Tag dapat memiliki beberapa nilai untuk kunci tertentu, Anda hanya dapat mengikat satu nilai per kunci Tag ke resource. Misalnya, Anda tidak dapat mengikat nilai Tag web-backend dan mysql ke instance VM yang sama karena keduanya termasuk dalam vm-function kunci tag yang sama.

Misalnya, Sasha, seorang developer, ingin menyiapkan aplikasi yang terdiri dari backend API dan penyimpanan database pendukung. Untuk mengizinkan traffic antara backend dan server database, Sasha harus mengikat nilai Tag web-backend dan mysql ke VM yang berbeda.

gcloud

  1. Berikan peran tagUser.

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Ganti kode berikut:

    • ORGANIZATION_ID: ID organisasi Anda
    • TAG_KEY: Kunci tag
    • EMAIL_ADDRESS: alamat email pengguna

    Dalam perintah ini, pengguna diberi izin untuk menggunakan semua nilai kunci saat ini dan yang akan datang. Anda juga dapat memberikan akses secara selektif hanya ke nilai Tag tertentu, sebagai berikut:

    gcloud resource-manager tags values add-iam-policy-binding ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Ganti kode berikut:

    • ORGANIZATION_ID: ID organisasi Anda
    • TAG_KEY: Kunci tag
    • TAG_VALUE: nilai yang akan ditetapkan ke kunci Tag
    • EMAIL_ADDRESS: alamat email pengguna
  2. Berikan peran tagUser pada resource yang Anda inginkan untuk mengikat Tag.

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Ganti kode berikut:

    • PROJECT_ID: Project ID milik Anda
    • EMAIL_ADDRESS: alamat email pengguna
  3. Dapatkan nilai PARENT untuk pasangan nilai kunci Tag:

    1. Tentukan awalan nama lengkap untuk project dan zona Anda:

      FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/
      
    2. Dapatkan ID VM:

      VM_ID=$(gcloud compute instances describe VM_NAME --zone ZONE --format='value(id)')
      
    3. Gabungkan nilai FULL_NAME_PREFIX dan VM_ID:

      PARENT="$FULL_NAME_PREFIX$VM_ID"
      echo $PARENT
      

    Ganti kode berikut:

    • PROJECT_NUMBER: jumlah project Anda
    • ZONE: zona tempat VM berada
    • VM_NAME: nama VM yang sedang Anda kerjakan
  4. Mencantumkan binding.

    gcloud resource-manager tags bindings list \
       --location LOCATION_NAME \
       --parent PARENT
    

    Ganti kode berikut:

    • LOCATION_NAME: lokasi yang memiliki Tag; di sini, zona instance VM
    • PARENT: nama resource lengkap yang melekat pada binding, seperti yang berasal dalam perintah sebelumnya
  5. Hapus dan buat binding.

    gcloud resource-manager tags bindings delete \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    
    gcloud resource-manager tags bindings create \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    

    Ganti kode berikut:

    • LOCATION_NAME: Region atau zona resource yang akan dilepas dari TAG_VALUE. Contohnya, us-central1-a. Kolom ini tidak wajib ada jika resource berupa resource global seperti project dan folder.
    • ORGANIZATION_ID: ID organisasi Anda
    • TAG_KEY: Kunci tag
    • TAG_VALUE: nilai kunci Tag
    • PARENT: nama lengkap resource yang akan dilampirkan ke nilai Tag

Gunakan Tag di seluruh jaringan yang di-peering

Anda dapat menggunakan Tag dalam peering jaringan. Lakukan tugas berikut dalam urutan yang ditentukan untuk menggunakan Tag di dua jaringan yang di-peering.

  1. Tetapkan peran tagAdmin ke dua pengguna: satu pengguna di setiap jaringan peer. Administrator organisasi memberikan peran tagAdmin kepada pengguna di tingkat organisasi, dan pemilik project dapat memberikan peran tersebut di tingkat project.
  2. Izinkan pengguna jaringan pertama membuat kunci dan nilai Tag di jaringan pertama.
  3. Izinkan pengguna jaringan kedua membuat kunci dan nilai Tag di jaringan kedua.
  4. Berikan izin yang diperlukan kepada kedua pengguna untuk mengikat Tag di kedua jaringan.
  5. Ikat Tag ke pengguna dan resource di jaringan pertama.
  6. Ikat Tag ke pengguna dan resource di jaringan kedua.
  7. Kepada pengguna dari jaringan kedua, berikan izin tagUser di jaringan pertama.
  8. Kepada pengguna dari jaringan pertama, berikan izin tagUser di jaringan kedua.
  9. Buat aturan kebijakan firewall di jaringan pertama.
  10. Buat aturan kebijakan firewall di jaringan kedua.

Langkah berikutnya