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
atauon-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.