Sicurezza dell'ambiente di esecuzione
Ogni funzione viene eseguita su un'immagine di runtime con controllo della versione all'interno dell'ambiente di esecuzione sicuro di Cloud Run Functions. Le immagini di runtime contengono librerie del sistema operativo, runtime del linguaggio e altri pacchetti di sistema. Google gestisce tutte le immagini di runtime delle funzioni Cloud Run, rilasciando patch di sicurezza e aggiornamenti di manutenzione dopo un periodo di test della stabilità.
Immagini di runtime
A ogni runtime è associata un'immagine di runtime (nota anche come immagine di esecuzione) in un
repository pubblico su gcr.io
. Per un elenco degli ID runtime e delle relative immagini di runtime, consulta runtime.
Identifica l'immagine di runtime
Puoi identificare l'immagine di runtime utilizzata per creare la funzione esaminando i log di compilazione della funzione.
Nei log di compilazione, cerca google.run-image
. Viene visualizzata la voce del log del passaggio di compilazione che descrive la versione dell'immagine del runtime utilizzata per compilare la funzione. Ad esempio, una voce di log per una funzione Nodejs potrebbe avere il seguente aspetto:
{
...
"textPayload": "Step #2 - \"build\": Adding image label google.run-image:
us.gcr.io/serverless-runtimes/google-22-full/runtimes/nodejs20:nodejs20_20241110_20_18_0_RC00
",
...
}
Criterio di aggiornamento della sicurezza
Puoi scegliere uno dei seguenti criteri di aggiornamento della sicurezza:
Aggiornamenti automatici (impostazione predefinita): gli aggiornamenti e le patch di sicurezza per l'ambiente di runtime vengono pubblicati nelle nuove versioni dell'immagine di runtime. Dopo un periodo di test per la verifica della stabilità e dell'affidabilità, il runtime aggiornato viene implementato in tutte le funzioni, con un aggiornamento senza tempi di riposo. Gli aggiornamenti di sicurezza automatici sono disponibili con le funzioni Cloud Run (1ª generazione.) e le funzioni Cloud Run. Per applicare correzioni di sicurezza a livello di linguaggio, potrebbe essere necessario ricostruire le funzioni che utilizzano linguaggi compilati come Go o Java.
Aggiornamenti al deployment: gli aggiornamenti e le patch di sicurezza vengono applicati ai runtime solo quando le funzioni vengono implementate o riimplementate, se non diversamente specificato. Gli aggiornamenti sul deployment sono disponibili sia per le funzioni Cloud Run (1ª generazione.) sia per le funzioni Cloud Run.
Il criterio di aggiornamento del runtime può essere modificato utilizzando il --runtime-update-policy
flag nel comando gcloud deploy
.
Imposta il criterio di aggiornamento della funzione
Se utilizzi le funzioni Cloud Run (1ª generazione.), puoi modificare il criterio di aggiornamento della funzione includendo il flag --runtime-update-policy
nel comando gcloud deploy
come mostrato di seguito:
gcloud functions deploy FUNCTION_NAME --no-gen2 \ --runtime-update-policy=POLICY ...
Sostituisci:
- FUNCTION_NAME con il nome della funzione
- POLICY con
automatic
oon-deploy
Controlla i criteri di aggiornamento della funzione
Puoi controllare il criterio di aggiornamento della funzione con il seguente comando:
gcloud functions describe FUNCTION_NAME \
dove FUNCTION_NAME è il nome della funzione
- Le funzioni con gli aggiornamenti automatici della sicurezza abilitati avranno la chiave
automaticUpdatePolicy
- Le funzioni che si aggiornano al momento del deployment avranno la chiave
onDeployUpdatePolicy
Identificare l'immagine di runtime utilizzata dopo un aggiornamento automatico
Quando attivi gli aggiornamenti automatici, le funzioni Cloud Run sostituiscono l'immagine di runtime della funzione con una revisione più recente contenente patch e aggiornamenti di sicurezza aggiuntivi. Questa modifica viene visualizzata nei log di runtime della funzione.
All'interno dei log di runtime, l'etichetta runtime_version
indica quando viene utilizzata una nuova immagine di runtime nella funzione. Una voce di log per una funzione Nodejs che è stata aggiornata automaticamente potrebbe avere il seguente aspetto:
{
...
"labels:" {
runtime_version: nodejs20_20230924_20_6_1_RC00
execution_id: ...
}
...
}