添加与外部镜像仓库的集成
集成的仓库仅支持直接包含镜像的本地镜像存储库。在版本 2.0 中,卡巴斯基容器安全不支持使用远程或虚拟存储库。
要添加与外部仓库的集成:
- 在“管理 → 集成 → 镜像仓库”部分中,单击“添加仓库”按钮。
将打开集成设置窗口。
- 在“仓库详细信息”选项卡上,指定连接到仓库的设置:
- 输入仓库的名称。
- 如果需要,请输入仓库的描述。
- 从下拉列表中选择仓库类型。卡巴斯基容器安全支持以下类型的仓库:
- Harbor(使用 Harbor V2 API 进行集成)。
- GitLab Registry(使用 GitLab Container Registry API 进行集成)。
- JFrog Artifactory(使用 JFrog API 进行集成)。
- Sonatype Nexus Repository OSS(使用 Nexus API 进行集成)。
- Yandex Registry(使用 Yandex Container Registry API 进行集成)。
- Docker Hub(使用 Docker Hub API 进行集成)。
- Docker Registry(使用 Docker Registry V2 API 进行集成)。
- Red Hat Quay(使用 Red Hat Quay API 集成)。
- Amazon Elastic Container Registry(使用 Amazon Elastic Container Registry API 进行进程)。
如果配置与 Sonatype Nexus Repository OSS、Harbor、JFrog Artifactory(使用端口或子域)或 Yandex Registry 的集成,可以使用 Docker Registry V2 API 访问 Docker 仓库。与 GitLab Registry、Docker Hub 和 JFrog Artifactory 进行集成(通过存储库路径) 不受支持。
- 如果您设置了 JFrog Artifactory 注册表集成,请在“存储库路径”方法下拉列表中选择以下方法之一来访问 Docker:
- 存储库路径。
- 子域。
- 端口。
- 如果配置与 Sonatype Nexus Repository OSS 仓库的集成,请选择拉取模式:标记的镜像或所有镜像。如果选择了所有镜像模式,解决方案将提取所有仓库镜像,无论它们是否有标签。未标记的镜像与内部版本哈希一起显示。
- 如果配置与 JFrog Artifactory、Harbor、GitLab Registry、Sonatype Nexus Repository OSS、Docker Registry 或者 Red Hat Quay 等仓库的集成,请输入直接指向容器仓库的仓库的完整 URL。我们建议使用 HTTPS 连接(也支持 HTTP 连接)。
如果使用 HTTP 或者带自签名证书或无效证书的 HTTPS,则应在安装了服务器和扫描器的节点上选中 Docker 引擎的不安全仓库框。
- 如果配置与 JFrog Artifactory、Harbor、GitLab Registry、Sonatype Nexus Repository OSS 或者 Red Hat Quay 等仓库的集成,请输入指向仓库 API 的完整 URL。
- 选择一种身份验证方法并指定必要的数据,如下所示:
- 如果您配置与 GitLab Registry 等仓库的集成,请选择使用帐户或访问令牌进行身份验证。
- 如果您配置与 Yandex Registry 等仓库的集成,请选择使用 API 密钥(Yandex OAuth 令牌)或使用用户名和令牌进行身份验证。使用 Yandex OAuth 令牌时,为用户名指定oauth;使用 Yandex IAM 令牌时,为用户名指定iam。
- 对于 Sonatype Nexus Repository OSS 和 Docker Hub 等仓库,仅使用账户进行身份验证。
- 对于像 Harbor 这样的仓库,只允许使用用户或机器人的账户进行身份验证。
- 对于Docker Registry 这样的仓库,身份验证仅使用用户名和密码进行,用户名和密码由 Docker V2 API 提供。
- 对于 Red Hat Quay 仓库,组织名称和访问令牌是唯一的身份验证方法。请在组织名称和OAuth 令牌字段中指定这些参数。
- 对于 Amazon Elastic Container 仓库,您可以通过指定地区、访问密钥 ID 和 Secret 访问密钥进行身份验证。
在地区字段中,您必须指定一个 Amazon Web Services 地区(例如, us-west-2 或 us-east-2)。
对于访问密钥 ID 和访问密钥设置,您必须使用 AWS 管理控制台指定可以获取的值。
- 必要时,转到存储库缓存 选项卡并使用已禁用/已启用拨动开关来启用存储库缓存。如果缓存被禁用,则仅当使用搜索字段时才会显示仓库部分中的存储库和镜像。如果缓存已启用,解决方案将显示可用的存储库和镜像列表。默认储存库被禁用。
启用存储库缓存可能影响卡巴斯基容器安全的性能。
- 转到镜像扫描详情选项卡并指定以下镜像扫描设置:
- 对于此仓库的镜像的扫描超时(以分钟为单位)。默认扫描超时为 60 分钟。
如果镜像扫描持续时间超过指定时间,扫描将停止,并且镜像将返回扫描队列。解决方案会将镜像重新排队最多 3 次。这意味着扫描仓库中镜像所需的时间可能会增加两倍。
仓库的镜像拉取和扫描设置。默认情况下,在“拉取并扫描镜像”中已选择“手动”选项:镜像不会自动从仓库中拉取,但用户可以手动将镜像添加到镜像列表中进行扫描。新镜像会自动排队等待扫描。
如果您希望自动从仓库中拉取镜像并使其排队等待扫描,请在“拉取并扫描镜像”中选择“自动”,并配置镜像拉取和扫描的设置。以下选项可用:
- 扫描间隔(天)是供扫描的仓库的镜像拉取间隔(以天为单位)。默认设置为 1 天。
- 扫描时间 (GMT) 是仓库中的镜像被扫描的时间。
- 如有必要,每次扫描新镜像时选择复选框重新扫描之前拉取的镜像。
- 如有必要,在高级设置下面,选择名称 / 标签标准复选框来使用镜像名称或标签样式指定想要拉取或扫描的镜像。如果选中此复选框,卡巴斯基容器安全将仅拉取与指定模式匹配的镜像并进行扫描。
您可以使用以下模式:
- 按镜像名称和标签 – <名称><:标签>
- 仅按镜像名称 – <名称>
- 仅按镜像标签 – <:标签>
例如:
- 对于
alpine
模式,所有名称为“alpine”的镜像都会被拉取,无论标签为何; - 对于
4
模式,所有带有标签 4 的镜像都会被拉取,无论镜像名称为何; - 对于
alpine:4
模式,所有名称为“alpine”且带有标签 4 的镜像都会被拉取。
生成模式时,可以使用 * 字符来替代任意数量的字符。
您可以添加一个或多个模式。
- 选择附加条件之一拉取镜像:
- 如果不需要附加条件,请选择“无附加条件”。
- 如果您只想拉取在特定时间框架内创建的镜像,请选择此选项并在右侧的字段中指定时间段的持续时长和计量单位。默认情况下,期间为 60 天。
- 如果您只想下载包含最新标签的镜像,从创建镜像的日期开始计数,选择此选项并在右侧的字段中指定想要考虑多少个每个仓库的最新标签。
- 如有必要,在例外下面,选择或者清除复选框以指定镜像拉取的例外:
- 从不拉取具有名称/标签模式的镜像 – 使用您可以指定的镜像名称/标签模式,这些镜像将从拉取和扫描中排除。
- 始终拉取具有名称/标签模式的镜像 – 使用您可以指定的镜像名称/标签模式,始终拉取和扫描这些镜像,无论上面设置的其他条件如何。
- 对于此仓库的镜像的扫描超时(以分钟为单位)。默认扫描超时为 60 分钟。
- 单击“测试连接”以查看是否可以建立与仓库的连接。
- 单击窗口顶部的“保存”按钮保存仓库集成设置。