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

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

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

Amazon ECR プライベートレジストリにキャッシュするイメージを含むアップストリームレジストリごとに、プルスルーキャッシュルールを作成する必要があります。認証が必要なアップストリームレジストリでは、認証情報を Secrets Manager シークレットに保存する必要があります。Secrets Manager シークレットは、Amazon ECR コンソールまたは Secrets Manager コンソールのいずれかで作成できます。

プルスルーキャッシュルールの作成を開始する前に、適切な IAM 権限があることを確認してください。詳細については、「必要な IAM 許可」を参照してください。

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

      注記

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

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

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

      2. [Docker ハブのユーザー名] には、Docker Hub のユーザー名を指定します。

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

      注記

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

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

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

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

      3. GitHub Container Registry アクセストークン には、 GitHub Container Registry アクセストークンを指定します。 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 シークレットを使用する」を選択します。[シークレット名] では、ドロップダウンを使用して既存のシークレットを選択し、[次へ] を選択します。Secrets Manager コンソールを使用して Secrets Manager シークレットを作成する方法の詳細については、アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する を参照してください。

      注記

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

プルスルーキャッシュルールを作成するには (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 コンテナレジストリレジストリのプルスルーキャッシュルールを作成します。リポジトリプレフィックス docker-hub を指定します。この結果、プルスルーキャッシュルールを使用して作成された各リポジトリは命名スキーム 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

次のステップ

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

  • リポジトリ作成テンプレートを作成します。リポジトリ作成テンプレートは、プルスルーキャッシュアクションで Amazon ECR がユーザーに代わって作成した新しいリポジトリに使用する設定を定義することができます。詳細については、「リポジトリ作成テンプレートを管理する」を参照してください。

  • プルスルーキャッシュルールを検証します。プルスルーキャッシュルールを検証する際、Amazon ECR はアップストリームレジストリとのネットワーク接続を確立し、アップストリームレジストリの認証情報を含む Secrets Manager シークレットにアクセスできること、および認証が成功したことを確認します。詳細については、「プルスルーキャッシュルールの検証」を参照してください。

  • プルスルーキャッシュルールの使用を開始します。詳細については、「プルスルーキャッシュルールによるイメージのプル」を参照してください。