连接器代码库概览

Artifact Registry 连接器代码库充当上游来源的代理。 对代码库的所有请求都会代理到上游来源,并且 Artifact Registry 中不会缓存任何制品。 此配置可实现对上游来源的全面可审核性,并支持第三方政策禁止制品缓存的情况。

本文档介绍了连接器代码库的工作原理,并提供了多个使用情形。如需了解如何创建连接器代码库,请参阅创建连接器代码库

支持的连接器格式

Artifact Registry 仅支持 Docker 格式的连接器代码库。

上游身份验证

Artifact Registry 连接器仓库需要对上游来源进行基本身份验证。如需详细了解如何对连接器仓库上游来源进行身份验证,请参阅配置对连接器仓库上游的身份验证

如果您从不存在或不包含您指定版本的上游来源请求制品,则请求将失败。

使用场景和优势

完整的上游可审计性
连接器代码库不会在 Artifact Registry 中缓存任何软件包,因此所有代码库请求都会直接发送到上游来源。如果您的代码库配置需要对上游来源进行完全可审计性,或者您必须遵守禁止制品缓存的第三方政策,则此流程非常有用。
更安全的依赖项解析

将连接器代码库与虚拟代码库搭配使用,以降低与公共依赖项相关的风险。某些工具在客户端中配置了私有和公共代码库的混合模式时,无法提供控制搜索顺序的方法。此类配置容易受到依赖项混淆攻击,攻击者会将包含恶意代码的软件包的新版本上传到公共代码库,以诱骗客户端选择恶意版本。

您可以配置虚拟制品库,以优先于连接器制品库使用您的私有制品库,而无需直接配置客户端来搜索多个制品库。

如果 Artifact Registry 位于 VPC Service Controls 服务边界内,Artifact Registry 默认会拒绝访问该边界外的上游来源。您可以允许特定位置的连接器仓库访问其配置的外部来源(即使这些来源位于安全边界之外)。 如需查看相关说明,请参阅 VPC Service Controls 配置

如需了解其他依赖项管理最佳实践,请参阅依赖项管理

更新了软件包索引和元数据

当可变文件(例如软件包索引和元数据)的年龄超过默认年龄时,系统会从上游来源更新这些文件。下表列出了特定文件类型的默认值:

格式 文件类型 默认更新年龄
Docker 列出/获取标记缓存 1 小时

Artifact Registry 连接器仓库上游

您可以使用 Docker Hub 作为连接器代码库来源,也可以输入自定义代码库网址。下表显示了一些常见上游 Docker URI 的部分列表:

格式 上游 URI 注册数据库名称
Docker https://MY_ARTIFACTORY_INSTANCE.jfrog.io/OPTIONAL_REPO JFrog Artifactory
Docker https://ghcr.io GitHub Container Registry
Docker https://registry-1.docker.io Docker Hub
Docker https://public.ecr.aws AWS ECR 公共图库
Docker https://registry.k8s.io Kubernetes Container Registry
Docker https://MY_NEXUS_IP Nexus

限制

除了 Artifact Registry 配额和限制之外,连接器代码库还存在以下限制:

  • 上游来源必须可通过互联网访问。连接器代码库不支持没有公共 IP 地址的本地或虚拟私有云 (VPC) 网络上游来源。

其他代码库模式

其他代码库模式如下:

  • 标准:默认的代码库模式。您可以将私有软件包等制品直接上传或发布到标准制品库。虽然您可以直接从各个标准代码库下载,但通过虚拟代码库访问代码库组可简化工具配置。
  • 远程:通过在从上游来源首次下载软件包后将其缓存到 Artifact Registry 中,充当上游来源的代理的仓库。当您下次请求同一软件包版本时,Artifact Registry 会提供缓存的副本。
  • 虚拟:充当多个上游制品库(包括连接器制品库和标准制品库)的单一访问点的制品库。

后续步骤