执行环境安全性

本页面提供了有关使用 gcloud functions 命令或 Cloud Functions v2 API 创建的函数的安全更新政策的补充信息。

如需详细了解如何为基础映像设置自动更新(包括语言运行时、操作系统软件包和操作系统),请参阅 Cloud Run 文档配置自动基础映像更新

运行时映像

每个运行时均在 Artifact Registry 上的公共存储库中具有关联的运行时映像(也称为运行映像)。如需查看运行时 ID 及其运行时映像的列表,请参阅运行时

确定运行时映像

您可以通过检查函数的构建日志来确定用于创建函数的运行时映像。

在构建日志中,搜索 google.run-image。这样,您便可以获得来自构建步骤的日志条目,其中描述了用于构建函数的运行时映像的版本。例如,Nodejs 函数的日志条目可能如下所示:

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

安全更新政策

您可以选择以下安全更新政策之一:

  • 自动更新(默认):运行时环境的更新和安全补丁会在新版本的运行时映像中发布。在经过一段时间的稳定性和可靠性测试后,更新后的运行时会部署到所有函数,从而使更新停机时间为零。Cloud Run functions(第 1 代)和 Cloud Run functions 提供自动安全更新。如需进行语言级安全修复,您可能需要重新构建使用编译语言(如 Go 或 Java)的函数。

  • 在部署更新时:除非另有说明,否则更新或安全补丁仅在部署或重新部署函数时应用于运行时。部署时更新同时适用于 Cloud Run functions(第 1 代)和 Cloud Run functions。

可以在 gcloud functions deploy 命令中使用 --runtime-update-policy 标志来更改运行时更新政策。

默认情况下,对于使用以下方式部署的函数,自动安全更新处于启用状态:

设置函数的更新政策

您可以使用以下命令更改函数的更新政策:

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

您需要进行如下替换:

  • FUNCTION_NAME 替换为函数的名称
  • POLICY 替换为 automaticon-deploy

检查函数的更新政策

您可以使用以下命令检查函数的更新政策:

  gcloud functions describe FUNCTION_NAME \

其中 FUNCTION_NAME 是函数的名称

  • 启用了自动安全更新的函数将具有键 automaticUpdatePolicy
  • 在部署时更新的函数将具有键 onDeployUpdatePolicy

Cloud Run functions 的安全扫描

启用了自动更新的 Cloud Run functions 函数基于 scratch 映像构建。因此,在 Artifact Registry 中表示函数的容器没有基础映像,并且远远小于使用部署时更新的函数。基础映像会在运行时与函数映像组合起来,以创建完整的函数。如需了解详情,请参阅scratch 上构建