Sicurezza dell'ambiente di esecuzione

Ogni funzione viene eseguita su un'immagine di runtime con controllo delle versioni 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 di Cloud Run Functions e rilascia patch di sicurezza e aggiornamenti di manutenzione dopo un periodo di test della stabilità.

Immagini di runtime

Ogni runtime ha un'immagine di runtime associata (nota anche come immagine di esecuzione) in un repository pubblico su gcr.io. Per un elenco di 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 build della funzione.

Nei log di build, cerca google.run-image. Viene visualizzata la voce di log del passaggio di build che descrive la versione dell'immagine di runtime utilizzata per creare la funzione. Ad esempio, una voce di log per una funzione Node.js potrebbe apparire così:

{
  ...
  "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
",
  ...
}

Policy di aggiornamento della sicurezza

Puoi scegliere una delle seguenti policy di aggiornamento della sicurezza:

  • Aggiornamenti automatici (impostazione predefinita): gli aggiornamenti e le patch di sicurezza per l'ambiente di runtime vengono pubblicati in nuove versioni dell'immagine di runtime. Dopo un periodo di test dei livelli di stabilità e affidabilità, il runtime aggiornato viene implementato in tutte le funzioni, garantendo un aggiornamento senza tempi di inattività. Gli aggiornamenti della sicurezza automatici sono disponibili con Cloud Run Functions (1ª gen.) e Cloud Run Functions. Per applicare le correzioni di sicurezza a livello di linguaggio, potrebbe essere necessario ricompilare le funzioni che utilizzano linguaggi compilati come Go o Java.

  • Aggiornamenti in fase di deployment: gli aggiornamenti e le patch di sicurezza vengono applicati ai runtime solo quando viene eseguito o rieseguito il deployment delle funzioni, se non diversamente indicato. Gli aggiornamenti in fase di deployment sono disponibili sia per Cloud Run Functions (1ª gen.) sia per Cloud Run Functions.

La policy di aggiornamento del runtime può essere modificata utilizzando il flag --runtime-update-policy nel comando gcloud functions deploy.

Imposta la policy di aggiornamento della funzione

Se utilizzi Cloud Run Functions (1ª gen.), puoi modificare la policy di aggiornamento della funzione includendo il flag --runtime-update-policy nel comando gcloud deploy come mostrato qui:

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

Sostituisci:

  • FUNCTION_NAME con il nome della tua funzione
  • POLICY con automatic o on-deploy

Esamina la policy di aggiornamento della funzione

Puoi esaminare la policy di aggiornamento della tua funzione con il seguente comando:

  gcloud functions describe FUNCTION_NAME \

Dove FUNCTION_NAME è il nome della tua funzione

  • Le funzioni con aggiornamenti automatici della sicurezza abilitati avranno la chiave automaticUpdatePolicy
  • Le funzioni che vengono aggiornate durante il deployment avranno la chiave onDeployUpdatePolicy

Identifica l'immagine di runtime utilizzata dopo un aggiornamento automatico

Quando abiliti gli aggiornamenti automatici, Cloud Run Functions sostituisce l'immagine di runtime della tua funzione con una revisione più recente contenente patch e aggiornamenti della sicurezza aggiuntivi. Questa modifica viene visualizzata nei log di runtime della funzione.

Nei 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 Node.js che è stata aggiornata automaticamente potrebbe apparire così:

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