Keamanan lingkungan eksekusi

Setiap fungsi berjalan di atas image runtime berversi dalam lingkungan eksekusi Cloud Run yang aman. Image runtime berisi library sistem operasi, runtime bahasa, dan paket sistem lainnya. Google menyimpan semua image runtime fungsi Cloud Run, dengan merilis patch keamanan dan update pemeliharaan setelah periode pengujian stabilitas.

Image runtime

Setiap runtime memiliki image runtime terkait (juga dikenal sebagai image run) di repositori publik pada Artifact Registry. Untuk mengetahui daftar ID runtime dan image runtime-nya, lihat runtime.

Mengidentifikasi image runtime Anda

Anda dapat mengidentifikasi image runtime yang digunakan untuk membuat fungsi dengan memeriksa log build untuk fungsi Anda.

Dalam log build, telusuri google.run-image. Hal ini memberi Anda entri log dari langkah build yang menjelaskan versi image runtime yang digunakan untuk membangun fungsi. Misalnya, entri log untuk fungsi Nodejs mungkin terlihat seperti ini:

{
  ...
  "textPayload": "Step #2 - \"build\": Adding image label google.run-image:
    us-central1-docker.pkg.dev/serverless-runtimes/google-22-full/runtimes/nodejs22:nodejs20_20230924_20_6_1_RC00",
  ...
}

Kebijakan update keamanan

Anda dapat memilih salah satu kebijakan update keamanan berikut:

  • Update otomatis (default): Update dan patch keamanan pada lingkungan runtime dipublikasikan dalam image runtime versi baru. Setelah periode pengujian stabilitas dan keandalan, runtime yang diperbarui akan diluncurkan ke semua fungsi sehingga tidak ada pembaruan periode nonaktif. Update keamanan otomatis tersedia dengan fungsi Cloud Run (generasi ke-1) dan fungsi Cloud Run. Untuk melakukan perbaikan keamanan tingkat bahasa, Anda mungkin perlu mem-build ulang fungsi yang menggunakan bahasa yang dikompilasi seperti Go atau Java.

  • Update saat deployment: Update dan patch keamanan diterapkan ke runtime hanya ketika fungsi di-deploy atau di-deploy ulang, kecuali jika dinyatakan lain. Update saat deployment tersedia di fungsi Cloud Run (generasi ke-1) dan fungsi Cloud Run.

Kebijakan update runtime dapat diubah menggunakan flag --runtime-update-policy dalam perintah gcloud deploy Anda.

Menetapkan kebijakan update fungsi

Anda dapat mengubah kebijakan update fungsi dengan menyertakan flag --runtime-update-policy dalam perintah gcloud deploy seperti yang ditunjukkan di sini:

  gcloud functions deploy FUNCTION_NAME \
    --runtime-update-policy=POLICY ...

Ganti:

  • FUNCTION_NAME dengan nama fungsi Anda
  • POLICY dengan automatic atau on-deploy

Kebijakan default untuk semua fungsi adalah automatic.

Memeriksa kebijakan update fungsi Anda

Anda dapat memeriksa kebijakan update fungsi dengan perintah berikut:

  gcloud functions describe FUNCTION_NAME \

Dengan FUNCTION_NAME adalah nama fungsi Anda

  • Fungsi dengan update keamanan otomatis yang aktif akan memiliki kunci automaticUpdatePolicy
  • Fungsi yang diupdate pada deployment akan memiliki kunci onDeployUpdatePolicy

Mengidentifikasi image runtime yang digunakan setelah update otomatis

Saat Anda mengaktifkan update otomatis, fungsi Cloud Run menukar image runtime fungsi Anda dengan revisi baru yang berisi patch dan update keamanan tambahan. Perubahan ini muncul di log runtime fungsi Anda.

Di dalam log runtime, label runtime_version memberi tahu Anda saat image runtime baru digunakan di fungsi Anda. Entri log untuk fungsi Nodejs yang telah diupdate secara otomatis mungkin terlihat seperti ini:

{
  ...
  "labels:" {
    runtime_version: nodejs20_20230924_20_6_1_RC00
    execution_id: ...
  }
  ...
}

Pemindaian keamanan pada fungsi Cloud Run

Fungsi Cloud Run yang mengaktifkan update otomatis di-build di atas image scratch. Akibatnya, penampung yang mewakili fungsi Anda di Artifact Registry tidak akan memiliki image dasar dan akan jauh lebih kecil daripada fungsi yang menggunakan update saat deployment. Gambar dasar digabungkan dengan gambar fungsi pada waktu proses untuk membuat fungsi lengkap.

Anda dapat menggunakan pemindai keamanan untuk memantau image dasar yang dikelola Google yang mendukung fungsi Anda. Anda dapat menemukan image dasar terbaru untuk fungsi di REGION-docker.pkg.dev/serverless-runtimes/STACK/runtimes/RUNTIME_ID

Ganti:

  • REGION dengan region pilihan, misalnya us-central1
  • STACK dengan stack sistem operasi pilihan, misalnya google-22-full
  • RUNTIME_ID dengan ID runtime yang digunakan oleh fungsi Anda, misalnya python310

Misalnya, image dasar Node.js 20 terbaru yang menggunakan stack google-22-full, yang dihosting di us-central1 akan direferensikan dengan URL ini: us-central1-docker.pkg.dev/serverless-runtimes/google-22-full/runtimes/nodejs22

Karena image Anda sekarang di-build di atas scratch, image yang disimpan di Artifact Registry tidak akan dapat langsung dijalankan. Jika Anda memerlukan image yang dapat dijalankan, gunakan kebijakan saat deployment.