控制访问权限并保护工件

本页介绍了可帮助您保护工件的 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 制品库

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

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

在将 Artifact Registry 仓库设为公开之前,请考虑以下准则:

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

适用于 Web 应用的指南

容器指南

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

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

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

后续步骤

详细了解依赖项管理