Konten ini terakhir diperbarui pada Maret 2023, dan menampilkan status quo pada saat konten tersebut ditulis. Kebijakan dan sistem keamanan Google Cloud Platform dapat berubah di masa mendatang, seiring upaya kami untuk terus meningkatkan (kualitas) perlindungan bagi pelanggan.
Arsitektur serverless memungkinkan Anda mengembangkan software dan layanan tanpa menyediakan atau memelihara server. Anda dapat menggunakan arsitektur serverless untuk mem-build aplikasi untuk berbagai layanan.
Dokumen ini memberikan panduan opini bagi engineer DevOps, arsitek keamanan, dan developer aplikasi tentang cara membantu melindungi aplikasi serverless yang menggunakan Cloud Run. Dokumen tersebut merupakan bagian dari blueprint keamanan yang terdiri dari hal-hal berikut:
- Sebuah Repositori GitHub yang berisi kumpulan konfigurasi dan skrip Terraform.
- Panduan untuk arsitektur, desain, dan kontrol keamanan yang Anda terapkan dengan blueprint (dokumen ini).
Meskipun Anda dapat men-deploy blueprint ini tanpa men-deploy blueprint Enterprise Foundation Google Cloud terlebih dahulu, dokumen ini mengasumsikan bahwa Anda telah mengonfigurasi serangkaian kontrol keamanan dasar seperti yang dijelaskan dalam blueprint Enterprise Foundation Google Cloud. Arsitektur yang dijelaskan dalam dokumen ini membantu Anda melapisi kontrol tambahan ke fondasi Anda untuk membantu melindungi aplikasi serverless Anda.
Untuk membantu menentukan kontrol keamanan utama yang terkait dengan aplikasi serverless, Cloud Security Alliance (CSA) memublikasikan 12 Risiko Penting Teratas untuk Aplikasi Serverless. Kontrol keamanan yang digunakan dalam blueprint ini didesain untuk mengatasi risiko yang relevan dengan berbagai kasus penggunaan yang dijelaskan dalam dokumen ini.
Kasus penggunaan serverless
Blueprint ini mendukung kasus penggunaan berikut:
- Men-deploy arsitektur serverless menggunakan Cloud Run (dokumen ini)
- Men-deploy arsitektur serverless menggunakan Cloud Functions
Perbedaan antara Cloud Functions dan Cloud Run meliputi hal berikut:
- Cloud Functions dipicu oleh peristiwa, seperti perubahan pada data dalam database atau penerimaan pesan dari sistem pesan seperti Pub/Sub. Cloud Run dipicu oleh permintaan, seperti permintaan HTTP.
- Cloud Functions dibatasi pada serangkaian runtime yang didukung. Anda dapat menggunakan Cloud Run dengan bahasa pemrograman apa pun.
- Cloud Functions mengelola container dan infrastruktur yang mengontrol server web atau runtime bahasa, sehingga Anda dapat berfokus pada kode. Cloud Run memberi Anda fleksibilitas untuk menjalankan layanan ini sendiri, sehingga Anda dapat mengontrol konfigurasi container.
Untuk informasi selengkapnya tentang perbedaan antara Cloud Run dan Cloud Functions, lihat Memilih opsi komputasi Google Cloud.
Arsitektur
Blueprint ini memungkinkan Anda menjalankan aplikasi serverless di Cloud Run dengan VPC Bersama. Sebaiknya gunakan VPC Bersama karena kebijakan ini memusatkan kebijakan dan kontrol jaringan untuk semua resource jaringan. Selain itu, VPC Bersama di-deploy dalam blueprint dasar-dasar perusahaan.
Arsitektur yang direkomendasikan: Cloud Run dengan jaringan VPC Bersama
Gambar berikut menunjukkan cara menjalankan aplikasi serverless dalam jaringan VPC Bersama.
Arsitektur yang ditampilkan dalam diagram sebelumnya menggunakan kombinasi layanan dan fitur Google Cloud berikut:
- Load Balancer Aplikasi eksternal menerima data yang diperlukan aplikasi serverless dari internet dan meneruskannya ke Cloud Run. Load Balancer Aplikasi eksternal adalah load balancer Lapisan 7.
- Google Cloud Armor bertindak sebagai firewall aplikasi web untuk membantu melindungi aplikasi serverless Anda dari denial of service (DoS) dan serangan web.
- Cloud Run memungkinkan Anda menjalankan kode aplikasi dalam container dan mengelola infrastruktur untuk Anda. Pada blueprint ini, setelan internal dan ingress CLoud Load Balancing akan membatasi akses ke Cloud Run, sehingga Cloud Run hanya akan menerima permintaan dari Load Balancer Aplikasi eksternal.
Konektor Akses VPC Serverless menghubungkan aplikasi serverless Anda ke jaringan VPC menggunakan Akses VPC Serverless. Akses VPC Serverless membantu memastikan permintaan dari aplikasi serverless Anda ke jaringan VPC tidak terekspos ke internet. Akses VPC Serverless memungkinkan Cloud Run berkomunikasi dengan layanan, sistem penyimpanan, dan resource lain yang mendukung Kontrol Layanan VPC.
Secara default, Anda membuat konektor Akses VPC Serverless dalam project layanan. Anda dapat membuat konektor Akses VPC Serverless di project host dengan menentukan
true
untuk variabel inputconnector_on_host_project
saat menjalankan Jaringan Cloud Run yang Aman modul. Untuk informasi selengkapnya, lihat Perbandingan metode konfigurasi.Aturan firewall Virtual Private Cloud (VPC) mengontrol aliran data ke dalam subnet yang menghosting resource Anda, seperti server perusahaan yang dihosting di Compute Engine, atau data perusahaan yang disimpan di Cloud Storage.
Kontrol Layanan VPC menciptakan batas keamanan yang mengisolasi layanan dan resource Cloud Run dengan menyiapkan otorisasi, kontrol akses, dan pertukaran data yang aman. Perimeter ini dirancang untuk melindungi konten yang masuk, mengisolasi aplikasi Anda dengan menyiapkan kontrol dan pemantauan akses tambahan, serta memisahkan tata kelola Google Cloud Anda dari aplikasi. Tata kelola Anda mencakup pengelolaan kunci dan logging
VPC Bersama memungkinkan Anda menghubungkan konektor Akses VPC Serverless di project layanan Anda ke project host.
Cloud Key Management Service (Cloud KMS) menyimpan kunci enkripsi yang dikelola pelanggan (CMEK) yang digunakan oleh layanan dalam cetak biru ini, termasuk aplikasi serverless Anda, Artifact Registry, and Cloud Run.
Identity and Access Management (IAM) dan Resource Manager membantu membatasi akses dan mengisolasi resource. Kontrol akses dan hierarki resource mengikuti prinsip hak istimewa terendah.
Arsitektur alternatif: Cloud Run tanpa jaringan VPC Bersama
Jika tidak menggunakan jaringan VPC Bersama, Anda dapat men-deploy Cloud Run dan aplikasi serverless Anda di perimeter Kontrol Layanan VPC tanpa jaringan VPC Bersama. Anda dapat menerapkan arsitektur alternatif ini jika menggunakan topologi hub-and-spoke.
Gambar berikut menunjukkan cara menjalankan aplikasi serverless tanpa VPC Bersama.
Arsitektur yang ditunjukkan pada diagram sebelumnya menggunakan kombinasi layanan dan fitur Google Cloud yang mirip dengan yang dijelaskan di bagian sebelumnya, Arsitektur yang direkomendasikan: Cloud Run dengan VPC bersama.
Struktur organisasi
Anda mengelompokkan resource agar dapat mengelolanya serta memisahkan lingkungan pengembangan dan pengujian dari lingkungan produksi. Resource Manager memungkinkan Anda untuk dapat mengelompokkan resource secara logis berdasarkan project, folder, dan organisasi.
Diagram berikut menunjukkan hierarki resource dengan folder yang mewakili
lingkungan yang berbeda, seperti bootstrap, umum, produksi, non-produksi (atau
pengujian), dan pengembangan. Hierarki resource ini didasarkan pada hierarki
yang dijelaskan dalam
blueprint dasar-dasar perusahaan.
Anda men-deploy project yang ditentukan oleh blueprint ke dalam folder berikut:
Common
, Production
, Non-production
, dan Dev
.
Bagian berikut menjelaskan diagram ini secara lebih mendetail.
Folder
Anda menggunakan folder untuk mengisolasi lingkungan produksi dan layanan tata kelola dari lingkungan non-produksi dan pengujian Anda. Tabel berikut menjelaskan folder dari blueprint Enterprise Foundation yang digunakan oleh blueprint ini.
Folder | Deskripsi |
---|---|
Bootstrap
|
Berisi resource yang diperlukan untuk men-deploy blueprint fondasi perusahaan. |
Common
|
Berisi layanan terpusat untuk organisasi, seperti project keamanan. |
Production
|
Berisi project yang memiliki resource cloud yang telah diuji dan
siap digunakan oleh pelanggan. Dalam blueprint ini,
folder Production berisi project layanan dan project
host. |
Non-production
|
Berisi project yang memiliki resource cloud yang saat ini sedang
diuji dan direncanakan untuk dirilis. Dalam blueprint ini,
folder Non-production berisi project layanan dan project
host. |
Dev
|
Berisi project yang memiliki resource cloud yang saat ini sedang
dikembangkan. Dalam blueprint ini, folder Dev berisi
project layanan dan project host. |
Anda dapat mengubah nama folder ini agar selaras dengan struktur folder organisasi, tetapi sebaiknya Anda mempertahankan struktur yang serupa. Untuk informasi selengkapnya, lihat Struktur organisasi. Untuk struktur folder lainnya, lihat Menentukan hierarki resource untuk zona landing Google Cloud Anda.
Project
Anda mengisolasi resource di lingkungan Anda menggunakan project. Tabel berikut menjelaskan project yang diperlukan dalam organisasi. Anda dapat mengubah nama project ini, tetapi sebaiknya pertahankan struktur project yang serupa.
Project | Deskripsi |
---|---|
Project host | Project ini mencakup aturan masuk firewall dan semua resource
yang memiliki alamat IP internal (seperti yang dijelaskan dalam Menghubungkan ke jaringan VPC). Saat
menggunakan VPC bersama, Anda menetapkan suatu project sebagai project host
dan menautkan satu atau beberapa project layanan lain padanya. Saat menerapkan kode Terraform, Anda menentukan nama project ini, dan blueprint akan men-deploy layanan. |
Project layanan | Project ini mencakup aplikasi serverless,
Cloud Run, dan
konektor Akses VPC Serverless Anda. Anda dapat mengaitkan project layanan ke
project host sehingga project layanan tersebut dapat berpartisipasi dalam
Jaringan VPC Bersama. Saat menerapkan kode Terraform, Anda menentukan nama project ini. Blueprint ini men-deploy Cloud Run, Google Cloud Armor, konektor Akses VPC Serverless, dan load balancer. |
Project keamanan | Project ini mencakup layanan khusus keamanan Anda, seperti
Cloud KMS dan Secret Manager. Saat menerapkan kode Terraform, Anda menentukan nama project ini, dan blueprint akan men-deploy Cloud KMS. Jika Anda menggunakan modul Secure Cloud Run Harness, Artifact Registry juga akan di-deploy. Jika Anda men-deploy blueprint ini setelah men-deploy blueprint security foundation, project ini adalah project rahasia yang dibuat oleh blueprint Enterprise Foundation. Untuk informasi selengkapnya tentang project blueprint dasar-dasar perusahaan, lihat Project. Jika Anda men-deploy beberapa instance blueprint ini tanpa blueprint dasar-dasar perusahaan, setiap instance akan memiliki project keamanannya sendiri. |
Memetakan peran dan grup ke project
Anda harus memberikan akses ke project yang membentuk arsitektur serverless kepada grup pengguna yang berbeda di organisasi Anda. Tabel berikut menjelaskan rekomendasi blueprint untuk grup pengguna dan penetapan peran dalam project yang Anda buat. Anda dapat menyesuaikan grup agar cocok dengan struktur organisasi yang ada, tetapi sebaiknya Anda mempertahankan pemisahan tugas dan penetapan peran yang serupa.
Grup | Project | Peran |
---|---|---|
Administrator serverless grp-gcp-serverless-admin@example.com |
Project layanan | |
Administrator keamanan serverless grp-gcp-serverless-security-admin@example.com |
Project keamanan | |
Developer Cloud Run grp-gcp-secure-cloud-run-developer@example.com |
Project keamanan | |
Pengguna Cloud Run grp-gcp-secure-cloud-run-user@example.com |
Project layanan |
Kontrol keamanan
Bagian ini membahas kontrol keamanan di Google Cloud yang Anda gunakan untuk membantu mengamankan arsitektur serverless. Prinsip keamanan utama yang perlu dipertimbangkan adalah sebagai berikut:
- Amankan akses sesuai dengan prinsip hak istimewa terendah, sehingga hanya memberikan hak istimewa yang diperlukan kepada entitas untuk melakukan tugasnya.
- Amankan koneksi jaringan melalui desain segmentasi, kebijakan organisasi, dan kebijakan firewall.
- Amankan konfigurasi untuk setiap layanan.
- Pahami tingkat risiko dan persyaratan keamanan untuk lingkungan yang menghosting beban kerja serverless Anda.
- Konfigurasikan pemantauan dan logging yang memadai untuk memungkinkan deteksi, investigasi, dan respons.
Kontrol keamanan untuk aplikasi serverless
Anda dapat membantu melindungi aplikasi serverless menggunakan kontrol yang melindungi traffic di jaringan, mengontrol akses, dan mengenkripsi data.
Kontrol sistem build
Saat men-deploy aplikasi serverless, Anda menggunakan Artifact Registry untuk menyimpan biner dan image container. Artifact Registry mendukung CMEK sehingga Anda dapat mengenkripsi repositori menggunakan kunci enkripsi Anda sendiri.
Traffic SSL
Untuk mendukung traffic HTTPS ke aplikasi serverless, Anda harus mengonfigurasi sertifikat SSL untuk Load Balancer Aplikasi eksternal Anda. Secara default, Anda menggunakan sertifikat yang ditandatangani sendiri dan dapat diubah menjadi sertifikat terkelola setelah Anda menerapkan kode Terraform. Untuk informasi selengkapnya tentang cara menginstal dan menggunakan sertifikat terkelola, lihat Menggunakan sertifikat SSL yang dikelola Google.
Aturan jaringan dan firewall
Aturan firewall Virtual Private Cloud (VPC) mengontrol aliran data ke dalam perimeter. Anda membuat aturan firewall yang menolak semua traffic keluar, kecuali untuk koneksi port 443 TCP tertentu dari nama domain khusus restricted.googleapis.com. Penggunaan domain restricted.googleapis.com memiliki manfaat sebagai berikut:
- Membantu mengurangi permukaan serangan jaringan Anda dengan menggunakan Akses Google Pribadi saat beban kerja berkomunikasi dengan API dan layanan Google.
- Memastikan bahwa Anda hanya menggunakan layanan yang mendukung Kontrol Layanan VPC.
Untuk informasi selengkapnya, lihat Mengonfigurasi Akses Google Pribadi.
Kontrol perimeter
Seperti yang ditunjukkan dalam diagram arsitektur yang direkomendasikan, Anda menempatkan resource untuk aplikasi serverless di perimeter terpisah. Perimeter ini membantu melindungi aplikasi serverless dari akses yang tidak diinginkan dan pemindahan data yang tidak sah.
Kebijakan akses
Untuk membantu memastikan bahwa hanya identitas tertentu (pengguna atau layanan) yang dapat mengakses resource dan data, Anda harus mengaktifkan grup dan peran IAM.
Untuk membantu memastikan bahwa hanya resource tertentu yang dapat mengakses project Anda, aktifkan kebijakan akses untuk organisasi Google Anda. Untuk mengetahui informasi selengkapnya, lihat Atribut tingkat akses.
Identity and Access Proxy
Jika lingkungan Anda sudah menyertakan Identity and Access Proxy (IAP), Anda dapat mengonfigurasi Load Balancer Aplikasi eksternal agar menggunakan IAP untuk mengizinkan traffic bagi aplikasi serverless Anda. Dengan IAP, Anda dapat membuat lapisan otorisasi pusat untuk aplikasi serverless sehingga Anda dapat menggunakan kontrol akses tingkat aplikasi, bukan mengandalkan firewall tingkat jaringan.
Untuk mengaktifkan IAP untuk aplikasi Anda, dalam file
loadbalancer.tf
,
setel iap_config.enable
ke true
.
Untuk mengetahui informasi selengkapnya tentang IAP, lihat ringkasan Identity-Aware Proxy.
Akun layanan dan kontrol akses
Akun layanan adalah identitas yang dapat digunakan Google Cloud untuk menjalankan permintaan API atas nama Anda. Untuk menerapkan pemisahan tugas, Anda membuat akun layanan yang memiliki peran berbeda untuk tujuan tertentu. Akun layanan tersebut adalah sebagai berikut:
Akun layanan Cloud Run (
cloud_run_sa
) yang memiliki peran berikut:roles/run.invoker
roles/secretmanager.secretAccessor
Untuk mengetahui informasi selengkapnya, lihat Mengizinkan Cloud Run mengakses secret.
Akun konektor Akses VPC Serverless (
gcp_sa_vpcaccess
) yang memiliki peranroles/compute.networkUser
.Akun konektor Akses VPC Serverless kedua (
cloud_services
) yang memiliki peranroles/compute.networkUser
.Akun layanan untuk konektor Akses VPC Serverless ini diperlukan agar konektor dapat membuat aturan masuk dan keluar firewall di project host. Untuk mengetahui informasi selengkapnya, lihat Memberikan izin ke akun layanan di project layanan.
Identitas layanan untuk menjalankan Cloud Run (
run_identity_services
) yang memiliki peranroles/vpcaccess.user
.Sebuah Agen layanan untuk Google API (
cloud_services_sa
) yang memiliki peranroles/editor
. Akun layanan ini memungkinkan Cloud Run berkomunikasi dengan konektor Akses VPC Serverless.Sebuah Identitas layanan untuk Cloud Run (
serverless_sa
) yang memiliki peranroles/artifactregistry.reader
. Akun layanan ini menyediakan akses ke kunci enkripsi dan dekripsi Artifact Registry dan CMEK.
Pengelolaan kunci
Anda dapat menggunakan kunci CMEK untuk membantu melindungi data di Artifact Registry dan di Cloud Run. Anda menggunakan kunci enkripsi berikut:
- Kunci software untuk Artifact Registry yang mengesahkan kode untuk aplikasi serverless Anda.
- Sebuah Kunci enkripsi untuk mengenkripsi image container yang di-deploy Cloud Run.
Saat menerapkan konfigurasi Terraform, Anda menentukan lokasi CMEK, yang menentukan lokasi geografis tempat kunci disimpan. Anda harus memastikan bahwa kunci CMEK berada di region yang sama dengan resource Anda. Secara default, kunci CMEK dirotasi setiap 30 hari.
Pengelolaan rahasia
Cloud Run mendukung
Secret Manager
untuk menyimpan secret yang mungkin diperlukan oleh aplikasi serverless Anda. Secret
ini dapat mencakup kunci API serta nama pengguna dan sandi database. Untuk menampilkan
secret sebagai volume yang terpasang, gunakan variabel volume_mounts
dan volumes
di
modul utama.
Saat men-deploy blueprint ini dengan blueprint Enterprise Foundation, Anda harus menambahkan secret Anda ke project secret sebelum menerapkan kode Terraform. Blueprint akan memberikan peran Secret Manager Secret Accessor ke akun layanan Cloud Run. Untuk mengetahui informasi selengkapnya, lihat Menggunakan secret.
Kebijakan organisasi
Blueprint ini menambahkan batasan pada batasan kebijakan organisasi. Untuk mengetahui informasi selengkapnya tentang batasan yang digunakan blueprint dasar perusahaan, lihat Batasan kebijakan organisasi.
Tabel berikut menjelaskan batasan kebijakan organisasi tambahan yang ditentukan dalam modul Keamanan Cloud Run dari blueprint ini.
Batasan kebijakan | Deskripsi | Nilai yang direkomendasikan |
---|---|---|
constraints/run.allowedIngress |
Mengizinkan traffic masuk hanya dari layanan internal atau Load Balancer Aplikasi eksternal. |
internal-and-cloud-load-balancing
|
constraints/run.allowedVPCEgress |
Mewajibkan revisi layanan Cloud Run untuk menggunakan konektor Akses VPC Serverless, dan pastikan bahwa setelan egress VPC revisi ditetapkan untuk mengizinkan rentang pribadi saja. |
private-ranges-only
|
Kontrol operasional
Anda dapat mengaktifkan logging dan fitur Paket Premium Security Command Center seperti analisis kondisi keamanan dan deteksi ancaman. Kontrol ini membantu Anda melakukan hal berikut:
- Memantau siapa yang mengakses data Anda.
- Memastikan bahwa audit yang tepat dilakukan.
- Mendukung kemampuan tim manajemen dan operasi insiden Anda untuk merespons masalah yang mungkin terjadi.
Logging
Untuk membantu memenuhi persyaratan audit dan mendapatkan insight tentang project, konfigurasikan Kemampuan Observasi Google Cloud dengan log data untuk layanan yang ingin Anda lacak. Deploy Cloud Logging di project sebelum Anda menerapkan kode Terraform guna memastikan bahwa blueprint dapat mengonfigurasi logging untuk firewall, load balancer, dan jaringan VPC.
Setelah men-deploy blueprint, sebaiknya Anda mengonfigurasi hal berikut:
- Buat sink log gabungan di semua project.
- Pilih region yang sesuai untuk menyimpan log Anda
- Tambahkan kunci CMEK ke sink logging Anda.
Untuk semua layanan dalam project, pastikan log Anda menyertakan informasi tentang pembacaan dan penulisan data, dan pastikan log tersebut menyertakan informasi tentang apa yang diakses administrator. Untuk mengetahui informasi lebih lanjut tentang praktik terbaik logging, baca Kontrol detektif.
Pemantauan dan pemberitahuan
Setelah men-deploy blueprint tersebut, Anda dapat menyiapkan pemberitahuan untuk memberi tahu pusat operasi keamanan (SOC) bahwa mungkin terjadi insiden keamanan. Misalnya, Anda dapat menggunakan pemberitahuan agar analis keamanan mengetahui saat izin telah berubah dalam peran IAM. Untuk informasi selengkapnya tentang mengonfigurasi pemberitahuan Security Command Center, lihat Menyiapkan notifikasi temuan.
Dasbor Cloud Run Monitoring, yang merupakan bagian dari contoh library dasbor, memberi Anda informasi berikut:
- Jumlah permintaan
- Latensi permintaan
- Waktu instance yang dapat ditagih
- Alokasi CPU container
- Alokasi memori container
- Pemakaian CPU container
- Pemakaian memori container
Untuk petunjuk tentang cara mengimpor dasbor, lihat Menginstal contoh dasbor. Untuk mengekspor pemberitahuan, lihat dokumen berikut:
Proses debug dan pemecahan masalah
Anda dapat menjalankan Uji Konektivitas untuk membantu Anda men-debug masalah konfigurasi jaringan antara Cloud Run dan resource dalam subnet Anda. Uji Konektivitas menyimulasikan jalur paket yang diharapkan dan memberikan detail tentang konektivitas, termasuk analisis konektivitas resource ke resource.
Uji Konektivitas tidak diaktifkan oleh kode Terraform; Anda harus menyiapkannya secara terpisah. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menjalankan Uji Konektivitas.
Kontrol detektif
Bagian ini menjelaskan kontrol detektif yang tercakup dalam blueprint.
Google Cloud Armor dan WAF
Anda menggunakan Load Balancer Aplikasi eksternal dan Google Cloud Armor untuk memberikan perlindungan denial of service (DDoS) terdistribusi untuk aplikasi serverless Anda. Google Cloud Armor adalah firewall aplikasi web (WAF) yang disertakan dalam Google Cloud.
Anda mengonfigurasi aturan Google Cloud Armor yang dijelaskan dalam tabel berikut untuk membantu melindungi aplikasi serverless. Aturan ini dirancang untuk membantu mengurangi 10 risiko teratas OWASP.
Nama aturan Google Cloud Armor | Nama aturan ModSecurity |
---|---|
Eksekusi kode jarak jauh |
rce-v33-stable
|
File lokal mencakup |
lfi-v33-stable
|
Serangan protokol |
protocolattack-v33-stable
|
Penyertaan file jarak jauh |
rfi-v33-stable
|
Deteksi pemindai |
scannerdetection-v33-stable
|
Serangan fiksasi sesi |
sessionfixation-v33-stable
|
Injeksi SQL |
sqli-v33-stable
|
Pembuatan skrip antarsitus |
xss-v33-stable
|
Saat aturan ini diaktifkan, Google Cloud Armor akan secara otomatis menolak traffic yang cocok dengan aturan tersebut.
Untuk mengetahui informasi selengkapnya mengenai aturan ini, lihat Menyesuaikan aturan WAF yang telah dikonfigurasi sebelumnya oleh Google Cloud Armor.
Deteksi masalah keamanan di Cloud Run
Anda dapat mendeteksi potensi masalah keamanan di Cloud Run menggunakan Recommender. Pemberi rekomendasi dapat mendeteksi masalah keamanan seperti berikut:
- Kunci API atau sandi yang disimpan di variabel lingkungan, bukan di Secret Manager.
- Container yang menyertakan kredensial hard code, bukan menggunakan identitas layanan.
Sekitar sehari setelah Anda men-deploy Cloud Run, Pemberi rekomendasi mulai memberikan temuan dan rekomendasinya. Pemberi rekomendasi menampilkan temuan dan tindakan perbaikan yang direkomendasikan di daftar layanan Cloud Run atau Hub Rekomendasi.
Mode deployment Terraform
Tabel berikut menjelaskan cara men-deploy blueprint ini, dan modul Terraform mana yang diterapkan untuk setiap mode deployment.
Mode deployment | Modul Terraform |
---|---|
Deploy blueprint ini setelah men-deploy blueprint fondasi perusahaan (direkomendasikan). Opsi ini men-deploy resource untuk blueprint ini di perimeter Kontrol Layanan VPC yang sama dengan yang digunakan oleh blueprint Enterprise Foundation. Untuk informasi selengkapnya, lihat Cara menyesuaikan Foundation v2.3.1 untuk deployment Serverless Aman. Opsi ini juga menggunakan project secret yang Anda buat saat men-deploy blueprint Enterprise Foundation. |
Gunakan modul Terraform ini: |
Instal blueprint ini tanpa menginstal blueprint fondasi perusahaan. Opsi ini mengharuskan Anda membuat perimeter Kontrol Layanan VPC. |
Gunakan modul Terraform ini: |
Menyatukan semuanya
Untuk menerapkan arsitektur yang dijelaskan dalam dokumen ini, lakukan hal berikut:
- Tinjau README untuk memeriksa blueprint dan pastikan bahwa Anda memenuhi semua prasyarat.
- Buat
sertifikat SSL
untuk digunakan dengan
Load Balancer Aplikasi eksternal.
Jika Anda tidak menyelesaikan langkah ini, blueprint akan menggunakan sertifikat yang ditandatangani sendiri untuk men-deploy load balancer, dan browser akan menampilkan peringatan tentang koneksi tidak aman saat Anda mencoba mengakses aplikasi serverless Anda. - Di lingkungan pengujian Anda, deploy
Contoh Cloud Run yang Aman
untuk melihat cara kerja blueprint. Sebagai bagian dari proses pengujian, pertimbangkan
untuk melakukan hal berikut:
- Gunakan Security Command Center untuk memindai project terhadap persyaratan kepatuhan umum.
- Ganti aplikasi contoh dengan aplikasi sungguhan dan jalankan melalui skenario deployment standar.
- Bekerjasamalah dengan tim engineering dan operasi aplikasi di perusahaan Anda untuk menguji akses mereka ke project dan untuk memverifikasi apakah mereka dapat berinteraksi dengan solusi dengan cara yang diharapkan.
- Deploy blueprint tersebut ke lingkungan Anda.
Pemetaan kepatuhan
Untuk membantu menentukan kontrol keamanan utama yang terkait dengan aplikasi serverless, Cloud Security Alliance (CSA) memublikasikan 12 Risiko Kritis Teratas untuk Aplikasi Serverless. Kontrol keamanan yang digunakan dalam blueprint ini membantu Anda mengatasi sebagian besar risiko ini, seperti yang dijelaskan dalam tabel berikut.
Risiko | Mitigasi blueprint | Tanggung jawab Anda |
---|---|---|
1. Injeksi data peristiwa fungsi | Google Cloud Armor dan Load Balancer Aplikasi eksternal membantu melindungi dari 10 Teratas OWASP, seperti yang dijelaskan dalam Opsi mitigasi OWASP Top 10 2021 di Google Cloud | Praktik coding yang aman seperti penanganan pengecualian, seperti yang dijelaskan dalam Praktik Coding Aman OWASP dan Supply chain Levels for Software Artifacts (SLSA) |
2. Autentikasi rusak | Tidak ada | IAP dan Identity Platform untuk mengautentikasi pengguna layanan |
3. Konfigurasi deployment serverless yang tidak aman | CMEK dengan Cloud KMS |
Pengelolaan kunci enkripsi Anda sendiri |
4. Izin dan peran fungsi dengan hak istimewa berlebih |
|
Tidak ada |
5. Pemantauan dan logging fungsi tidak memadai | Cloud Logging | Dasbor dan struktur pemberitahuan Cloud Monitoring |
6. Dependensi pihak ketiga yang tidak aman | Tidak ada | Lindungi pipeline CI/CD menggunakan pemindaian kode dan analisis pra-deployment |
7. Penyimpanan rahasia aplikasi yang tidak aman | Secret Manager | Pengelolaan rahasia dalam kode aplikasi |
8. Denial of service dan kehabisan sumber daya keuangan |
|
Tidak ada |
9. Manipulasi logika bisnis serverless | Kontrol Layanan VPC untuk membatasi cakupan akses Google Cloud API (disediakan menggunakan blueprint Enterprise Foundation) | Tidak ada |
10. Penanganan pengecualian yang tidak tepat dan pesan error panjang | Tidak ada | Praktik terbaik pemrograman yang aman |
11. Fungsi, resource cloud, dan pemicu peristiwa yang tidak digunakan lagi | Gunakan revisi untuk meminimalkan permukaan serangan. Revisi membantu mengurangi kemungkinan pengaktifan secara tidak sengaja iterasi layanan sebelumnya yang tidak digunakan lagi. Revisi juga membantu Anda menguji postur keamanan revisi baru menggunakan pengujian A/B bersama dengan alat pemantauan dan logging. |
|
12. Persistensi data lintas eksekusi | Tidak ada | Tidak ada |
Langkah selanjutnya
- Untuk lingkungan dasar yang aman, tinjau blueprint Enterprise Foundation Google Cloud.
- Untuk melihat detail blueprint yang dijelaskan dalam dokumen ini, baca file README konfigurasi Terraform.
Untuk membaca tentang praktik terbaik keamanan dan kepatuhan, lihat Framework Arsitektur Google Cloud: Keamanan, privasi, dan kepatuhan.
Untuk praktik terbaik dan blueprint lainnya, lihat pusat praktik terbaik keamanan.