Seguridad del entorno de ejecución
En esta página, se proporciona información complementaria sobre las políticas de actualización de seguridad en las funciones creadas con los comandos gcloud functions
o la API de Cloud Functions v2.
Para obtener una descripción detallada de cómo configurar actualizaciones automáticas para las imágenes base, incluidos los entornos de ejecución de lenguaje, el paquete del SO y el sistema operativo, consulta el documento de Cloud Run Cómo configurar actualizaciones automáticas de imágenes base.
Imágenes del entorno de ejecución
Cada entorno de ejecución tiene una imagen de entorno de ejecución asociada (también conocida como imagen de ejecución) en un repositorio público en Artifact Registry. Para obtener una lista de los IDs de entorno de ejecución y sus imágenes, consulta Entornos de ejecución.
Identifica la imagen del entorno de ejecución
Puedes identificar la imagen del entorno de ejecución que se usa para crear tu función mediante la inspección de los registros de compilación de tu función.
En los registros de compilación, busca google.run-image
. Esto te brinda la entrada de registro del paso de compilación que describe la versión de la imagen del entorno de ejecución que se usa para compilar tu función. Por ejemplo, una entrada de registro para una función de Nodejs podría verse de la siguiente manera:
{
...
"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 actualización de seguridad
Puedes elegir una de las siguientes políticas de actualización de seguridad:
Actualizaciones automáticas (predeterminadas): Las actualizaciones y los parches de seguridad del entorno de ejecución se publican en versiones nuevas de la imagen del entorno de ejecución. Después de un período de prueba de estabilidad y confiabilidad, el entorno de ejecución actualizado se implementa en todas las funciones, lo que da como resultado una actualización sin tiempo de inactividad. Las actualizaciones automáticas de seguridad están disponibles con las funciones de Cloud Run (1ª gen.) y funciones de Cloud Run. Para implementar correcciones de seguridad a nivel del lenguaje, es posible que debas volver a compilar funciones que usen lenguajes compilados, como Go o Java.
Actualizaciones de implementación: Las actualizaciones y los parches de seguridad se aplican a los entornos de ejecución solo cuando se implementan o vuelven a implementar funciones, a menos que se indique lo contrario. Las actualizaciones en la implementación están disponibles en las funciones de Cloud Run (1ª gen.) y funciones de Cloud Run.
La política de actualización del entorno de ejecución se puede cambiar con la marca --runtime-update-policy
en el comando gcloud functions deploy
.
De forma predeterminada, las actualizaciones de seguridad automáticas están habilitadas para las funciones implementadas con lo siguiente:
gcloud functions
- API de Cloud Functions v2
gcloud run
con la marca--functions
y la marca--base-image
Configura la política de actualización de tu función
Puedes cambiar la política de actualización de tu función con el siguiente comando:
gcloud functions deploy FUNCTION_NAME \ --runtime-update-policy=POLICY ...
Reemplaza lo siguiente:
- FUNCTION_NAME por el nombre de la función
- POLICY por
automatic
oon-deploy
Inspecciona la política de actualización de tu función
Puedes inspeccionar la política de actualización de la función con el siguiente comando:
gcloud functions describe FUNCTION_NAME \
Donde FUNCTION_NAME es el nombre de tu función.
- Las funciones con actualizaciones de seguridad automáticas habilitadas tendrán la clave
automaticUpdatePolicy
- Las funciones que se actualizan en la implementación tendrán la clave
onDeployUpdatePolicy
Análisis de seguridad en funciones de Cloud Run
Las funciones de Cloud Run que tienen habilitadas las actualizaciones automáticas se compilan sobre una imagen de scratch
. Como resultado, 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 usan actualizaciones en la implementación. La imagen base se combina con la imagen de la función en el tiempo de ejecución para crear una función completa. Para obtener más información, consulta Cómo compilar en scratch
.