Membuat aturan firewall App Engine

Di App Engine, Anda dapat membuat firewall dengan hingga 1.000 aturan individual yang diprioritaskan yang mengizinkan atau membatasi rentang alamat IP dan subnet. Aplikasi Anda hanya akan merespons permintaan yang diizinkan oleh firewall.

Untuk mempelajari cara kerja firewall App Engine, lihat Memahami firewall.

Sebelum memulai

Sebelum dapat membuat aturan firewall App Engine untuk aplikasi, Anda harus memiliki salah satu peran IAM App Engine berikut, yang menyertakan hak istimewa yang diperlukan untuk membuat atau mengubah firewall aturan:

  • App Engine Admin
  • Editor
  • Pemilik

Membuat aturan firewall

Gunakan salah satu metode berikut untuk membuat aturan firewall. Ulangi langkah-langkah ini untuk setiap aturan tambahan:

Konsol

Gunakan halaman aturan firewall di konsol Google Cloud untuk membuat aturan firewall:

  1. Buka halaman Buat aturan firewall di konsol Google Cloud:

    Buka halaman Buat aturan firewall

  2. Tentukan detail aturan firewall:

    1. Di Priority, masukkan bilangan bulat untuk menentukan tingkat kepentingan relatif aturan dan menentukan urutan kapan aturan dievaluasi.

      Nilai yang valid adalah 1 hingga 2147483646. Prioritas 1 adalah aturan pertama yang dievaluasi. Prioritas 2147483647 adalah aturan terakhir yang dievaluasi dan dicadangkan untuk aturan `default`.

    2. Di bagian Tindakan saat kecocokan, tentukan apakah akan mengizinkan atau menolak akses untuk permintaan yang cocok dengan aturan. Aturan yang ditetapkan pada allow akan meneruskan permintaan ke aplikasi. Aturan yang ditetapkan pada deny akan merespons permintaan dengan error 403 Forbidden.
    3. Di Rentang IP, tentukan rentang alamat IP yang berlaku untuk aturan. Rentang alamat IP harus ditentukan dalam notasi CIDR, dapat mencakup subnet mask, serta mendukung IPv4 dan IPv6.
    4. Opsional: Di bagian Description, sertakan deskripsi aturan yang tidak lebih dari 100 karakter.
  3. Klik Simpan untuk membuat aturan.
  4. Uji aturan untuk memastikan bahwa prioritas dan tindakan menghasilkan perilaku yang diharapkan:
    1. Klik Uji Alamat IP.
    2. Masukkan alamat IP yang ingin Anda validasi, lalu klik Uji untuk memastikan bahwa aturan yang sesuai dievaluasi dengan benar.
gcloud

Jalankan perintah gcloud app firewall-rules berikut untuk membuat aturan firewall:

  1. Jalankan perintah berikut untuk membuat aturan firewall:

    gcloud app firewall-rules create PRIORITY --action ALLOW_OR_DENY --source-range IP_RANGE --description DESCRIPTION
    dalam hal ini:
    • PRIORITY adalah bilangan bulat antara 1 hingga 2147483646 yang menentukan tingkat kepentingan aturan dan urutan evaluasi aturan. Prioritas 1 adalah aturan pertama yang dievaluasi. Prioritas 2147483647 adalah aturan terakhir yang dievaluasi dan direservasi untuk aturan `default`.
    • ALLOW_OR_DENY menentukan apakah akan mengizinkan atau menolak akses untuk permintaan yang cocok dengan aturan. Nilai yang valid adalah allow atau deny. Aturan yang ditetapkan ke allow meneruskan permintaan ke aplikasi. Aturan yang ditetapkan ke deny merespons permintaan yang berisi error 403 Forbidden.
    • IP_RANGE menentukan rentang alamat IP yang berlaku untuk aturan. Rentang IP harus ditentukan dalam notasi CIDR, dapat mencakup subnet mask, dan mendukung IPv4 dan IPv6.
    • DESCRIPTION adalah deskripsi opsional dari aturan yang tidak lebih dari 100 karakter.
  2. Jalankan perintah berikut untuk menguji aturan Anda dan pastikan bahwa prioritas dan tindakan menghasilkan perilaku yang diharapkan:
    gcloud app firewall-rules test-ip IP_ADDRESS
    yang mana IP_ADDRESS adalah alamat IP yang ingin Anda uji terhadap firewall.
  3. Jalankan perintah berikut untuk melihat daftar aturan yang ada:
    gcloud app firewall-rules list
  4. Jalankan perintah berikut untuk menghapus aturan yang ada:
    gcloud app firewall-rules delete PRIORITY
    yang mana PRIORITY adalah nilai prioritas dari aturan yang ingin Anda hapus.
Contoh:
Gunakan contoh berikut untuk membantu Anda membuat firewall:
  • Tambahkan aturan yang mengizinkan alamat IPv6 dan subnet mask, lalu uji aturan untuk memastikan aturan tersebut dievaluasi sebelum aturan lainnya:

    gcloud app firewall-rules create 123 --source-range fe80::3636:3bff:fecc:8778/128 --action allow
    gcloud app firewall-rules test-ip fe80::3636:3bff:fecc:8778
  • Tambahkan aturan untuk menolak alamat IPv4 dan subnet mask, lalu uji aturan untuk memastikan bahwa aturan tersebut dievaluasi dengan tepat:

    gcloud app firewall-rules create 123456 --source-range "74.125.0.0/16" --action deny
    gcloud app firewall-rules test-ip 74.125.0.8
  • Perbarui lalu uji aturan default untuk memastikan bahwa aturan tersebut membatasi semua alamat IP yang tidak cocok dengan aturan lainnya:

    gcloud app firewall-rules update default --action deny
    gcloud app firewall-rules test-ip 123.456.7.89
API

Guna membuat aturan firewall secara terprogram untuk aplikasi App Engine, Anda dapat menggunakan metode apps.firewall.ingressRules di Admin API.

Untuk menguji aturan firewall serta memastikan bahwa prioritas dan tindakannya menghasilkan perilaku yang diharapkan, Anda dapat menggunakan metode apps.firewall.ingressRules.list dan menentukan alamat IP yang ingin Anda uji dalam parameter matchingAddress.

Memahami aturan firewall App Engine

Firewall App Engine terdiri dari daftar aturan yang diurutkan yang dapat mengizinkan atau menolak akses dari alamat atau rentang IP yang ditentukan ke aplikasi Anda. Aturan ini berlaku untuk semua resource aplikasi App Engine.

Prioritas aturan firewall

Aturan firewall diurutkan berdasarkan tingkat kepentingan, yang Anda tentukan sebagai nilai numerik dalam prioritas setiap aturan. Anda harus menetapkan nilai prioritas unik untuk setiap aturan karena nilai tersebut menentukan tingkat kepentingan yang relatif terhadap aturan lain di firewall. Nilai untuk skala prioritas aturan dari nilai 1 yang paling penting hingga yang paling tidak penting pada nilai 2147483647.

Setiap firewall menyertakan aturan default yang dibuat secara otomatis dengan prioritas 2147483647 dan berlaku untuk seluruh rentang IP aplikasi Anda. Aturan default selalu dievaluasi setelah semua aturan lainnya di firewall dan diterapkan ke semua permintaan di seluruh alamat IP.

Firewall mengevaluasi aturan dengan prioritas tertinggi terlebih dahulu. Semua aturan yang tersisa di firewall akan dievaluasi secara berurutan hingga aturan cocok dengan rentang IP permintaan tersebut. Jika aturan yang cocok ditemukan, koneksi akan diizinkan atau ditolak, dan semua aturan lainnya dalam firewall akan dilewati. Jika aturan yang ditentukan secara manual di firewall tidak ada yang cocok dengan permintaan, aturan default akan dievaluasi.

Misalnya, jika Anda membuat aturan dengan prioritas 1, aturan tersebut selalu dievaluasi terlebih dahulu. Jika permintaan masuk cocok dengan aturan prioritas 1, hanya aturan tersebut yang akan dievaluasi, dan semua aturan lainnya di firewall akan dilewati, termasuk aturan default.

Contoh firewall di bawah ini menunjukkan bagaimana prioritas aturan dapat mengubah perilaku firewall Anda.

Contoh firewall

Dalam contoh ini, sebuah perusahaan telah menyiapkan firewall untuk memberikan akses bagi tim engineer dan jaringan perusahaan internal ke aplikasi yang sedang dikembangkan. Aturan firewall telah dibuat dengan kesenjangan besar di antara setiap prioritas untuk memungkinkan pertumbuhan.

Prioritas Tindakan Rentang IP Deskripsi
1000 Tolak 192.0.2.1 Menolak akses ke penyerang DoS.
2000 Izinkan 198.51.100.2 Mengizinkan akses ke engineer di kantor satelit.
3.000 Tolak 198.51.100.0/24 Menolak akses ke semua gedung non-teknik.
5000 Izinkan 203.0.113.0/24 Mengizinkan akses ke jaringan gedung utama.
2147483647 Tolak * Tindakan Default

Setelah firewall dibuat, asumsikan bahwa permintaan berikut diarahkan ke aplikasi contoh dan perhatikan respons aplikasi:

  • Permintaan dari 198.51.100.2 cocok dengan aturan yang memiliki prioritas 2000 dan diizinkan.
  • Permintaan dari 198.51.100.100 cocok dengan aturan yang memiliki prioritas 3000 dan ditolak.
  • Permintaan dari 203.0.113.54 cocok dengan aturan yang memiliki prioritas 5000 dan diizinkan.
  • Permintaan dari 45.123.35.242 cocok dengan aturan default dan ditolak.

Menyelesaikan aturan yang bertentangan

Misalnya, asumsikan bahwa dua prioritas di firewall perusahaan ditukar. Jika aturan prioritas 2000 dan 3000 ditukar, perhatikan perilaku yang tidak diinginkan.

Prioritas Tindakan Rentang IP Deskripsi
1000 Tolak 192.0.2.1 Menolak akses ke penyerang DoS.
2000 Tolak 198.51.100.0/24 Menolak akses ke semua gedung non-teknik.
3000 Izinkan 198.51.100.2 Mengizinkan akses ke engineer di kantor satelit.
5.000 Izinkan 203.0.113.0/24 Mengizinkan akses ke jaringan gedung utama.
2147483647 Tolak * Tindakan Default

Engineer di kantor satelit tidak akan dapat mengakses aplikasi perusahaan, karena prioritas baru aturan ini berarti aturan tidak akan pernah dievaluasi. Alamat IP engineer 198.51.100.2 cocok dengan aturan yang menolak semua non-engineer dalam rentang 198.51.100.0/24 sebelum aturan yang mengizinkan akses ke alamat IP engineer.

Untuk memperbaikinya, Anda harus menetapkan prioritas yang lebih tinggi untuk aturan yang mengizinkan akses ke 198.51.100.2 dibandingkan aturan yang menolak akses untuk rentang IP 198.51.100.0/24.

Langkah selanjutnya

Untuk memastikan Anda telah mengonfigurasi aplikasi dengan aman dan menetapkan tingkat akses yang sesuai, tinjau Keamanan Aplikasi serta Kontrol Akses.