控制访问权限并保护工件

本页面介绍了可帮助您保护制品安全的 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 应用指南

  • OWASP Top 10 根据开放式 Web 应用安全项目 (OSWAP) 列出了最重要的 Web 应用安全风险。

容器指南

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

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

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

后续步骤

详细了解依赖项管理