Sécurité de l'environnement d'exécution
Chaque fonction s'exécute sur une image d'exécution avec versions gérées dans l'environnement d'exécution sécurisé de Cloud Run Functions. Les images d'exécution contiennent des bibliothèques de systèmes d'exploitation, des environnements d'exécution de langage et d'autres packages système. Google gère toutes les images d'exécution Cloud Run Functions en publiant des correctifs de sécurité et des mises à jour de maintenance après une période de test de la stabilité.
Images d'exécution
Chaque environnement d'exécution est associé à une image d'exécution dans un dépôt public sur gcr.io
. Pour obtenir la liste des ID d'environnement d'exécution et de leurs images d'exécution, consultez la page Environnements d'exécution.
Identifier votre image d'exécution
Vous pouvez identifier l'image d'exécution utilisée pour créer votre fonction en inspectant les journaux de compilation de votre fonction.
Dans les journaux de compilation, recherchez google.run-image
. Vous obtenez ainsi l'entrée de journal de l'étape de compilation qui décrit la version de l'image d'exécution utilisée pour compiler votre fonction. Par exemple, une entrée de journal pour une fonction Node.js peut se présenter comme suit :
{
...
"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
",
...
}
Règles de mise à jour de sécurité
Vous pouvez choisir l'une des règles de mise à jour de sécurité suivantes :
Mises à jour automatiques (règle par défaut) : les mises à jour et les correctifs de sécurité de l'environnement d'exécution sont publiés dans de nouvelles versions de l'image d'exécution. Après une période de test de la stabilité et de la fiabilité, l'environnement d'exécution mis à jour est déployé sur toutes les fonctions, ce qui évite les temps d'arrêt. Les mises à jour de sécurité automatiques sont disponibles avec Cloud Run Functions (1re génération) et Cloud Run Functions. Pour appliquer des correctifs de sécurité au niveau du langage, vous devrez peut-être recréer des fonctions qui utilisent des langages compilés tels que Go ou Java.
Mises à jour lors du déploiement : les mises à jour et les correctifs de sécurité ne sont appliqués aux environnements d'exécution que lorsque des fonctions sont déployées ou redéployées, sauf indication contraire. Les mises à jour lors du déploiement sont disponibles à la fois sur Cloud Run Functions (1re génération) et Cloud Run Functions.
Vous pouvez modifier la règle de mise à jour de l'environnement d'exécution en utilisant le flag --runtime-update-policy
dans votre commande gcloud functions deploy
.
Définir la règle de mise à jour de votre fonction
Si vous utilisez Cloud Run Functions (1re génération), vous pouvez modifier la règle de mise à jour de votre fonction en incluant le flag --runtime-update-policy
dans votre commande gcloud deploy
comme indiqué ici :
gcloud functions deploy FUNCTION_NAME --no-gen2 \ --runtime-update-policy=POLICY ...
Remplacez :
- FUNCTION_NAME par le nom de votre fonction
- POLICY par
automatic
ouon-deploy
Inspecter la règle de mise à jour de votre fonction
Vous pouvez inspecter la règle de mise à jour de votre fonction à l'aide de la commande suivante :
gcloud functions describe FUNCTION_NAME \
Où FUNCTION_NAME est le nom de la fonction
- Les fonctions pour lesquelles les mises à jour de sécurité automatiques sont activées auront la clé
automaticUpdatePolicy
. - Les fonctions qui sont mises à jour lors du déploiement auront la clé
onDeployUpdatePolicy
.
Identifier l'image d'exécution utilisée après une mise à jour automatique
Lorsque vous activez les mises à jour automatiques, Cloud Run Functions remplace l'image d'exécution de votre fonction par une révision plus récente contenant des correctifs de sécurité et des mises à jour supplémentaires. Cette modification apparaît dans les journaux d'exécution de votre fonction.
Dans les journaux d'exécution, l'étiquette runtime_version
vous indique qu'une nouvelle image d'exécution est utilisée sur votre fonction. Une entrée de journal pour une fonction Node.js mise à jour automatiquement peut se présenter comme suit :
{
...
"labels:" {
runtime_version: nodejs20_20230924_20_6_1_RC00
execution_id: ...
}
...
}