Seguridad del entorno de ejecución
En esta página se proporciona información adicional sobre las políticas de actualizaciones de seguridad de las funciones creadas con los comandos de gcloud functions
o la API Cloud Functions v2.
Para obtener una descripción detallada de cómo configurar las actualizaciones automáticas de las imágenes base, incluidos los tiempos de ejecución de los idiomas, el paquete del SO y el sistema operativo, consulta el documento de Cloud Run Configurar actualizaciones automáticas de imágenes base.
Imágenes de tiempo de ejecución
Cada tiempo de ejecución tiene una imagen de tiempo de ejecución asociada (también conocida como imagen de ejecución) en un repositorio público de Artifact Registry. Para ver una lista de los IDs de tiempo de ejecución y sus imágenes de tiempo de ejecución, consulta Tiempos de ejecución.
Identificar la imagen de tiempo de ejecución
Para identificar la imagen de tiempo de ejecución que se ha usado para crear tu función, consulta los registros de compilación de la función.
En los registros de compilación, busca google.run-image
. De esta forma, obtendrá la entrada de registro del paso de compilación que describe la versión de la imagen de tiempo de ejecución usada para compilar su función. Por ejemplo, una entrada de registro de una función de Node.js podría tener el siguiente aspecto:
{
...
"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",
...
}
Política de actualizaciones de seguridad
Puedes elegir una de las siguientes políticas de actualizaciones de seguridad:
Actualizaciones automáticas (opción predeterminada): las actualizaciones y los parches de seguridad del entorno de ejecución se publican en nuevas versiones de la imagen del entorno de ejecución. Después de un periodo de pruebas para comprobar la estabilidad y la fiabilidad, el tiempo de ejecución actualizado se implementa en todas las funciones, lo que da como resultado una actualización sin tiempo de inactividad. Las actualizaciones de seguridad automáticas están disponibles en Cloud Functions (1.ª gen.) y Cloud Run Functions. Para aplicar correcciones de seguridad a nivel de idioma, es posible que tengas que volver a compilar las funciones que usen idiomas compilados, como Go o Java.
En las actualizaciones de la implementación: las actualizaciones y los parches de seguridad se aplican a los tiempos de ejecución solo cuando se implementan o se vuelven a implementar las funciones, a menos que se indique lo contrario. Las actualizaciones sobre la implementación están disponibles tanto en Cloud Functions (1.ª gen.) como en Cloud Run Functions.
La política de actualización del tiempo de ejecución se puede cambiar con la --runtime-update-policy
marca en el comando gcloud functions deploy
.
De forma predeterminada, las actualizaciones de seguridad automáticas están habilitadas para las funciones implementadas mediante:
gcloud functions
- API Cloud Functions v2
gcloud run
con las marcas--functions
y--base-image
Definir la política de actualización de una función
Para cambiar la política de actualización de tu función, usa el siguiente comando:
gcloud functions deploy FUNCTION_NAME \ --runtime-update-policy=POLICY ...
Sustituye:
- FUNCTION_NAME con el nombre de tu función
- POLICY con
automatic
oon-deploy
Inspeccionar la política de actualización de una función
Puedes inspeccionar la política de actualización de tu función con el siguiente comando:
gcloud functions describe FUNCTION_NAME \
Donde FUNCTION_NAME es el nombre de tu función
- Las funciones que tengan habilitadas las actualizaciones de seguridad automáticas tendrán la clave
automaticUpdatePolicy
- Las funciones que se actualicen en la implementación tendrán la clave
onDeployUpdatePolicy
Análisis de seguridad en Cloud Run Functions
Las funciones de Cloud Run que tienen habilitadas las actualizaciones automáticas se basan en una imagen scratch
. Por lo tanto, el contenedor que representa tu función en Artifact Registry no tendrá una imagen base y será considerablemente más pequeño que las funciones que usen actualizaciones durante el despliegue. La imagen base se combina con la imagen de la función en tiempo de ejecución para crear una función completa. Para obtener más información, consulta Desarrollar en scratch
.