Amazon ECR レジストリにリクエストを実行する - Amazon ECR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon ECR レジストリにリクエストを実行する

IPv4 のみのエンドポイントまたはデュアルスタック (IPv4 と IPv6) エンドポイントを使用して。Amazon ECR プライベートレジストリの OCI イメージ、Docker イメージ、OCI 互換アーティファクトをプッシュ、プル、削除、表示、管理できます。IPv4 ネットワークからのリクエストには、デュアルスタックエンドポイントまたは IPv4 エンドポイントを使用できます。IPv6 ネットワークからリクエストを行うには、デュアルスタックのエンドポイントを使用します。IPv4 エンドポイントとデュアルスタックエンドポイントを使用して Amazon ECR パブリックレジストリにリクエストを行う方法の詳細については、「Making requests to Amazon ECR Public registries」を参照してください。IPv6 を使用して Amazon ECR にアクセスする場合、追加料金はかかりません。詳細については、「Amazon Elastic Container Registry の料金」を参照してください。

Amazon ECR エンドポイントは、IPv4 のみのエンドポイントまたはデュアルスタックエンドポイントのサポート以上の属性によって指定されます。これらの属性には以下が含まれます。

  • リージョン – 各エンドポイントはリージョンに固有です。

  • タイプ – エンドポイントの選択は、 AWS SDK と OCI 互換の Docker コマンドラインインターフェイスのどちらを使用しているかによって異なります。

  • セキュリティ – 一部のリージョンでは、Amazon ECR は FIPS 準拠のエンドポイントを提供します。FIPS 互換の Amazon ECR エンドポイントの詳細については、「Federal Information Processing Standard (FIPS) 140-3」を参照してください。

CLI および SDK からの Amazon ECR API コールを処理する IPv4、デュアルスタック、Docker、および OCI AWS クライアントでサポートされるサービスエンドポイントの詳細については、「サービスエンドポイント」を参照してください。 AWS SDKs

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

  • IPv6 アドレス範囲を含めるには、ソース IP アドレスフィルタリングを使用する AWS Identity and Access Management (IAM) またはレジストリポリシーを更新する必要があります。詳細については、「IAM ポリシーでの IPv6 アドレスの使用」を参照してください。

  • IPv6 を使用すると、サーバーアクセスログに IPv6 形式の Remote IP アドレスが表示されます。これらの IPv6 形式の IP アドレスを解析するには、既存のツール、スクリプト、ソフトウェアを更新します。

    注記

    ログファイルで IPv6 アドレスに関連する問題を見つけた場合、AWS サポート にお問い合わせください。

IP アドレス互換性のテスト

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 経由でリクエストを実行する

Amazon ECR API コールは、デュアルスタックエンドポイントを使用して IPv6 経由で行うことができます。Amazon ECR API オペレーションの機能とパフォーマンスは、IPv4 と IPv6 のどちらを使用する場合でも一貫しています。

AWS Command Line Interface (AWS CLI) と AWS SDKs を使用する場合、IPv6 を有効にするには、パラメータまたはフラグを使用してデュアルスタックエンドポイントに切り替えるか、設定ファイルでデュアルスタックエンドポイントを直接指定してデフォルトの Amazon ECR エンドポイントを上書きします。デフォルトプロファイルで use_dualstack_endpoint を true に設定するコマンドを使用して設定を変更することもできます。use_dualstack_endpoint の詳細については、「Dual-stack and FIPS endpoints」を参照してください。

例 コマンドを使用して設定を変更する

aws configure set default.ecr.use_dualstack_endpoint true

例 AWS CLIを使用して IPv6 でリクエストを実行する

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 pull コマンドを示しています。

例 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 要素を変更します。この Condition ブロック形式を使用して、IAM ユーザーポリシーとレジストリポリシーの両方を更新できます。

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

IPv6 を使用する前に、IP アドレスのフィルタリングを使用するすべての関連 IAM ユーザーとレジストリポリシーを更新する必要があります。レジストリポリシーで IP アドレスのフィルタリングを使用することは推奨されません。

IAM ユーザーポリシーは、https://console.aws.amazon.com/iam/ の IAM コンソールを使用して確認できます。IAM の詳細については、IAM ユーザーガイドを参照してください。