View a markdown version of this page

向 Amazon ECR 注册表提出请求 - Amazon ECR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

向 Amazon ECR 注册表提出请求

您可以使用 IPv4-only 终端节点或双堆栈(IPv4 和 IPv6)终端节点推送、提取、删除、查看和管理 Amazon ECR 私有注册表中的 OCI 映像、Docker 映像和 OCI-compatible项目。要从 IPv4 网络发出请求,您可以使用双堆栈或 IPv4 端点。要从 IPv6 网络发出请求,您可以使用双堆栈端点。有关使用 IPv4 和双堆栈端点向 Amazon ECR 公共注册表发出请求的更多信息,请参阅向 Amazon ECR 公共注册表发出请求。通过 IPv6 访问 Amazon ECR 不额外收费。有关定价的更多信息,请参阅 Amazon Elastic Container Registry 定价

Amazon ECR 终端节点由终端 IPv4-only 节点或双栈终端节点支持的属性指定。这些属性可以包括:

  • 区域 - 每个端点都特定于一个区域。

  • 类型 — 端点的选择取决于您使用的是 AWS SDK 还是 OCI-compatible 和 Docker 命令行接口。

  • 安全 — Amazon ECR 在部分地区提供 FIPS-compliant 终端节点。有关 FIPS-compliant Amazon ECR 终端节点列表的更多信息,请参阅联邦信息处理标准 (FIPS) 140-3。

有关 IPv4、双堆栈、Docker 和 OCI 客户端支持的服务终端节点的更多信息,这些客户端处理来自 CL AWS I 和 AWS 软件开发工具包的 Amazon ECR API 调用,请参阅服务终端节点。

通过 IPv6 发出请求入门

要通过 IPv6 向 Amazon ECR 注册表发出请求,您需要使用双堆栈端点。在通过 IPv6 访问 Amazon ECR 注册表之前,请验证以下要求:

  • 您的客户端和网络必须支持 IPv6。

  • Amazon ECR 通过 IPv6 支持以下请求类型:

    • OCI 和 Docker 客户端请求:

      <registry-id>.dkr-ecr.<aws-region>.on.aws

    • AWS API 请求:

      ecr.<aws-region>.api.aws

  • 您必须更新使用源 IP 地址筛选的任何 AWS Identity and Access Management (IAM) 或注册表策略,以包括 IPv6 地址范围。有关更多信息,请参阅 在 IAM 策略中使用 IPv6 地址

  • 当您使用 IPv6 时,服务器访问日志以 IPv6 格式显示 Remote IP 地址。更新现有工具、脚本和软件以解析这些 IPv6-formatted IP 地址。

    注意

    如果在日志文件中遇到与 IPv6 地址相关的问题,请联系 AWS 支持

测试 IP 地址兼容性

如果您使用的是 use Linux/Unix 或 Mac OS X,则可以使用以下示例所示的curl命令测试是否可以通过 IPv6 访问双栈端点:

curl --verbose https://ecr.us-west-2.api.aws

您获得的信息如下例所示。如果通过 IPv6 连接,则连接的 IP 地址将会是 IPv6 地址。

* About to connect() to ecr.us-west-2.api.aws port 443 (#0) * Trying IPv6 address... connected * Connected to ecr.us-west-2.api.aws (IPv6 address) port 443 (#0) > Host: ecr.us-west-2.api.aws * Request completely sent off

如果使用 Microsoft Windows 7 或 Windows 10,则通过使用下例所示的 ping 命令,可以测试您能否通过 IPv4 或 IPv6 访问双堆栈端点。

ping ecr.us-west-2.api.aws

使用双堆栈端点通过 IPv6 发出请求

您可以使用双堆栈端点通过 IPv6 进行 Amazon ECR API 调用。无论您使用 IPv4 还是 IPv6,Amazon ECR API 操作的功能和性能都保持一致。

使用 AWS Command Line Interface (AWS CLI) 和 AWS 软件开发工具包时,您可以启用 IPv6,方法是使用参数或标志切换到双堆栈终端节点,或者直接在配置文件中指定双堆栈终端节点以覆盖默认 Amazon ECR 终端节点。您也可以使用命令进行配置更改,在默认配置文件中将 use_dualstack_endpoint 设置为 true。有关更多信息use_dualstack_endpoint,请参阅Dual-stack 和 FIPS 端点

例使用命令更改配置

aws configure set default.ecr.use_dualstack_endpoint true

例使用通过 IPv6 发出请求 AWS CLI

aws ecr describe-repositories --region us-west-2 --endpoint-url https://ecr.us-west-2.api.aws

从 docker CLI 使用 Amazon ECR 端点

登录您的 Amazon ECR 存储库并标记映像后,您可以向 Amazon ECR 注册表推送和从其拉取 OCI 映像和 Docker 映像。以下示例演示了使用两个双堆栈端点的 docker push 和 Docker 拉取命令。

例使用 IPv4 端点推送 docker 映像

docker push <registry-id>.dkr.ecr.us-west-1.amazonaws.com/my-repository:tag

例使用双堆栈端点推送 docker 映像

docker push <registry-id>.dkr-ecr.us-west-1.on.aws/my-repository:tag

例使用 IPv4 端点拉取 docker 映像

docker pull <registry-id>.dkr.ecr.us-west-1.amazonaws.com/my-repository:tag

例使用双堆栈端点拉取 docker 映像

docker pull <registry-id>.dkr-ecr.us-west-1.on.aws/my-repository:tag

在 IAM 策略中使用 IPv6 地址

在使用 IPv6 访问注册表之前,请确保使用 IP 地址筛选的 IAM 用户和 Amazon ECR 注册策略包含 IPv6 地址范围。如果未更新为处理 IPv6 地址的 IP 地址筛选策略,则客户端在开始使用 IPv6 时,可能会错误地丢失或获得注册表访问权限。有关使用 IAM 管理访问权限的更多信息,请参阅 适用于 Amazon Elastic Container Registry 的 Identity and Access Management

筛选 IP 地址的 IAM 策略使用 IP 地址条件运算符。下面的注册表策略示例说明如何通过使用 IP 地址条件运算符确定允许的 IPv4 地址范围 54.240.143.*。此范围之外的所有 IP 地址对注册表 (exampleregistry) 的访问都会被拒绝。由于所有 IPv6 地址都在允许范围之外,此策略会阻止 IPv6 地址访问 exampleregistry

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": "*", "Action": "ecr:*", "Resource": "arn:aws:ecr:*:*:repository/exampleregistry/*", "Condition": { "IpAddress": {"aws:SourceIp": "54.240.143.0/24"} } } ] }

要同时允许 IPv4 (54.240.143.0/24) 和 IPv6 (2001:DB8:1234:5678::/64) 地址范围,请按以下示例所示修改注册表策略的条件元素。您可以使用此 Condition 块格式来更新 IAM 用户和注册表策略。

"Condition": { "IpAddress": { "aws:SourceIp": [ "54.240.143.0/24", "2001:DB8:1234:5678::/64" ] } }
重要

在使用 IPv6 之前,必须对使用 IP 地址筛选的所有相关 IAM 用户和注册表策略进行更新。我们建议不要在注册表策略中使用 IP 地址筛选。

您可以使用 IAM 控制台查看您的 IAM 用户政策,网址为https://console.aws.amazon.com/iam/。有关 IAM 的更多信息,请参阅《IAM 用户指南》https://docs.aws.amazon.com/IAM/latest/UserGuide/