Seguridad del entorno de ejecución

Cada función se ejecuta sobre una imagen de tiempo de ejecución con versiones dentro del entorno de ejecución seguro de Cloud Run Functions. Las imágenes de tiempo de ejecución contienen bibliotecas del sistema operativo, tiempos de ejecución de lenguajes y otros paquetes del sistema. Google mantiene todas las imágenes de tiempo de ejecución de las funciones de Cloud Run y lanza parches de seguridad y actualizaciones de mantenimiento después de un periodo de pruebas de estabilidad.

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 gcr.io. 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 este aspecto:

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

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.

Definir la política de actualización de una función

Si usas funciones de Cloud Run (1.ª gen.), puedes cambiar la política de actualización de tu función incluyendo la marca --runtime-update-policy en tu comando gcloud deploy, como se muestra a continuación:

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

Sustituye:

  • FUNCTION_NAME con el nombre de tu función
  • POLICY con automatic o on-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

Identificar la imagen de tiempo de ejecución usada después de una actualización automática

Cuando habilitas las actualizaciones automáticas, Cloud Run Functions sustituye la imagen del entorno de ejecución de tu función por una revisión más reciente que contiene parches y actualizaciones de seguridad adicionales. Este cambio aparece en los registros de tiempo de ejecución de tu función.

En los registros de tiempo de ejecución, la etiqueta runtime_version indica cuándo se está usando una nueva imagen de tiempo de ejecución en tu función. Una entrada de registro de una función de Node.js que se ha actualizado automáticamente podría tener este aspecto:

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