Amazon ECR でのプルスルーキャッシュルールの作成 - Amazon ECR

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

Amazon ECR でのプルスルーキャッシュルールの作成

Amazon ECR プライベートレジストリにキャッシュするイメージを含むアップストリームレジストリごとに、プルスルーキャッシュルールを作成する必要があります。

シークレットによる認証を必要とするアップストリームレジストリの場合、認証情報を Secrets Manager シークレットに保存する必要があります。既存の シークレットを使用するか、新しいシークレットを作成できます。Secrets Manager シークレットは、Amazon ECR コンソールで作成することも、Secrets Manager コンソールで作成することもできます。Amazon ECR コンソールの代わりに Secrets Manager コンソールを使用して Secrets Manager シークレットを作成するには、「アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する」を参照してください。

前提条件

  • プルスルーキャッシュルールを作成するための適切な IAM アクセス許可を持っていることを確認します。詳細については、「アップストリームレジストリと Amazon ECR プライベートレジストリを同期するために必要な IAM アクセス許可」を参照してください。

  • シークレットによる認証を必要とするアップストリームレジストリの場合: 既存のシークレットを使用する場合は、Secrets Manager シークレットが次の要件を満たしていることを確認します。

    • シークレットの名前は ecr-pullthroughcache/ で始まります。 AWS Management Console には、ecr-pullthroughcache/ プレフィックスが付いた Secrets Manager シークレットのみが表示されます。

    • シークレットが存在するアカウントおよびリージョンは、プルスルーキャッシュルールが存在するアカウントおよびリージョンと一致する必要があります。

プルスルーキャッシュルールの作成 (AWS Management Console)

以下のステップは、Amazon ECR コンソールを使用してプルスルーキャッシュルールと Secrets Manager シークレットを作成する方法を示しています。Secrets Manager コンソールを使用してシークレットを作成するには、「アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する」を参照してください。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、プライベートレジストリ設定を構成するリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Pull through cache] (プルスルーキャッシュ) の順に選択します。

  4. [Pull through cache configuration] (プルスルーキャッシュの設定) ページで、[Add rule] (ルールの追加) を選択します。

  5. [ステップ 1: ソースを指定] ページの [レジストリ] で、アップストリームレジストリのリストから Amazon ECR パブリック、Kubernetes、または Quay のいずれかを選択し、[次へ] を選択します。

  6. [ステップ 2: 宛先を指定する] ページの [Amazon ECR リポジトリプレフィックス] で、ソースパブリックレジストリから取得したイメージをキャッシュするときに使用するリポジトリ名前空間プレフィックスを指定し、[次へ] を選択します。デフォルトでは、名前空間は設定されていますが、カスタム名前空間も指定できます。

  7. [ステップ 3: 確認と作成] ページで、プルスルーキャッシュルールの設定を確認し、[作成] を選択します。

  8. 作成する各プルスルーキャッシュに対して、前のステップを繰り返します。プルスルーキャッシュルールは、リージョンごとに個別に作成されます。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、プライベートレジストリ設定を構成するリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Pull through cache] (プルスルーキャッシュ) の順に選択します。

  4. [Pull through cache configuration] (プルスルーキャッシュの設定) ページで、[Add rule] (ルールの追加) を選択します。

  5. [ステップ 1: ソースを指定] ページの [レジストリ][Docker Hub] を選択し、[次へ] を選択します。

  6. [ステップ 2: 認証の設定] ページの [アップストリームの認証情報] では、Docker Hub の認証認証情報を AWS Secrets Manager シークレットに保存する必要があります。既存のシークレットを指定するか、Amazon ECR コンソールを使用して新しいシークレットを作成できます。

    1. 既存のシークレットを使用するには、既存のシーク AWS レットを使用するを選択します。[シークレット名] では、ドロップダウンを使用して既存のシークレットを選択し、[次へ] を選択します。

      注記

      には、 ecr-pullthroughcache/ プレフィックスを使用する名前の Secrets Manager シークレット AWS Management Console のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

    2. 新しいシークレットを作成するには、[ AWS シークレットを作成する] を選択し、次の操作を行って、[次へ] を選択します。

      1. [シークレット名] には、シークレットのわかりやすい名前を指定します。シークレット名は 1~512 文字の Unicode 文字で構成されます。

      2. [Docker Hub の E メール] には、Docker Hub の E メールを指定します。

      3. [Docker Hub のアクセストークン]には、Docker Hub アクセストークンを指定します。Docker Hub アクセストークンの作成について詳しくは、Docker ドキュメントの「Create and manage access tokens」を参照してください。

  7. [ステップ 3: 宛先を指定する] ページの [Amazon ECR リポジトリプレフィックス] で、ソースパブリックレジストリから取得したイメージをキャッシュするときに使用するリポジトリ名前空間を指定し、[次へ] を選択します。

    デフォルトでは、名前空間は設定されていますが、カスタム名前空間も指定できます。

  8. [ステップ 4: 確認と作成] ページで、プルスルーキャッシュルールの設定を確認し、[作成] を選択します。

  9. 作成する各プルスルーキャッシュに対して、前のステップを繰り返します。プルスルーキャッシュルールは、リージョンごとに個別に作成されます。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、プライベートレジストリ設定を構成するリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Pull through cache] (プルスルーキャッシュ) の順に選択します。

  4. [Pull through cache configuration] (プルスルーキャッシュの設定) ページで、[Add rule] (ルールの追加) を選択します。

  5. [ステップ 1: ソースを指定] ページの [レジストリ][GitHub コンテナレジストリ] を選択し、[次へ] を選択します。

  6. [ステップ 2: 認証の設定] ページの [アップストリームの認証情報] では、GitHub コンテナレジストリ の認証認証情報を AWS Secrets Manager シークレットに保存する必要があります。既存のシークレットを指定するか、Amazon ECR コンソールを使用して新しいシークレットを作成できます。

    1. 既存のシークレットを使用するには、既存のシーク AWS レットを使用するを選択します。[シークレット名] では、ドロップダウンを使用して既存のシークレットを選択し、[次へ] を選択します。

      注記

      には、 ecr-pullthroughcache/ プレフィックスを使用する名前の Secrets Manager シークレット AWS Management Console のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

    2. 新しいシークレットを作成するには、[ AWS シークレットを作成する] を選択し、次の操作を行って、[次へ] を選択します。

      1. [シークレット名] には、シークレットのわかりやすい名前を指定します。シークレット名は 1~512 文字の Unicode 文字で構成されます。

      2. [GitHub コンテナレジストリのユーザー名] には、GitHub コンテナレジストリのユーザー名を指定します。

      3. [GitHub コンテナレジストリアクストークン] には、GitHub コンテナレジストリアクセストークンを指定します。GitHub アクセストークンの作成の詳細については、GitHub ドキュメントの「個人用アクセストークンを管理する」を参照してください。

  7. [ステップ 3: 宛先を指定する] ページの [Amazon ECR リポジトリプレフィックス] で、ソースパブリックレジストリから取得したイメージをキャッシュするときに使用するリポジトリ名前空間を指定し、[次へ] を選択します。

    デフォルトでは、名前空間は設定されていますが、カスタム名前空間も指定できます。

  8. [ステップ 4: 確認と作成] ページで、プルスルーキャッシュルールの設定を確認し、[作成] を選択します。

  9. 作成する各プルスルーキャッシュに対して、前のステップを繰り返します。プルスルーキャッシュルールは、リージョンごとに個別に作成されます。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、プライベートレジストリ設定を構成するリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Pull through cache] (プルスルーキャッシュ) の順に選択します。

  4. [Pull through cache configuration] (プルスルーキャッシュの設定) ページで、[Add rule] (ルールの追加) を選択します。

  5. [ステップ 1:ソースの指定] ページで、以下の操作を行います。

    1. [レジストリ] には、[Microsoft Azure コンテナレジストリ] を選択します。

    2. [ソースレジストリ URL] に Microsoft Azure コンテナレジストリの名前を指定し、[次へ] を選択します。

      重要

      .azurecr.io サフィックスはユーザーに代わって入力されるため、プレフィックスを指定するだけで済みます。

  6. [ステップ 2: 認証の設定] ページの [アップストリームの認証情報] では、Microsoft Azure コンテナレジストリ の認証認証情報を AWS Secrets Manager シークレットに保存する必要があります。既存のシークレットを指定するか、Amazon ECR コンソールを使用して新しいシークレットを作成できます。

    1. 既存のシークレットを使用するには、既存のシーク AWS レットを使用するを選択します。[シークレット名] では、ドロップダウンを使用して既存のシークレットを選択し、[次へ] を選択します。

      注記

      には、 ecr-pullthroughcache/ プレフィックスを使用する名前の Secrets Manager シークレット AWS Management Console のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

    2. 新しいシークレットを作成するには、[ AWS シークレットを作成する] を選択し、次の操作を行って、[次へ] を選択します。

      1. [シークレット名] には、シークレットのわかりやすい名前を指定します。シークレット名は 1~512 文字の Unicode 文字で構成されます。

      2. [Microsoft Azure コンテナレジストリのユーザー名] には、Microsoft Azure コンテナーレジストリのユーザー名を指定します。

      3. [Microsoft Azure コンテナレジストリのアクセストークン] には、Microsoft Azure コンテナレジストリのアクセストークンを指定します。Microsoft Azure コンテナレジストリアクストークンの作成について詳しくは、Microsoft Azure ドキュメントの「トークンを作成する - ポータル」を参照してください。

  7. [ステップ 3: 宛先を指定する] ページの [Amazon ECR リポジトリプレフィックス] で、ソースパブリックレジストリから取得したイメージをキャッシュするときに使用するリポジトリ名前空間を指定し、[次へ] を選択します。

    デフォルトでは、名前空間は設定されていますが、カスタム名前空間も指定できます。

  8. [ステップ 4: 確認と作成] ページで、プルスルーキャッシュルールの設定を確認し、[作成] を選択します。

  9. 作成する各プルスルーキャッシュに対して、前のステップを繰り返します。プルスルーキャッシュルールは、リージョンごとに個別に作成されます。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、プライベートレジストリ設定を構成するリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Pull through cache] (プルスルーキャッシュ) の順に選択します。

  4. [Pull through cache configuration] (プルスルーキャッシュの設定) ページで、[Add rule] (ルールの追加) を選択します。

  5. [ステップ 1: ソースを指定] ページの [レジストリ] で、[GitLab コンテナレジストリ] を選択し、[次へ] を選択します。

  6. [ステップ 2: 認証の設定] ページの [アップストリーム認証情報] では、GitLab コンテナレジストリの認証情報を AWS Secrets Manager シークレットに保存する必要があります。既存のシークレットを指定するか、Amazon ECR コンソールを使用して新しいシークレットを作成できます。

    1. 既存のシークレットを使用するには、既存のシーク AWS レットを使用するを選択します。[シークレット名] では、ドロップダウンを使用して既存のシークレットを選択し、[次へ] を選択します。Secrets Manager コンソールを使用して Secrets Manager シークレットを作成する方法の詳細については、アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する を参照してください。

      注記

      には、 ecr-pullthroughcache/ プレフィックスを使用する名前の Secrets Manager シークレット AWS Management Console のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

    2. 新しいシークレットを作成するには、[ AWS シークレットを作成する] を選択し、次の操作を行って、[次へ] を選択します。

      1. [シークレット名] には、シークレットのわかりやすい名前を指定します。シークレット名は 1~512 文字の Unicode 文字で構成されます。

      2. [GitLab コンテナレジストリのユーザー名] には、GitLab コンテナレジストリのユーザー名を指定します。

      3. [GitLab コンテナレジストリのアクセストークン] には、GitLab コンテナレジストリのアクセストークンを指定します。GitLab コンテナレジストリのアクセストークンの作成の詳細については、GitLab ドキュメントの「Personal access tokens」、「Group access tokens」、または「Project access tokens」を参照してください。

  7. [ステップ 3: 宛先を指定する] ページの [Amazon ECR リポジトリプレフィックス] で、ソースパブリックレジストリから取得したイメージをキャッシュするときに使用するリポジトリ名前空間を指定し、[次へ] を選択します。

    デフォルトでは、名前空間は設定されていますが、カスタム名前空間も指定できます。

  8. [ステップ 4: 確認と作成] ページで、プルスルーキャッシュルールの設定を確認し、[作成] を選択します。

  9. 作成する各プルスルーキャッシュに対して、前のステップを繰り返します。プルスルーキャッシュルールは、リージョンごとに個別に作成されます。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、プライベートレジストリの設定を行うリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Pull through cache] (プルスルーキャッシュ) の順に選択します。

  4. [Pull through cache configuration] (プルスルーキャッシュの設定) ページで、[Add rule] (ルールの追加) を選択します。

  5. ステップ 1: アップストリームを指定するページのレジストリで、Amazon ECR Privateこのアカウントを選択します。リージョンで、アップストリーム Amazon ECR レジストリのリージョンを選択し、次を選択します。

  6. ステップ 2: 名前空間を指定するページで、キャッシュ名前空間に、特定のプレフィックスを持つプルスルーキャッシュリポジトリを作成するか、プレフィックスを持たないかを選択します。特定のプレフィックスを選択した場合は、アップストリームレジストリからイメージをキャッシュするための名前空間の一部として使用するプレフィックス名を指定する必要があります。

  7. アップストリーム名前空間で、アップストリームレジストリに存在する特定のプレフィックスからプルするかどうかを選択します。プレフィックスを選択しない場合は、アップストリームレジストリ内の任意のリポジトリからプルできます。プロンプトが表示されたら、アップストリームリポジトリプレフィックスを指定し、次へを選択します。

    注記

    キャッシュおよびアップストリーム名前空間のカスタマイズの詳細については、「」を参照してくださいECR から ECR へのプルスルーキャッシュのリポジトリプレフィックスのカスタマイズ

  8. [ステップ 3: 確認と作成] ページで、プルスルーキャッシュルールの設定を確認し、[作成] を選択します。

  9. 作成するプルスルーキャッシュごとに、これらのステップを繰り返します。プルスルーキャッシュルールは、リージョンごとに個別に作成されます。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、プライベートレジストリ設定を構成するリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Pull through cache] (プルスルーキャッシュ) の順に選択します。

  4. [Pull through cache configuration] (プルスルーキャッシュの設定) ページで、[Add rule] (ルールの追加) を選択します。

  5. ステップ 1: アップストリームページのレジストリで、Amazon ECR プライベートアカウントとクロスアカウントを選択します。リージョンで、アップストリーム Amazon ECR レジストリのリージョンを選択します。Account で、アップストリーム Amazon ECR レジストリの AWS アカウント ID を指定し、Next を選択します。

  6. ステップ 2: アクセス許可を指定するページで、IAM ロールで、クロスアカウントプルスルーキャッシュアクセスに使用するロールを選択し、作成を選択します。

    注記

    で作成されたアクセス許可を使用する IAM ロールを必ず選択してくださいクロスアカウント ECR から ECR へのプルスルーキャッシュに必要な IAM ポリシー

  7. ステップ 3: 名前空間を指定する ページで、キャッシュ名前空間に、特定のプレフィックスを持つプルスルーキャッシュリポジトリを作成するか、プレフィックスを持たないかを選択します。特定のプレフィックスを選択した場合は、アップストリームレジストリからイメージをキャッシュするための名前空間の一部として使用するプレフィックス名を指定する必要があります。

  8. アップストリーム名前空間で、アップストリームレジストリに存在する特定のプレフィックスからプルするかどうかを選択します。プレフィックスを選択しない場合は、アップストリームレジストリ内の任意のリポジトリからプルできます。プロンプトが表示されたら、アップストリームリポジトリプレフィックスを指定し、次へを選択します。

    注記

    キャッシュおよびアップストリーム名前空間のカスタマイズの詳細については、「」を参照してくださいECR から ECR へのプルスルーキャッシュのリポジトリプレフィックスのカスタマイズ

  9. [ステップ 4: 確認と作成] ページで、プルスルーキャッシュルールの設定を確認し、[作成] を選択します。

  10. 作成するプルスルーキャッシュごとに、これらのステップを繰り返します。プルスルーキャッシュルールは、リージョンごとに個別に作成されます。

プルスルーキャッシュルールを作成するには (AWS CLI)

create-pull-through-cache-rule AWS CLI コマンドを使用して、Amazon ECR プライベートレジストリのプルスルーキャッシュルールを作成します。シークレットによる認証を必要とするアップストリームレジストリの場合、認証情報を Secrets Manager シークレットに保存する必要があります。Secrets Manager コンソールを使用してシークレットを作成するには、「アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する」を参照してください。

以下の例は、サポートされている各アップストリームレジストリについて提供されています。

次の例では、Amazon ECR パブリックレジストリのプルスルーキャッシュルールを作成します。リポジトリプレフィックス ecr-public を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム ecr-public/upstream-repository-name を持ちます。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix ecr-public \ --upstream-registry-url public.ecr.aws \ --region us-east-2

次の例では、Kubernetes パブリックレジストリのプルスルーキャッシュルールを作成します。リポジトリプレフィックス kubernetes を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム kubernetes/upstream-repository-name を持ちます。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix kubernetes \ --upstream-registry-url registry.k8s.io \ --region us-east-2

次の例では、Quay パブリックレジストリのプルスルーキャッシュルールを作成します。リポジトリプレフィックス quay を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム quay/upstream-repository-name を持ちます。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix quay \ --upstream-registry-url quay.io \ --region us-east-2

次の例では、Docker Hub レジストリのプルスルーキャッシュルールを作成します。リポジトリプレフィックス docker-hub を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム docker-hub/upstream-repository-name を持ちます。Docker Hub の認証情報が含まれているシークレットの完全な Amazon リソースネーム (ARN) を指定する必要があります。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix docker-hub \ --upstream-registry-url registry-1.docker.io \ --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \ --region us-east-2

次の例では、GitHub コンテナレジストリ用のプルスルーキャッシュルールを作成します。リポジトリプレフィックス github を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム github/upstream-repository-name を持ちます。GitHub コンテナレジストリの認証情報が含まれているシークレットの完全な Amazon リソースネーム (ARN) を指定する必要があります。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix github \ --upstream-registry-url ghcr.io \ --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \ --region us-east-2

次の例では、Microsoft Azure コンテナレジストリ用のプルスルーキャッシュルールを作成します。リポジトリプレフィックス azure を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム azure/upstream-repository-name を持ちます。Microsoft Azure コンテナレジストリの認証情報が含まれているシークレットの完全な Amazon リソースネーム (ARN) を指定する必要があります。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix azure \ --upstream-registry-url myregistry.azurecr.io \ --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \ --region us-east-2

次の例では、GitLab コンテナレジストリ用のプルスルーキャッシュルールを作成します。リポジトリプレフィックス gitlab を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム gitlab/upstream-repository-name を持ちます。GitLab コンテナレジストリの認証情報が含まれているシークレットの完全な Amazon リソースネーム (ARN) を指定する必要があります。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix gitlab \ --upstream-registry-url registry.gitlab.com \ --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \ --region us-east-2

次の の例では、同じ AWS アカウント内のクロスリージョンの Amazon ECR プライベートレジストリのプルスルーキャッシュルールを作成します。リポジトリプレフィックス ecr を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム ecr/upstream-repository-name を持ちます。

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix ecr \ --upstream-registry-url aws_account_id.dkr.ecr.region.amazonaws.com \ --region us-east-2

次の の例では、同じ AWS アカウント内のクロスリージョンの Amazon ECR プライベートレジストリのプルスルーキャッシュルールを作成します。リポジトリプレフィックス ecr を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム ecr/upstream-repository-name を持ちます。で作成されたアクセス許可を持つ IAM ロールの完全な Amazon リソースネーム (ARN) を指定する必要がありますAmazon ECR でのプルスルーキャッシュルールの作成

aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix ecr \ --upstream-registry-url aws_account_id.dkr.ecr.region.amazonaws.com \ --custom-role-arn arn:aws:iam::aws_account_id:role/example-role \ --region us-east-2

次のステップ

プルスルーキャッシュルールを作成したら、次のステップは以下のとおりです。