Software Delivery Shield 使用入门

本文档介绍了如何为 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。

启用 API

使用单独的项目

  1. 在要运行 Artifact Registry 的项目中启用 Container Scanning 和 Artifact Registry。

    启用 API

  2. 在运行 Cloud Build 的项目中启用 Cloud Build API。

    启用 Cloud Build

  3. 在运行 GKE 的项目中启用 Container Security API。

    启用容器安全

Google Cloud CLI

使用同一项目中的所有服务

一起启用所需的 API。

gcloud services enable containerscanning.googleapis.com \
    cloudbuild.googleapis.com \
    artifactregistry.googleapis.com \
    containersecurity.googleapis.com

使用单独的项目

  1. 在要运行 Artifact Registry 的项目中启用 Container Scanning 和 Artifact Registry。将 AR_PROJECT 替换为相应的 Google Cloud 项目 ID。

    gcloud services enable containerscanning.googleapis.com \
        artifactregistry.googleapis.com \
        --project=AR_PROJECT
    
  2. 在运行 Cloud Build 的项目中启用 Cloud Build API。将 BUILD_PROJECT 替换为相应的 Google Cloud 项目 ID。

    gcloud services enable cloudbuild.googleapis.com \
        --project=BUILD_PROJECT
    
  3. 在运行 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 中运行构建)的权限。

  • 如需详细了解特定服务所需的权限,请参阅该服务的文档。
  • 如需了解如何授予权限,请参阅关于向项目授予权限的 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) 可授予显示数据分析的权限。

对于 Cloud Run,您必须在项目 B 中授予以下角色:

  • Artifact Registry Reader (roles/artifactregistry.reader) 会授予下载部署的权限。
  • Container Analysis Occurrences Viewer (roles/containeranalysis.occurrences.viewer) 可授予显示数据分析的权限。
查看数据分析的用户权限

在项目 B 中,您必须向 Cloud Build 和 Cloud Run 用户授予具有所需角色的查看数据分析。

后续步骤