ID region
REGION_ID
adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r
disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.
Pelajari ID region lebih lanjut.
Keamanan adalah fitur inti Google Cloud. Namun, terdapat beberapa langkah yang harus Anda lakukan untuk melindungi aplikasi App Engine dan mengidentifikasi kerentanan.
Gunakan fitur berikut untuk memastikan bahwa aplikasi App Engine Anda aman. Untuk mempelajari lebih lanjut Model Keamanan Google dan langkah-langkah tersedia yang dapat Anda ambil untuk mengamankan project Google Cloud, baca Keamanan Google Cloud Platform.
Permintaan HTTPS
Gunakan permintaan HTTPS untuk mengakses aplikasi App Engine Anda dengan aman. Tergantung pada cara aplikasi dikonfigurasi, Anda memiliki opsi berikut:
- Domain
appspot.com
- Gunakan awalan URL
https
untuk mengirim permintaan HTTPS ke layanandefault
project Google Cloud Anda, misalnya:
https://PROJECT_ID.REGION_ID.r.appspot.com
Untuk menargetkan resource tertentu di aplikasi App Engine Anda, gunakan sintaksis
-dot-
untuk memisahkan setiap resource yang ingin ditargetkan, misalnya:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Untuk mengonversi URL HTTP menjadi URL HTTPS, ganti titik di antara setiap resource dengan
-dot-
, misalnya:
http://SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com
https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com
Untuk informasi selengkapnya tentang URL HTTPS dan resource penargetan, baca Cara Permintaan Dirutekan.
- Gunakan awalan URL
- Domain kustom
Untuk mengirim permintaan HTTPS dengan domain kustom, Anda dapat menggunakan sertifikat SSL terkelola yang disediakan oleh App Engine. Untuk informasi selengkapnya, lihat Mengamankan Domain Kustom dengan SSL.
- Pengendali aplikasi
Untuk memaksa HTTPS bagi pengendali aplikasi, Anda dapat menentukan elemen
secure: always
untuk setiap pengendali diapp.yaml
, misalnya:handlers: - url: /.* script: auto secure: always redirect_http_response_code: 301
Penggunaan
secure: always
akan mengalihkan semua traffic HTTP ke URL HTTPS dengan jalur yang sama. Lihat referensi konfigurasiapp.yaml
untuk mengetahui informasi selengkapnya.
Kontrol akses
Di setiap project Google Cloud, siapkan kontrol akses untuk menentukan akun yang dapat mengakses layanan dalam project tersebut, termasuk App Engine Anda dapat menetapkan peran yang berbeda ke akun yang berbeda untuk memastikan setiap akun hanya memiliki izin yang diperlukan guna mendukung aplikasi Anda. Untuk mengetahui detailnya, baca Menyiapkan Kontrol Akses.
Firewall App Engine
Firewall App Engine memungkinkan Anda mengontrol akses ke aplikasi App Engine melalui sekumpulan aturan yang dapat mengizinkan atau menolak permintaan dari rentang alamat IP yang ditentukan. Anda tidak dikenai biaya untuk traffic atau bandwidth yang diblokir oleh firewall. Buat firewall untuk:
- Hanya mengizinkan traffic dari dalam jaringan tertentu
- Pastikan hanya rentang alamat IP tertentu dari jaringan tertentu yang dapat mengakses aplikasi Anda. Misalnya, buat aturan untuk hanya mengizinkan rentang alamat IP dari dalam jaringan pribadi perusahaan Anda selama fase pengujian aplikasi. Kemudian, Anda dapat membuat dan mengubah aturan firewall untuk mengontrol cakupan akses selama proses rilis, sehingga hanya organisasi tertentu yang dapat mengakses aplikasi Anda, baik di dalam maupun di luar perusahaan, saat proses rilis untuk ketersediaan publik.
- Hanya mengizinkan traffic dari layanan tertentu
- Pastikan semua traffic ke aplikasi App Engine Anda di-proxy terlebih dahulu melalui layanan tertentu. Misalnya, jika menggunakan Firewall Aplikasi Web (WAF) pihak ketiga untuk mem-proxy permintaan yang ditujukan ke aplikasi, Anda dapat membuat aturan firewall untuk menolak semua permintaan kecuali yang diteruskan dari WAF Anda.
- Memblokir alamat IP yang melanggar
- Meskipun Google Cloud menerapkan banyak mekanisme untuk mencegah serangan, Anda dapat menggunakan firewall App Engine untuk memblokir traffic ke aplikasi dari alamat IP yang menunjukkan niat jahat atau melindungi aplikasi dari serangan denial-of-service dan bentuk pelanggaran serupa. Anda dapat menambahkan alamat IP atau subnetwork ke daftar tolak, sehingga permintaan yang dirutekan dari alamat dan subnetwork tersebut ditolak sebelum mencapai aplikasi App Engine Anda.
Untuk detail tentang cara membuat aturan dan mengonfigurasi firewall, baca Mengontrol Akses Aplikasi dengan Firewall.
Kontrol traffic masuk
Bagian ini menjelaskan cara menggunakan setelan traffic masuk untuk membatasi akses jaringan ke
aplikasi App Engine Anda. Pada tingkat jaringan, secara default, resource apa pun di
internet dapat menjangkau aplikasi App Engine Anda di
URL appspot
atau didomain kustom
yang telah disiapkan di App Engine. Misalnya, URL appspot.com
dapat memiliki
format berikut:
SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com
.
Anda dapat mengubah setelan default ini dengan menentukan
setelan yang berbeda untuk traffic masuk. Semua jalur traffic masuk, termasuk URL appspot.com
default, tunduk pada setelan traffic masuk Anda. Traffic masuk ditetapkan di
tingkat layanan.
Setelan traffic masuk yang tersedia
Berikut adalah setelan yang tersedia:
Setelan | Deskripsi |
---|---|
Internal |
Batasan maksimum. Mengizinkan permintaan dari resource yang terpasang
ke jaringan VPC project, seperti:
appspot.com .
Permintaan dari sumber lain, termasuk internet, tidak dapat menjangkau
layanan Anda di URL appspot.com atau domain kustom. Tidak
ada dukungan untuk multi-tenancy, yaitu, beberapa domain kepercayaan
dalam project yang sama.
|
Cloud Load Balancing dan Internal | Mengizinkan permintaan dari resource berikut:
appspot.com mengabaikan Load Balancer Aplikasi eksternal, sehingga
setelan ini mencegah permintaan eksternal mencapai
URL appspot.com .
|
Semua |
Batasan minimum. Mengizinkan semua permintaan, termasuk permintaan langsung dari
internet ke URL appspot.com .
|
Mengakses layanan internal
Pertimbangan berikut berlaku:
Untuk permintaan dari VPC Bersama, traffic hanya dianggap internal jika aplikasi App Engine di-deploy di project host VPC Bersama. Jika aplikasi App Engine di-deploy di project layanan VPC Bersama, hanya traffic dari jaringan yang dimiliki oleh project aplikasi itu sendiri yang bersifat internal. Semua traffic lainnya, termasuk traffic dari VPC Bersama lainnya, bersifat eksternal.
Saat mengakses layanan internal, panggil layanan seperti yang biasa Anda lakukan menggunakan URL publiknya, baik URL
appspot.com
default maupun domain kustom yang disiapkan di App Engine.Untuk permintaan dari instance VM Compute Engine atau resource lain yang berjalan di dalam jaringan VPC pada project yang sama, tidak diperlukan penyiapan lebih lanjut.
Untuk permintaan dari layanan App Engine lain atau dari Cloud Run atau Cloud Functions dalam project yang sama, hubungkan layanan atau fungsi ke jaringan VPC dan rutekan semua traffic keluar melalui konektor, seperti yang dijelaskan dalam Menghubungkan ke jaringan VPC Bersama.
Permintaan dari resource dalam jaringan VPC pada project yang sama diklasifikasikan sebagai internal meskipun resource asalnya memiliki alamat IP publik.
Permintaan dari resource lokal yang terhubung ke jaringan VPC melalui Cloud VPN dianggap sebagai
internal
.
Melihat setelan traffic masuk
Konsol
Buka halaman Layanan App Engine.
Cari kolom Traffic Masuk. Untuk setiap layanan, nilai dalam kolom ini menunjukkan setelan traffic masuk sebagai salah satu dari Semua (default), Internal + Load Balancing, atau Internal.
gcloud
Untuk melihat setelan traffic masuk layanan menggunakan gcloud CLI:
gcloud app services describe SERVICE
Ganti SERVICE dengan nama layanan Anda.
Misalnya, untuk melihat setelan traffic masuk dan informasi lainnya terkait menjalankan layanan default:
gcloud app services describe default
Mengedit setelan traffic masuk
Konsol
Buka halaman Layanan App Engine.
Pilih layanan yang ingin Anda edit.
Klik Edit setelan traffic masuk.
Pilih setelan traffic masuk yang Anda inginkan dari menu, lalu klik Simpan.
gcloud
Untuk mengupdate setelan traffic masuk layanan menggunakan gcloud CLI:
gcloud app services update SERVICE --ingress=INGRESS
Ganti:
- SERVICE: Nama layanan Anda.
- INGRESS: Kontrol traffic masuk yang ingin Anda terapkan. Salah satu dari
all
,internal-only
, atauinternal-and-cloud-load-balancing
.
Contoh:
Untuk mengupdate layanan default aplikasi App Engine agar hanya menerima traffic dari Cloud Load Balancing dan jaringan VPC yang ada dalam project yang sama:
gcloud app services update default --ingress=internal-and-cloud-load-balancing
Untuk memperbarui layanan bernama "internal-requests" agar hanya menerima traffic dari jaringan VPC yang ada dalam project yang sama:
gcloud app services update internal-requests --ingress=internal-only
Setelan traffic keluar
Jika menggunakan Akses VPC Serverless, Anda dapat menentukan setelan traffic keluar untuk layanan App Engine Anda.
Secara default, hanya permintaan ke alamat IP internal dan nama DNS internal yang
dirutekan melalui konektor Akses VPC Serverless. Anda dapat
menentukan setelan traffic keluar untuk layanan Anda di file app.yaml
.
Setelan traffic keluar tidak kompatibel dengan layanan URL-fetch. Jika Anda belum
melakukannya, nonaktifkan setelan default URL-fetch
menggunakan soket dan menghentikan penggunaan
eksplisit dari paket
urlfetch
.
Menggunakan library urlfetch
akan mengabaikan setelan traffic keluar, dan permintaan tidak akan
dirutekan melalui konektor Akses VPC Serverless.
Untuk mengonfigurasi perilaku traffic keluar layanan App Engine Anda:
Tambahkan atribut
egress_setting
ke kolomvpc_access_connector
dari fileapp.yaml
layanan Anda:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
Ganti:
PROJECT_ID
dengan project ID Google Cloud AndaREGION
dengan region tempat konektor Anda beradaCONNECTOR_NAME
dengan nama konektor AndaEGRESS_SETTING
dengan salah satu dari berikut ini:private-ranges-only
Default. Hanya permintaan ke rentang alamat IP RFC 1918 dan RFC 6598 atau nama DNS internal yang dirutekan ke jaringan VPC Anda. Semua permintaan lainnya dirutekan langsung ke internet.all-traffic
Semua permintaan keluar dari layanan dirutekan ke jaringan VPC Anda. Selanjutnya, permintaan akan mengikuti aturan firewall, DNS, dan perutean yang berlaku untuk jaringan VPC Anda. Perlu diperhatikan bahwa merutekan semua permintaan keluar ke jaringan VPC akan meningkatkan jumlah traffic keluar yang ditangani oleh konektor Akses VPC Serverless dan dapat dikenai biaya.
Men-deploy layanan:
gcloud app deploy
Pemindai keamanan
Web Security Scanner Google Cloud menemukan kerentanan dengan meng-crawl aplikasi App Engine Anda, mengikuti semua link tersebut dalam cakupan URL awal, dan mencoba menguji input pengguna dan pengendali peristiwa sebanyak mungkin.
Untuk menggunakan pemindai keamanan, Anda harus menjadi pemilik project Google Cloud. Untuk informasi selengkapnya tentang cara menetapkan peran, baca Menyiapkan Kontrol Akses.
Anda dapat menjalankan pemindaian keamanan dari konsol Google Cloud untuk mengidentifikasi kerentanan keamanan di aplikasi App Engine. Untuk mengetahui detail selengkapnya tentang cara menjalankan Security Scanner, baca Menggunakan Web Security Scanner.