

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

# Amazon ECR でのプルスルーキャッシュルールの作成
<a name="pull-through-cache-creating-rule"></a>

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

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

## 前提条件
<a name="cache-rule-prereq"></a>
+ プルスルーキャッシュルールを作成するための適切な IAM アクセス許可を持っていることを確認します。詳細については、「[アップストリームレジストリと Amazon ECR プライベートレジストリを同期するために必要な IAM アクセス許可](pull-through-cache-iam.md)」を参照してください。
+ シークレットでの認証が必要なアップストリームレジストリの場合: 既存のシークレットを使用する場合は、Secrets Manager シークレットが以下の要件を満たしていることを確認します。
  + シークレットの名前は `ecr-pullthroughcache/` で始まります。 AWS マネジメントコンソール には、`ecr-pullthroughcache/` プレフィックスが付いた Secrets Manager シークレットのみが表示されます。
  + シークレットが存在するアカウントおよびリージョンは、プルスルーキャッシュルールが存在するアカウントおよびリージョンと一致する必要があります。

## プルスルーキャッシュルールの作成 (AWS マネジメントコンソール)
<a name="pull-through-cache-creating-rule-console"></a>

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

### Amazon ECR パブリック、Kubernetes コンテナレジストリ、または Quay の場合
<a name="w2aac28c27b9b7b1"></a>

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

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

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

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

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

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

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

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

### Docker Hub の場合
<a name="w2aac28c27b9b7b3"></a>

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

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

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

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

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

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

   1. 既存のシークレットを使用するには、既存のシーク** AWS レットを使用する**を選択します。**[シークレット名]** では、ドロップダウンを使用して既存のシークレットを選択し、**[次へ]** を選択します。
**注記**  
には、 `ecr-pullthroughcache/` プレフィックスを使用する名前の Secrets Manager シークレット AWS マネジメントコンソール のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

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

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

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

      1. **[Docker Hub のアクセストークン]**には、Docker Hub アクセストークンを指定します。Docker Hub アクセストークンの作成について詳しくは、Docker ドキュメントの「[Create and manage access tokens](https://docs.docker.com/security/for-developers/access-tokens/)」を参照してください。

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

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

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

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

### GitHub コンテナレジストリの場合
<a name="w2aac28c27b9b7b5"></a>

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

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

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

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

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

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

   1. 既存のシークレットを使用するには、既存のシーク** AWS レットを使用する**を選択します。**[シークレット名]** では、ドロップダウンを使用して既存のシークレットを選択し、**[次へ]** を選択します。
**注記**  
には、 `ecr-pullthroughcache/` プレフィックスを使用する名前の Secrets Manager シークレット AWS マネジメントコンソール のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

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

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

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

      1. **[GitHub コンテナレジストリアクストークン]** には、GitHub コンテナレジストリアクセストークンを指定します。GitHub アクセストークンの作成の詳細については、GitHub ドキュメントの「[個人用アクセストークンを管理する](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)」を参照してください。

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

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

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

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

### Microsoft Azure コンテナレジストリの場合
<a name="w2aac28c27b9b7b7"></a>

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

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

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

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

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

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

   1. **[ソースレジストリ URL]** に Microsoft Azure コンテナレジストリの名前を指定し、**[次へ]** を選択します。
**重要**  
`.azurecr.io` サフィックスはユーザーに代わって入力されるため、プレフィックスを指定するだけで済みます。

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

   1. 既存のシークレットを使用するには、既存のシーク** AWS レットを使用する**を選択します。**[シークレット名]** では、ドロップダウンを使用して既存のシークレットを選択し、**[次へ]** を選択します。
**注記**  
には、 `ecr-pullthroughcache/` プレフィックスを使用する名前の Secrets Manager シークレット AWS マネジメントコンソール のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

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

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

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

      1. **[Microsoft Azure コンテナレジストリのアクセストークン]** には、Microsoft Azure コンテナレジストリのアクセストークンを指定します。Microsoft Azure コンテナレジストリアクストークンの作成について詳しくは、Microsoft Azure ドキュメントの「[トークンを作成する - ポータル](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-repository-scoped-permissions#create-token---portal)」を参照してください。

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

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

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

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

### GitLab コンテナレジストリの場合
<a name="w2aac28c27b9b7b9"></a>

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

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

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

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

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

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

   1. 既存のシークレットを使用するには、既存のシーク** AWS レットを使用する**を選択します。**[シークレット名]** では、ドロップダウンを使用して既存のシークレットを選択し、**[次へ]** を選択します。Secrets Manager コンソールを使用して Secrets Manager シークレットを作成する方法の詳細については、[アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する](pull-through-cache-creating-secret.md) を参照してください。
**注記**  
には、 `ecr-pullthroughcache/` プレフィックスを使用する名前の Secrets Manager シークレット AWS マネジメントコンソール のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

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

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

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

      1. **[GitLab コンテナレジストリのアクセストークン]** には、GitLab コンテナレジストリのアクセストークンを指定します。GitLab コンテナレジストリのアクセストークンの作成の詳細については、GitLab ドキュメントの「[Personal access tokens](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)」、「[Group access tokens](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html)」、または「[Project access tokens](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html)」を参照してください。

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

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

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

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

### AWS アカウント内の Amazon ECR プライベートレジストリの場合
<a name="ecr-to-pull-images-from-other-regions-within-your-account"></a>

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

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

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

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

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

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

1. **[アップストリーム名前空間]** で、アップストリームレジストリに存在する **[特定のプレフィックス]** からプルするかどうかを選択します。**プレフィックスなし**を選択した場合、アップストリームレジストリ内の任意のリポジトリからプルできます。プロンプトが表示されたら、アップストリームリポジトリプレフィックスを指定し、**[次へ]** を選択します。
**注記**  
キャッシュおよびアップストリーム名前空間のカスタマイズの詳細については、「[ECR から ECR へのプルスルーキャッシュのリポジトリプレフィックスをカスタマイズする](pull-through-cache-private-wildcards.md)」を参照してください。

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

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

### 別の AWS アカウントの Amazon ECR プライベートレジストリの場合
<a name="w2aac28c27b9b7c13"></a>

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

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

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

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

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

1. **[ステップ 2: アクセス許可の指定]** ページで、**[IAM ロール]**にクロスアカウントプルスルーキャッシュアクセスに使用するロールを選択し、**[作成]** を選択します。
**注記**  
[クロスアカウント ECR から ECR へのプルスルーキャッシュに必要な IAM ポリシー](pull-through-cache-private.md#pull-through-cache-private-permissions) で作成されたアクセス許可を使用する IAM ロールを選択してください。

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

1. **[アップストリーム名前空間]** で、アップストリームレジストリに存在する **[特定のプレフィックス]** からプルするかどうかを選択します。**プレフィックスなし**を選択した場合、アップストリームレジストリ内の任意のリポジトリからプルできます。プロンプトが表示されたら、アップストリームリポジトリプレフィックスを指定し、**[次へ]** を選択します。
**注記**  
キャッシュおよびアップストリーム名前空間のカスタマイズの詳細については、「[ECR から ECR へのプルスルーキャッシュのリポジトリプレフィックスをカスタマイズする](pull-through-cache-private-wildcards.md)」を参照してください。

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

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

### Chainguard レジストリの場合
<a name="w2aac28c27b9b7c15"></a>

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

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

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

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

1. **ステップ 1: ソースページを指定する**、レジストリで、Chainguard Registry, Next を選択します。

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

   1. 既存のシークレットを使用するには、既存のシーク** AWS レットを使用する**を選択します。**[シークレット名]** では、ドロップダウンを使用して既存のシークレットを選択し、**[次へ]** を選択します。Secrets Manager コンソールを使用して Secrets Manager シークレットを作成する方法の詳細については、[アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する](pull-through-cache-creating-secret.md) を参照してください。
**注記**  
には、 `ecr-pullthroughcache/` プレフィックスを使用する名前の Secrets Manager シークレット AWS マネジメントコンソール のみが表示されます。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。

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

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

      1. **Chainguard Registry ユーザー名**には、Chainguard Registry ユーザー名を指定します。

      1. **Chainguard Registry プルトークン**には、Chainguard Registry プルトークンを指定します。Chainguard Registry プルトークンの作成の詳細については、Chainguard ドキュメント[の「プルトークンによる認証](https://edu.chainguard.dev/chainguard/chainguard-images/chainguard-registry/authenticating/#authenticating-with-a-pull-token)」を参照してください。

1. **ステップ 3: 送信先**ページの **Amazon ECR リポジトリプレフィックス**で、ソースレジストリからプルされたイメージをキャッシュするときに使用するリポジトリ名前空間を指定し、**次へ**を選択します。

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

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

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

## プルスルーキャッシュルールを作成するには (AWS CLI)
<a name="pull-through-cache-creating-rule-cli"></a>

[create-pull-through-cache-rule](https://docs.aws.amazon.com/cli/latest/reference/ecr/create-pull-through-cache-rule.html) AWS CLI コマンドを使用して、Amazon ECR プライベートレジストリのプルスルーキャッシュルールを作成します。シークレットでの認証が必要なアップストリームレジストリでは、認証情報を Secrets Manager シークレットに保存する必要があります。Secrets Manager コンソールを使用してシークレットを作成するには、「[アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する](pull-through-cache-creating-secret.md)」を参照してください。

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

### Amazon ECR Public の場合
<a name="w2aac28c27c11b7b1"></a>

次の例では、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 コンテナレジストリの場合
<a name="w2aac28c27c11b7b3"></a>

次の例では、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 の場合
<a name="w2aac28c27c11b7b5"></a>

次の例では、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 の場合
<a name="w2aac28c27c11b7b7"></a>

次の例では、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 コンテナレジストリの場合
<a name="w2aac28c27c11b7b9"></a>

次の例では、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 コンテナレジストリの場合
<a name="w2aac28c27c11b7c11"></a>

次の例では、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 コンテナレジストリの場合
<a name="w2aac28c27c11b7c13"></a>

次の例では、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 プライベートレジストリの場合
<a name="w2aac28c27c11b7c15"></a>

次の の例では、同じ 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 プライベートレジストリの場合
<a name="w2aac28c27c11b7c17"></a>

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

```
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
```

### Chainguard レジストリの場合
<a name="w2aac28c27c11b7c19"></a>

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

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

## 次の手順
<a name="pull-through-cache-creating-rule-next-steps"></a>

プルスルーキャッシュルールを作成したら、次のステップは以下のとおりです。
+ リポジトリ作成テンプレートを作成します。リポジトリ作成テンプレートは、プルスルーキャッシュアクションで Amazon ECR がユーザーに代わって作成した新しいリポジトリに使用する設定を定義することができます。詳細については、「[プルスルーキャッシュ、プッシュ時作成、またはレプリケーションアクション中に作成されたリポジトリを制御するテンプレート](repository-creation-templates.md)」を参照してください。
+ プルスルーキャッシュルールを検証します。プルスルーキャッシュルールを検証する際、Amazon ECR はアップストリームレジストリとのネットワーク接続を確立し、アップストリームレジストリの認証情報を含む Secrets Manager シークレットにアクセスできること、および認証が成功したことを確認します。詳細については、「[Amazon ECR でのプルスルーキャッシュルールの検証](pull-through-cache-working-validating.md)」を参照してください。
+ プルスルーキャッシュルールの使用を開始します。詳細については、「[Amazon ECR でのプルスルーキャッシュルールを使用したイメージのプル](pull-through-cache-working-pulling.md)」を参照してください。