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 会提供缓存的副本。
- 虚拟:充当多个上游制品库(包括连接器制品库和标准制品库)的单一访问点的制品库。