Ringkasan desain keamanan

Pelajari bagaimana Cloud Run mengimplementasikan praktik keamanan terbaik untuk melindungi data Anda dan pelajari cara menggunakan fitur-fitur ini untuk memenuhi persyaratan keamanan Anda.

Arsitektur

Cloud Run berjalan di atas Borg di lingkungan yang sama tempat Google men-deploy miliaran container dalam seminggu, dan menghosting beberapa situs terbesar di dunia, termasuk Gmail dan YouTube. Karena komponen Cloud Run memiliki infrastruktur yang sama, komponen tersebut dibuat dengan standar keamanan yang sama dengan layanan Google lainnya.

Untuk mempelajari pendekatan kami terhadap keamanan lebih lanjut, baca laporan resmi tentang ringkasan keamanan Google

Arsitektur Cloud Run berisi berbagai komponen infrastruktur yang berbeda. Diagram berikut menunjukkan cara komponen tersebut merespon permintaan ke layanan Anda dan memanggil Cloud Run Admin API:

Diagram komponen infrastruktur Cloud Run
Gambar 1. Diagram komponen infrastruktur Cloud Run.

Pemintaan ke layanan Anda

Saat ada permintaan ke layanan Cloud Run Anda baik melalui domain kustom maupun langsung ke run.app URL Anda, permintaan tersebut akan ditangani oleh komponen berikut:

  • Google Front End (GFE): layanan infrastruktur global dari Google yang menghentikan koneksi TLS dan menerapkan perlindungan terhadap serangan DoS saat Anda membuat permintaan ke run.app URL. Cloud Run adalah layanan regional. Jadi, saat sebuah permintaan diakses melalui run.app URL, GFE akan meneruskan permintaan ke Dloud Run dari region yang sesuai.
  • Load balancer Google Cloud: saat menyiapkan Cloud Load Balancing untuk menangani domain kustom Anda, fungsi tersebut menyertakan fungsi GFE yang sebelumnya disebutkan. Anda juga dapat mengonfigurasi load balancer Google Cloud untuk menjalankan fungsi tambahan, seperti pengelolaan traffic dan kontrol akses.
  • Proxy HTTP: komponen zona yang melakukan load balancing terhadap permintaan HTTP yang masuk ke instance aplikasi dengan sandbox.
  • Scheduler: memilih server aplikasi untuk menghostin instance aplikasi dengan sandbox.
  • Server aplikasi: sebuah node komputasi zonal dan multi-tenant yang membuat dan mengelola sandbox yang menjalankan dari setiap container aplikasi.
  • Sandbox: mengisolasi kode pengguna dari sistem dan pelanggan lainnya. Pelajari lebih lanjut di bagian Keamanan komputasi berikut.
  • Penyimpanan: mengekspos antarmuka server file untuk image container yang diimpor dari registry container yang didukung.
  • Server metadata: menyediakan kredensial dan metadata khusus sandbox.
  • Jaringan keluar: mengelola traffic keluar yang dimulai oleh sandbox.

Panggilan Cloud Run Admin API

Saat permintaan dibuat ke Admin Cloud Run API, permintaan tersebut ditangani oleh komponen berikut:

  • Google Front End (GFE): Layanan infrastruktur global Google yang menghentikan koneksi TLS dan menerapkan perlindungan terhadap serangan DoS.
  • Control plane: memvalidasi dan menulis konfigurasi aplikasi Anda ke penyimpanan.
  • Penyimpanan konfigurasi: menyimpan konfigurasi aplikasi di Spanner dan Bigtable untuk diakses oleh komponen lain, seperti server aplikasi, penjadwal, dan elemen jaringan.

Keamanan komputasi

Komponen Cloud Run berjalan di sistem pengelolaan container Google, Borg. Untuk container Anda, Cloud Run menawarkan dua lingkungan eksekusi:

  • Generasi pertama: Berdasarkan platform keamanan container gVisor, opsi ini memiliki codebase kecil, yang menyediakan permukaan serangan yang lebih kecil. Setiap perubahan akan ditinjau keamanannya dan sebagian besar perubahan ditulis dengan cara yang aman untuk memori. Pengerasan lebih lanjut dilakukan dengan Mode Komputasi Aman (seccomp) atau sistem pemfilteran pemanggilan.

  • Generasi kedua: Berdasarkan mikroVMs Linux, opsi ini memberikan lebih banyak kompatibilitas dan performa untuk workload kustom. Pengerasan lebih lanjut dicapai menggunakan sistem pemfilteran panggilan seccomp dan namspace Sandbox2 Linux.

Kedua lingkungan eksekusi ini menggunakan dua lapisan sandbox yang terdiri dari lapisan yang didukung hardware yang setara dengan setiap VMs (virtualisasi x86) dan lapisan kernel software, seperti yang ditunjukkan dalam diagram berikut:

Di kedua lingkungan
      eksekusi, container pengguna diisolasi dari workload lain melalui
      dua lapisan sandboxing.
Gambar 2. Di kedua lingkungan eksekusi, container pengguna diisolasi dari workload lain melalui dua lapisan sandboxing.

Jika layanan Anda menggunakan infrastruktur pihak ketiga untuk mengamankan container, gunakan lingkungan eksekusi generasi kedua.

Enkripsi dan penyimpanan data.

Instance Cloud Run bersifat stateless. Menghentikan instance akan menghapus statusnya. Oleh karena itu, semua instance baru akan dimulai dari awal.

Jika memiliki data stateful. Anda dapat mengelola data dengan cara berikut:

Selain itu, Cloud Run terintegrasi dengan banyak sistem Google Cloud lainnya untuk mengelola dan mengakses data Anda dengan cara berikut:

Di Google Cloud, semua data Anda akan dienkripsi dalam penyimpanan.

Cloud Run mematuhi inisiatif di seluruh Google Cloud untuk perlindungan dan transparansi data, termasuk transparansi akses dan residensi data.

Keamanan jaringan

Cloud Run dan semua layanan Google Cloud lainnya mengenkripsi semua traffic saat transit. Anda dapat menggabungkan kontrol traffic keluar dan masuk ke dalam layanan atau tugas Cloud Run untuk menambahkan lapisan pembatasan tambahan. Administrator organisasi juga dapat menerapkan kontrol traffic keluar dan masuk dengan menetapkan kebijakan organisasi.

Traffic keluar (outbound)

Traffic keluar yang keluar dari Cloud Run diperlakukan sebagai lapisan transport 4 (TCP dan UDP).

Secara default, traffic keluar mengambil salah satu jalur berikut saat keluar dari Cloud Run:

  • Tujuan target berada di jaringan VPC: traffic berjalan ke jaringan VPC atau jaringan VPC Bersama dalam proyek Anda dengan menggunakan Traffic keluar VPC Langsung atau Konektor Akses VPC Serverless. Konektor adalah resource regional yang berada langsung di jaringan VPC.
  • Tujuan target tidak berada di jaringan VPC: traffic dirutekan langsung ke tujuan target dalam jaringan Google atau internet publik.
Diagram komponen infrastruktur Cloud Run
Gambar 3. Traffic keluar dapat di-proxy-kan melalui konektor ke jaringan VPC. Perangkat ini juga dapat langsung menuju ke VPC atau ke jaringan non-VPC (Pratinjau).

Mengontrol traffic keluar

Untuk kontrol tambahan traffic keluar, gunakan setelan traffic keluar VPC untuk merutekan semua traffic ke jaringan VPC Anda dengan menggunakan konektor atau traffic keluar VPC Langsung.

Setelah berada di jaringan VPC, Anda dapat menggunakan alat VPC untuk mengelola traffic, misalnya:

Administrator organisasi juga dapat menerapkan traffic keluar dengan menetapkan batasan daftar Setelan traffic keluar VPC yang diizinkan (Cloud Run).

Traffic masuk (inbound)

Berbeda dengan traffic keluar, traffic masuk Cloud Run berada di lapisan aplikasi 7 (HTTP).

Cloud Run menerima traffic masuk yang masuk dari sumber berikut:

  • Internet publik: permintaan dirutekan langsung dari sumber publik ke layanan Cloud Run Anda dengan opsi untuk merutekan traffic melalui load balancer HTTP(S) eksternal.

  • Jaringan VPC: Anda dapat merutekan traffic dari jaringan VPC ke layanan Cloud Run menggunakan Akses Google Pribadi, Private Service Connect, atau Load Balancer Aplikasi internal. Traffic jenis ini selalu berada dalam jaringan Google.

  • Layanan Google Cloud: traffic berpindah langsung ke Cloud Run dari layanan Google Cloud lainnya, seperti BigQuery atau bahkan Cloud Run itu sendiri. Dalam beberapa kasus, Anda juga dapat mengonfigurasi layanan ini untuk dirutekan melalui jaringan VPC. Jenis traffic ini selalu berada dalam jaringan Google.

Diagram komponen Infrastruktur Cloud Run
Gambar 4. Traffic masuk (inbound) jaringan HTTP Lapisan 7 ke Cloud Run.

Model keamanan jaringan Cloud Run mencakup properti traffic masuk berikut:

  • Arahkan traffic ke run.app URL: run.app URL selalu memerlukan traffic HTTPS untuk masuk ke Cloud Run. Infrastruktur penayangan frontend Google menghentikan TLS, lalu meneruskan traffic ke Cloud Run dan ke container Anda melalui saluran terenkripsi.
  • Traffic ke domain kustom yang terkait dengan load balancer Google Cloud Anda: Untuk traffic HTTPS, load balancer internal dan eksternal Google Cloud akan menghentikan TLS dan meneruskan traffic ke Cloud Run dan container Anda melalui saluran terenkripsi. Load balancer Google Cloud juga dapat Anda gunakan untuk menerapkan fitur keamanan tambahan, seperti IAP, Google Cloud Armor, dan kebijakan SSL.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi traffic jaringan VPC ke Cloud Run, baca Menerima permintaan dari jaringan VPC.

Mengontrol traffic masuk

Kontrol traffic masuk Cloud Run mengelola traffic yang masuk ke Cloud Run untuk memastikan bahwa traffic hanya berasal dari sumber tepercaya.

Untuk layanan Cloud Run yang hanya melayani klien internal, Anda dapat mengonfigurasi setelan "internal" sehingga hanya traffic dari sumber internal berikut yang dapat masuk ke Cloud Run:

  • Jaringan VPC dalam project Anda atau perimeter Kontrol Layanan VPC, termasuk layanan Cloud Run yang merutekan semua traffic-nya melalui jaringan VPC.
  • Jaringan VPC Bersama tempat layanan Cloud Run terpasang.
  • Beberapa layanan Google Cloud, seperti BigQuery, yang berada di perimeter Kontrol Layanan VPC atau project Anda.
  • Traffic dari klien lokal yang melintasi jaringan VPC Anda untuk menjangkau Cloud Run.

Administrator organisasi juga dapat menerapkan traffic masuk dengan menetapkan kebijakan organisasi.

Untuk informasi selengkapnya tentang mengontrol traffic masuk, baca Membatasi traffic masuk untuk Cloud Run.

Kontrol akses

Kontrol akses digunakan untuk membatasi siapa saja yang memiliki akses ke layanan dan tugas Cloud Run Anda.

Siapa saja yang dapat mengelola layanan atau pekerjaan Anda

Untuk mengontrol siapa yang mengelola layanan atau tugas Cloud Run Anda, Cloud Run menggunakan IAM untuk memberikan otorisasi kepada pengguna dan akun layanan.

Apa yang dapat diakses oleh layanan atau pekerjaan Anda

Untuk mengontrol apa yang dapat dijangkau oleh beban kerja Cloud Run melalui jaringan, Anda dapat memaksa semua traffic melalui jaringan VPC dan menerapkan aturan firewall VPC, seperti yang dijelaskan sebelumnya dalam Keamanan jaringan.

Jika menggunakan traffic keluar VPC Langsung, Anda dapat melampirkan tag jaringan ke resource Cloud Run dan mereferensikan tag jaringan dalam aturan firewall. Jika menggunakan Akses VPC Tanpa Server, Anda dapat menerapkan aturan firewall ke instance konektor.

Gunakan IAM untuk mengontrol resource yang dapat diakses oleh layanan atau tugas Cloud Run Anda. Layanan dan tugas menggunakan akun layanan default Compute Engine secara default. Untuk workload yang sensitif, gunakan akun layanan khusus sehingga Anda hanya dapat memberikan izin yang diperlukan beban kerja untuk melakukan pekerjaannya. Pelajari lebih lanjut cara menggunakan identitas per layanan untuk mengelola akun layanan khusus. Untuk mengetahui informasi tentang cara Cloud Run mengingatkan pengguna untuk membuat akun layanan khusus, baca Mengamankan layanan Cloud Run dengan Pemberi Rekomendasi.

Siapa yang dapat memanggil layanan atau menyetujui tugas Anda

Cloud Run menyediakan beberapa opsi untuk mengontrol siapa yang memanggil layanan atau menjalankan tugas Anda.

Kontrol traffic masuk

Untuk mengelola traffic masuk layanan Cloud Run di tingkat jaringan, baca Mengontrol traffic masuk di bagian sebelumnya.

Tugas Cloud Run tidak untuk melayani permintaan, jadi jangan menggunakan kontrol traffic masuk saat menjalankan tugas.

IAM untuk layanan Anda

Cloud Run melakukan pemeriksaan IAM pada setiap permintaan.

Gunakan izin run.routes.invoke untuk mengonfigurasi siapa saja yang dapat mengakses layanan Cloud Run Anda dengan cara berikut:

  • Berikan izin untuk memilih akun atau grup layanan yang akan mengizinkan akses ke layanan tersebut. Semua permintaan harus memiliki header Otorisasi HTTP yang berisi token ID OpenID Connect yang ditandatangani oleh Google untuk salah satu akun layanan yang diberikan otorisasi.

  • Berikan izin kepada semua pengguna untuk mengizinkan akses tanpa autentikasi.

Untuk memastikan bahwa hanya anggota organisasi Anda yang dapat memanggil layanan Cloud Run, administrator organisasi dapat menetapkan kebijakan organisasi Batasan berbagi domain. Administrator organisasi juga dapat memilih untuk tidak menggunakan layanan Cloud Run tertentu. Pelajari cara membuat layanan Cloud Run publik saat diterapkan batasan berbagi domain.

Pelajari lebih lanjut kasus penggunaan umum untuk autentikasi dan cara Cloud Run menggunakan kontrol akses dengan IAM.

Fitur keamanan load balancer untuk layanan Anda

Jika Anda mengonfigurasi layanan Cloud Run sebagai backend ke load balancer Google Cloud, amankan jalur ini menggunakan metode berikut:

IAM untuk tugas Anda

Gunakan izin run.jobs.run untuk mengonfigurasi siapa saja yang dapat menyetujui tugas Cloud Run Anda dengan cara berikut:

  • Berikan izin untuk memilih akun atau grup layanan untuk mengizinkan akses ke tugas tersebut. Jika tugas dipicu oleh layanan lain, seperti Cloud Scheduler, akun layanan yang digunakan harus memiliki izin run.jobs.run pada tugas.

  • Berikan izin kepada pengguna yang login untuk menyetujui tugas dari Konsol Google Cloud. Jika tugas dipicu oleh layanan lain, seperti Cloud Scheduler, akun layanan atau grup yang digunakan harus memiliki izin run.jobs.run pada tugas tersebut.

Untuk memastikan bahwa hanya anggota organisasi Anda yang dapat menyetujui tugas Cloud Run, administrator organisasi dapat menetapkan Batasan berbagi domain. Administrator organisasi juga dapat memilih untuk tidak mengizinkan tugas Cloud Run tertentu.

Kontrol Layanan VPC

Layanan Cloud Run Anda dapat menjadi bagian dari perimeter Kontrol Layanan VPC sehingga Anda dapat memanfaatkan Kontrol Layanan VPC untuk membatasi akses dan mengurangi risiko pemindahan yang tidak sah. Pelajari lebih lanjut cara menggunakan Kontrol Layanan VPC.

Keamanan supply chain

Gambar dasar yang dikelola buildpacks dari Google Cloud

Layanan yang di-deploy dari kode sumber menggunakan buildpack Google Cloud dibuat menggunakan image dasar yang disediakan Google. Google mengelola image dasar ini dan menyediakan rutinitas patch setiap minggu. Dalam situasi darurat yang melibatkan kritis kerentanan keamanan, kami dapat menyediakan patch dalam hitungan jam.

Keamanan supply chain internal Cloud Run

Karena berjalan di Borg, Cloud Run mengimplementasikan semua keamanan supply chain yang sama dan merupakan standar di seluruh layanan Google, seperti Gmail dan YouTube. Baca selengkapnya tentang praktik supply chain internal Google di laporan resmi BeyondProd dan Otorisasi Biner untuk Borg.

Otorisasi Biner

Cloud Run memiliki dukungan bawaan untuk Otorisasi Biner guna memastikan bahwa hanya image container tepercaya yang di-deploy di Cloud Run. Baca selengkapnya di bagian Menyiapkan ringkasan untuk Cloud Run.

Perlindungan Pengiriman Software

Dengan Software Delivery Shield, Administrator Cloud dapat melihat informasi keamanan tentang supply chain dari container yang mereka deploy langsung dari panel di Konsol Google Cloud. Baca selengkapnya di Melihat detail Software Delivery Shield.

Langkah selanjutnya

Untuk panduan end-to-end tentang cara menyiapkan jaringan, baca Panduan Jaringan Serverless Cloud Run.