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:
Gunakan halaman aturan firewall di konsol Google Cloud untuk membuat aturan firewall:
-
Buka halaman Buat aturan firewall di konsol Google Cloud:
-
Tentukan detail aturan firewall:
-
Di Priority, masukkan bilangan bulat untuk menentukan
tingkat kepentingan relatif aturan dan menentukan urutan kapan aturan
dievaluasi.
Nilai yang valid adalah
1
hingga2147483646
. Prioritas1
adalah aturan pertama yang dievaluasi. Prioritas2147483647
adalah aturan terakhir yang dievaluasi dan dicadangkan untuk aturan `default`. -
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 padadeny
akan merespons permintaan dengan error403 Forbidden
. - 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.
- Opsional: Di bagian Description, sertakan deskripsi aturan yang tidak lebih dari 100 karakter.
-
Di Priority, masukkan bilangan bulat untuk menentukan
tingkat kepentingan relatif aturan dan menentukan urutan kapan aturan
dievaluasi.
- Klik Simpan untuk membuat aturan.
-
Uji aturan untuk memastikan bahwa prioritas dan tindakan menghasilkan
perilaku yang diharapkan:
- Klik Uji Alamat IP.
- Masukkan alamat IP yang ingin Anda validasi, lalu klik Uji untuk memastikan bahwa aturan yang sesuai dievaluasi dengan benar.
Jalankan perintah gcloud
app firewall-rules
berikut untuk membuat aturan firewall:
-
Jalankan perintah berikut untuk membuat aturan firewall:
dengan:gcloud app firewall-rules create PRIORITY --action ALLOW_OR_DENY --source-range IP_RANGE --description DESCRIPTION
-
PRIORITY adalah bilangan bulat antara
1
hingga2147483646
yang menentukan tingkat kepentingan aturan dan urutan evaluasi aturan. Prioritas1
adalah aturan pertama yang dievaluasi. Prioritas2147483647
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
ataudeny
. Aturan yang ditetapkan keallow
meneruskan permintaan ke aplikasi. Aturan yang ditetapkan kedeny
merespons permintaan yang berisi error403 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.
-
PRIORITY adalah bilangan bulat antara
-
Jalankan perintah berikut untuk menguji aturan Anda dan pastikan bahwa
prioritas dan tindakan menghasilkan perilaku yang diharapkan:
dengan IP_ADDRESS adalah alamat IP yang ingin Anda uji terhadap firewall.gcloud app firewall-rules test-ip IP_ADDRESS
-
Jalankan perintah berikut untuk melihat daftar aturan yang ada:
gcloud app firewall-rules list
-
Jalankan perintah berikut untuk menghapus aturan yang ada:
dengan PRIORITY adalah nilai prioritas aturan yang ingin Anda hapus.gcloud app firewall-rules delete PRIORITY
- 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
-
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. |
5000 | 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.