Menggunakan Tag untuk firewall

Buat Tag sebelum mencoba mengikatnya ke resource atau menggunakannya dalam 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 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 kustom dengan izin yang relevan, lalu memberikan peran baru kepada pengguna target. Untuk mengetahui 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 dalam fitur jaringan, Anda dapat menggunakan Tag untuk tindakan lainnya.

Tag yang digunakan dalam kebijakan firewall jaringan harus memiliki cakupan yang dibatasi ke satu VPC.

Membuat 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 aturan kebijakan firewall dengan Tag

Setelah membuat Tag, Anda dapat menggunakannya di kebijakan 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 dan nilai sumber serta 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 untuk jaringan baru
    • ORGANIZATION_ID: ID organisasi Anda
    • TAG_KEY: Kunci Tag
    • TAG_VALUE: nilai yang akan ditetapkan ke kunci Tag
    • DIRECTION: menunjukkan apakah aturan adalah aturan ingress atau egress
    • ACTION: salah satu tindakan berikut:
      • allow: mengizinkan koneksi yang cocok 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 setiap instance VM.

Mengikat Tag ke resource akan 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 web-backend dan Tag mysql ke instance VM yang sama, karena keduanya termasuk dalam tag-key vm-function 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 perlu mengikat nilai web-backend dan Tag 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 penggunaan semua nilai kunci saat ini dan mendatang. Anda juga dapat memberikan akses secara selektif hanya ke nilai tertentu dari suatu Tag, seperti 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 ingin Anda ikat Tagnya.

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

    Ganti kode berikut:

    • PROJECT_NAME: nama project Anda
    • EMAIL_ADDRESS: alamat email pengguna
  3. Dapatkan nilai PARENT untuk pasangan nilai kunci Tag:

    1. Dapatkan 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 --format='value(id)')
      
    3. Gabungkan nilai FULL_NAME_PREFIX dan VM_ID:

      PARENT="$FULL_NAME_PREFIX$VM_ID"
      

    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 tempat Tag berada
    • PARENT: nama resource lengkap yang dilampirkan ke binding
  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: lokasi tempat Tag berada
    • ORGANIZATION_ID: ID organisasi Anda
    • TAG_KEY: Kunci Tag
    • TAG_VALUE: nilai Kunci tag
    • PARENT: Nama resource lengkap resource untuk dilampirkan ke nilai Tag

Menggunakan 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 kepada dua pengguna: satu pengguna di setiap jaringan peer. Administrator organisasi memberikan peran tagAdmin kepada pengguna di tingkat organisasi, dan pemilik project dapat memberikannya di level 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. Mengikat Tag ke pengguna dan resource di jaringan pertama.
  6. Ikat Tag ke pengguna dan resource di jaringan kedua.
  7. Untuk pengguna dari jaringan kedua, berikan izin tagUser di jaringan pertama.
  8. Untuk 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 selanjutnya