控制访问权限并保护制品

本页介绍了可帮助您保护工件的 Google Cloud 服务和功能。

静态加密

默认情况下,Google Cloud 会使用 Google 管理的加密密钥自动加密静态数据。有特定的合规性或监管要求 与保护数据的密钥相关 使用客户管理的加密密钥 (CMEK) 进行加密。

访问权限控制

默认情况下,所有代码库都是私有的。遵循 并且仅授予 需要满足哪些要求。

限制制品下载

您可以使用下载规则限制工件下载。 通过下载规则,您可以允许或拒绝从您的代码库下载制品 和软件包。您还可以设置条件,以便将规则应用于特定代码或版本。

对于项目中的每个代码库,您都可以在 并为每个软件包创建一条下载规则。当客户端尝试 Artifact Registry 会先检查 工件的软件包中如果不存在规则,或者规则的条件不适用于工件,Artifact Registry 会在代码库中检查是否存在规则。

例如,您可以为您的代码库创建一条规则,以拒绝所有下载、 然后为软件包创建规则 软件包。软件包级规则优先,且仅属于 即可从代码库中下载该软件包

下载规则适用于所有代码库模式和以下 代码库格式:

  • Docker
  • Go
  • Maven
  • npm
  • Python

防止数据渗漏

如需防止数据渗漏,您可以使用 VPC Service Controls 将 Artifact Registry 和其他 Google Cloud 服务放置在网络安全边界中。

漏洞扫描

Artifact Analysis 可以扫描容器映像是否存在公开监控的软件包中的安全漏洞。

您可以使用以下选项:

自动漏洞扫描
启用后,此功能可识别 容器映像在将图片上传到 Artifact Registry 和持续监控数据,以发现 在推送映像后长达 30 天的时间里修复漏洞。
On-Demand Scanning API
启用后,您可以手动扫描本地映像或存储在 Artifact Registry 中的映像。此功能可帮助您在构建流水线的早期阶段检测并解决漏洞。例如,你可以使用 Cloud Build 扫描映像 构建而成, 禁止上传到 Artifact Registry (如果扫描检测到指定严重级别的漏洞)。如果您还启用了自动漏洞扫描,Artifact Analysis 还会扫描您上传到注册表的映像。

部署政策

您可以使用 Binary Authorization 来配置 部署政策时,该服务将强制执行政策, 容器映像迁移到某个受支持的 Google Cloud 环境

例如,您可以配置 Binary Authorization,以仅允许在映像已签名且符合漏洞扫描政策的情况下进行部署。

移除未使用的映像

移除未使用的容器映像以降低存储费用并降低使用旧版软件的风险。您可以使用许多工具来帮助完成此任务,包括 gcr-cleaner。gcr-cleaner 工具并非 Google 官方产品。

更早将安全性纳入软件开发流程

将信息安全目标整合到日常工作中有助于提升软件交付性能并构建更安全的系统。这个想法也 也就是“左移”,因为安全问题(包括安全问题) 在软件开发生命周期的早期阶段(即留在软件开发生命周期中, 从左到右的时间表图)。“提前测试安全性”是 DORA DevOps 现状研究项目中确定的 DevOps 能力之一。

如需了解详情,请参阅以下内容:

公共代码库的注意事项

请仔细考虑以下情况:

  • 使用公共来源的工件
  • 公开您自己的 Artifact Registry 代码库

使用来自公共来源的制品

以下工件公共来源提供了您可能使用的工具或构建和部署的依赖项:

但是,您的组织可能存在限制, 公开工件例如:

  • 您希望控制软件供应链的内容。
  • 不希望依赖外部代码库。
  • 需要严格控制生产环境中的漏洞。
  • 需要在每个映像中使用相同的基本操作系统。

考虑采用以下方法来保护软件供应链:

  • 设置自动构建,确保您的工件具有一致、已知 内容。您可以使用 Cloud Build 构建触发器或其他持续集成工具。
  • 使用标准化基础映像。Google 提供了一些可供您使用的基础映像
  • 解决工件中的漏洞。您可以使用 On-Demand Scanning API 扫描容器映像,检查是否存在漏洞,然后再将其存储在 Artifact Registry 中。Artifact Analysis 还可以 推送到 Artifact Registry 的容器

公共 Artifact Registry 制品库

如需公开 Artifact Registry 代码库,您可以向 将 Artifact Registry Reader 角色授予 allUsers 身份。

如果所有用户都有 Google Cloud 账号,您可以改用 allAuthenticatedUsers 身份来限制经过身份验证的用户的访问权限。

在将工件注册库仓库设为公开之前,请考虑以下准则:

  • 验证您存储在代码库中的所有制品是否可公开共享 且不会泄露凭据、个人数据或机密数据。
  • 默认情况下,项目的每位用户配额不受限制。为防止滥用,请为项目中的每位用户配额设置上限
  • 当用户下载工件时,您需要支付网络数据传输费用。如果您预计会产生大量互联网下载流量,请考虑相关费用。

适用于 Web 应用的指南

容器指南

  • 互联网安全中心 (CIS) 提供一项 Docker 基准,用于评估 Docker 容器的安全性。

    Docker 提供了一个名为 Docker Bench for Security 的开源脚本。您可以使用该脚本根据 CIS Docker 基准验证正在运行的 Docker 容器。

    Docker Bench For Security 可以帮助您验证 CIS Docker 基准中的很多项,但并非所有项都可通过该脚本进行验证。例如,该脚本无法验证容器的主机是否经过了安全强化,或者容器映像是否包含个人数据。查看该基准中的所有项,并找出可能需要额外验证的项。

后续步骤

详细了解依赖项管理