控制访问权限并保护制品

本页面介绍了可帮助您 保护制品的 Google Cloud 各项服务和功能。

静态加密

默认情况下, Google Cloud 会自动使用 Google 管理的加密密钥加密静态数据。如果您有与保护数据的密钥相关的合规性或监管要求 ,则可以创建使用 客户管理的加密密钥 (CMEK) 加密的代码库 。

访问权限控制

默认情况下,所有代码库都是私有的。请遵循最小权限安全原则,仅向用户和服务账号授予所需的最低权限

限制制品下载

您可以使用下载规则来限制制品下载。 借助下载规则,您可以允许或拒绝从代码库和软件包下载制品。您还可以设置条件,以便规则适用于特定标记或版本。

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

例如,您可以为代码库创建一条规则来拒绝所有下载,然后为软件包创建一条规则来允许从该特定软件包下载。软件包级规则优先,只有属于该软件包的制品才能从代码库下载。

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

  • Apt
  • 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 的 容器。
  • 对映像部署强制执行内部标准。 Binary Authorization 为容器映像部署到 受支持的环境提供了强制执行功能。 Google Cloud

公共 Artifact Registry 代码库

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

如果您的所有用户都有 Google Cloud 账号,则可以改为使用 allAuthenticatedUsers 身份来限制对已通过身份验证的用户的访问 。

在将 Artifact Registry 代码库公开之前,请考虑以下准则:

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

Web 应用指南

  • OWASP Top 10 列出了开放式 Web 应用安全项目 (OSWAP) 中所述的十大 Web 应用安全风险。

容器指南

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

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

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

后续步骤

详细了解依赖项管理