本文档介绍了如何为 Software Delivery Shield 启用 API,以及查看安全性数据分析所需的权限。Software Delivery Shield 是 Google Cloud 上的全代管式软件供应链安全解决方案。
启用数据分析所需的 API
如需收集和查看软件供应链数据洞见,需要以下 API:
- Container Analysis API 用于存储其他 Google Cloud 服务生成和使用的元数据。
- Container Scanning API,可用于扫描存储在 Artifact Registry 中的容器映像是否存在漏洞和其他元数据。启用此 API 会自动启用 Container Analysis API。
- 存储构建工件的 Artifact Registry。1
- Cloud Build 以生成构建来源元数据。
- (仅限 GKE)用于扫描正在运行的工作负载以查找操作系统漏洞的 Container Security API。
您必须在 Artifact Registry 所在的 Google Cloud 项目中运行 Container Scanning API。您可以在单独的项目中运行使用该注册表的其他 Google Cloud 服务。
1 Container Registry 由 Container Scanning API 自动启用。Software Delivery Shield 为现有功能提供有限的数据,并且不支持非公开预览版中的部分功能。如果您目前在使用 Container Registry,请考虑转换到 Artifact Registry。
要启用生成和查看数据分析所需的 API,请执行以下操作:
控制台
使用同一项目中的所有服务
一起启用所需的 API。
使用单独的项目
在要运行 Artifact Registry 的项目中启用 Container Scanning 和 Artifact Registry。
在运行 Cloud Build 的项目中启用 Cloud Build API。
在运行 GKE 的项目中启用 Container Security API。
Google Cloud CLI
使用同一项目中的所有服务
一起启用所需的 API。
gcloud services enable containerscanning.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
containersecurity.googleapis.com
使用单独的项目
在要运行 Artifact Registry 的项目中启用 Container Scanning 和 Artifact Registry。将
AR_PROJECT
替换为相应的 Google Cloud 项目 ID。gcloud services enable containerscanning.googleapis.com \ artifactregistry.googleapis.com \ --project=AR_PROJECT
在运行 Cloud Build 的项目中启用 Cloud Build API。将
BUILD_PROJECT
替换为相应的 Google Cloud 项目 ID。gcloud services enable cloudbuild.googleapis.com \ --project=BUILD_PROJECT
在运行 GKE 的项目中启用 Container Security API。将
GKE_PROJECT
替换为相应的 Google Cloud 项目 ID。gcloud services enable containersecurity.googleapis.com \ --project=BUILD_PROJECT
您已在软件交付护盾面板和 Google Cloud Console 的 GKE 安全状况信息中心中启用了生成和查看数据分析所需的最低 API 数。
您可以通过 API 库或 gcloud services enable 命令为其他服务启用 API。
授予查看数据分析的权限
如需在 Google Cloud Console 中查看 Software Delivery Shield 数据分析,您必须拥有以下角色或具有同等权限的角色:
- Cloud Build Viewer (
roles/cloudbuild.builds.viewer
):查看构建的数据分析。 - Container Analysis Occurrences Viewer (
roles/containeranalysis.occurrences.viewer
):查看漏洞、build 来源和其他依赖项信息。 - Cloud Run Viewer (
roles/run.viewer
):查看 Cloud Run 修订版本的数据分析。 - Kubernetes Engine Cluster Viewer (
roles/container.clusterViewer
):查看 GKE 集群的数据分析。
这些权限提供对数据洞见的访问权限,但不提供执行其他操作(例如在 Cloud Build 中运行构建)的权限。
- 如需详细了解特定服务所需的权限,请参阅该服务的文档。
- 如需了解如何授予权限,请参阅关于向项目授予权限的 Identity and Access Management 文档。
默认情况下,许多服务对同一项目中的其他服务拥有默认权限,但无法访问其他项目中的资源。如果您在不同的 Google Cloud 项目中运行服务,或者使用的是自定义 IAM 角色或自定义服务帐号,则必须自行授予适当的权限。
示例 1
Cloud Build、Artifact Registry、Container Analysis 和 Cloud Run 均在同一项目中运行。每项服务都使用默认服务帐号来代表服务执行操作,并且默认权限保持不变。这些服务可以协同工作,而无需更改权限,但您需要向需要在项目中查看数据分析的用户授予权限。
- 服务之间的权限
无需进行任何更改:
- 默认的 Cloud Build 服务帐号有权使用 Artifact Registry 上传和下载数据,以及读取 Container Analysis 的数据分析数据,因此该服务可以使用 build 出处对容器映像进行签名,并将其推送到 Artifact Registry。
- Cloud Run 修订版本使用 Compute Engine 默认服务帐号进行部署,该帐号有权从 Artifact Registry 下载映像并从 Container Analysis 读取数据分析数据。
- 查看数据分析的用户权限
您必须向 Cloud Build 和 Cloud Run 用户授予必需角色才能查看数据分析。
示例 2
当 Artifact Registry 和 Container Analysis 与其他 Google Cloud 服务在不同项目中运行时,您必须为所有跨项目活动明确授予权限。请参考以下项目设置:
- Cloud Build 在项目 A 中运行
- 在项目 B 中运行 Artifact Registry 和 Container Analysis
- Cloud Run 在项目 C 中运行
- 服务之间的权限
如果未明确向代表这些服务的服务帐号授予访问权限,Cloud Build 和 Cloud Run 将无法访问其他项目中的资源。您必须在存储工件和工件元数据的项目 B 中授予适当的 Artifact Registry 权限和 Container Analysis 权限。
对于 Cloud Build,您必须在项目 B 中授予以下角色:
- Artifact Registry Writer (
roles/artifactregistry.writer
) 授予上传和下载权限。 - Container Analysis Occurrences Viewer (
roles/containeranalysis.occurrences.viewer
) 可授予显示数据分析的权限。
- Artifact Registry Writer (
对于 Cloud Run,您必须在项目 B 中授予以下角色:
- Artifact Registry Reader (
roles/artifactregistry.reader
) 会授予下载部署的权限。 - Container Analysis Occurrences Viewer (
roles/containeranalysis.occurrences.viewer
) 可授予显示数据分析的权限。
- Artifact Registry Reader (
- 查看数据分析的用户权限
在项目 B 中,您必须向 Cloud Build 和 Cloud Run 用户授予具有所需角色的查看数据分析。