执行环境安全性
本页面提供了有关使用 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
- Cloud Functions v2 API
- 带有
--functions
标志和--base-image
标志的gcloud run
设置函数的更新政策
您可以使用以下命令更改函数的更新政策:
gcloud functions deploy FUNCTION_NAME \ --runtime-update-policy=POLICY ...
您需要进行如下替换:
- 将 FUNCTION_NAME 替换为函数的名称
- 将 POLICY 替换为
automatic
或on-deploy
检查函数的更新政策
您可以使用以下命令检查函数的更新政策:
gcloud functions describe FUNCTION_NAME \
其中 FUNCTION_NAME 是函数的名称
- 启用了自动安全更新的函数将具有键
automaticUpdatePolicy
- 在部署时更新的函数将具有键
onDeployUpdatePolicy
Cloud Run functions 的安全扫描
启用了自动更新的 Cloud Run functions 函数基于 scratch
映像构建。因此,在 Artifact Registry 中表示函数的容器没有基础映像,并且远远小于使用部署时更新的函数。基础映像会在运行时与函数映像组合起来,以创建完整的函数。如需了解详情,请参阅在 scratch
上构建。