

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

# アップストリームレジストリと Amazon ECR プライベートレジストリの同期
<a name="pull-through-cache"></a>

プルスルーキャッシュルールを使用すると、アップストリームレジストリのコンテンツを Amazon ECR プライベートレジストリと同期できます。

Amazon ECR は現在、次のアップストリームレジストリのプルスルーキャッシュルールの作成をサポートしています。
+ Amazon ECR パブリック、Kubernetes コンテナイメージレジストリ、Quay (認証は不要)
+ Docker Hub、Microsoft Azure Container Registry、GitHub Container Registry、GitLab Container Registry、Chainguard Registry (シークレットによる AWS Secrets Manager 認証が必要)
+ Amazon ECR (IAM AWS ロールによる認証が必要)

GitLab コンテナレジストリの場合、Amazon ECR は GitLab の Software as a Service (SaaS) オファリングでのみプルスルーキャッシュをサポートします。GitLab の SaaS オファリングの使用の詳細については、[GitLab.com](https://docs.gitlab.com/17.5/subscriptions/choosing_subscription/)を参照してください。

シークレット (Docker Hub など) による認証を必要とするアップストリームレジストリの場合、認証情報を AWS Secrets Manager シークレットに保存する必要があります。Amazon ECR コンソールを使用して、認証されたアップストリームレジストリごとに Secrets Manager シークレットを作成できます。Secrets Manager コンソールを使用して Secrets Manager シークレットを作成する方法の詳細については、「[アップストリームリポジトリの認証情報を AWS Secrets Manager シークレットに保存する](pull-through-cache-creating-secret.md)」を参照してください。

Amazon ECR の場合、アップストリームとダウンストリームの Amazon ECR レジストリが異なる AWS アカウントに属している場合、IAM ロールを作成する必要があります。IAM ロールの作成の詳細については 「[クロスアカウント ECR から ECR へのプルスルーキャッシュに必要な IAM ポリシー](pull-through-cache-private.md#pull-through-cache-private-permissions)」 をご参照ください。

アップストリームレジストリのプルスルーキャッシュルールを作成したら、Amazon ECR プライベートレジストリ URI を使用して、そのアップストリームレジストリからイメージをプルします。次に Amazon ECR はリポジトリを作成し、そのイメージをプライベートレジストリにキャッシュします。特定のタグのあるキャッシュされたイメージの後続のプルリクエストでは、Amazon ECR はアップストリームレジストリをチェックして、その特定のタグを持つイメージの新しいバージョンがあるかどうかを確認し、プライベートレジストリ内のイメージの更新を少なくとも 24 時間に 1 回試みます。

## リポジトリ作成テンプレート
<a name="pull-through-cache-respository-creation-template"></a>

Amazon ECR でリポジトリ作成テンプレートのサポートが追加されました。これにより、Amazon ECR がプルスルーキャッシュルールを使用してユーザーの代わりに作成する新しいリポジトリの初期設定を、指定できるようになります。各テンプレートには、新しいリポジトリを特定のテンプレートと一致させるために使用されるリポジトリ名前空間プレフィックスが含まれています。テンプレートでは、リソースベースのアクセスポリシー、タグのイミュータビリティ、暗号化、ライフサイクルポリシーなど、すべてのリポジトリ設定の設定を指定できます。リポジトリ作成テンプレートの設定はリポジトリの作成時にのみ適用され、既存のリポジトリや他の方法で作成されたリポジトリには影響しません。詳細については、「[プルスルーキャッシュ、プッシュ時作成、またはレプリケーションアクション中に作成されたリポジトリを制御するテンプレート](repository-creation-templates.md)」を参照してください。

## プルスルーキャッシュルールを使用するための考慮事項
<a name="pull-through-cache-considerations"></a>

Amazon ECR のプルスルーキャッシュルールを使用する際には、以下の点について考慮する必要があります。
+ 次のリージョンでは、プルスルーキャッシュルールの作成はサポートされていません。
  + 中国 (北京) (`cn-north-1`)
  + 中国 (寧夏) (`cn-northwest-1`)
  + AWS GovCloud (米国東部) (`us-gov-east-1`)
  + AWS GovCloud (米国西部) (`us-gov-west-1`)
+ AWS Lambda は、プルスルーキャッシュルールを使用した Amazon ECR からのコンテナイメージのプルをサポートしていません。
+ プルスルーキャッシュを使用してイメージをプルする場合、イメージを最初にプルするときに Amazon ECR FIPS サービスエンドポイントはサポートされません。ただし、Amazon ECR FIPS サービスエンドポイントは、その後のプルでも使用できます。
+ 認証を必要とするアップストリームリポジトリの場合、イメージが Amazon ECR プライベートレジストリ URI を初めてプルするか、キャッシュを更新すると、イメージのプルはプルスルーキャッシュルールで設定された認証情報に関連付けられたユーザーによって開始されます。それ以降のプルでは、お客様のプライベートレジストリのキャッシュから直接イメージが返されます。
+ 認証を必要としないアップストリームリポジトリの場合、イメージが Amazon ECR プライベートレジストリ URI を介してプルされると、イメージのプルは AWS IP アドレスによって開始されます。
+ 顧客が Amazon ECR プライベートレジストリ URI を介してキャッシュされたイメージをプルすると、Amazon ECR は過去 24 時間以内にイメージをアップストリームレジストリに対して検証したかどうかを確認します。24 時間のウィンドウの有効期限が切れている場合、Amazon ECR はリクエストをアップストリームに送信して新しいバージョンをチェックし、キャッシュが存在する場合はキャッシュを更新します。ウィンドウの有効期限が切れていない場合、Amazon ECR はアップストリームに接続せずにキャッシュされたイメージを提供します。
+ `ListImageReferrers` API をプルスルーキャッシュ作成リポジトリに呼び出すと、OCI 準拠のリファラーアーティファクトがプライベートキャッシュに返されます。
+ Amazon ECR は、リファラーアーティファクトが過去 6 時間以内に更新されたかどうかを確認します。6 時間のウィンドウの有効期限が切れている場合、Amazon ECR はリクエストをアップストリームに送信して新しいバージョンをチェックし、キャッシュが存在する場合はキャッシュを更新します。
+ Amazon ECR が何らかの理由でアップストリームレジストリからイメージを更新できず、イメージがプルされた場合でも、最後にキャッシュされたイメージがプルされます。
+ アップストリームのレジストリ認証情報を含む Secrets Manager シークレットを作成する場合、シークレット名には `ecr-pullthroughcache/` プレフィックスを使用する必要があります。シークレットは、プルスルーキャッシュルールが作成されたのと同じアカウントとリージョンにある必要もあります。
+ プルスルーキャッシュルールを使用してマルチアーキテクチャイメージをプルすると、マニフェストリストとマニフェストリストで参照されている各イメージが Amazon ECR リポジトリにプルされます。特定のアーキテクチャのみをプルする場合は、マニフェストリストに関連付けられたタグではなく、アーキテクチャに関連付けられたイメージダイジェストまたはタグを使用してイメージをプルできます。
+ Amazon ECR は、サービスにリンクされた IAM ロールを使用します。このロールは、Amazon ECR がユーザーに代わってキャッシュされたイメージのリポジトリを作成し、認証のために Secret Manager シークレット値を取得し、キャッシュされたイメージをプッシュするために必要なアクセス許可を提供します。プルスルーキャッシュルールを作成すると、サービスにリンクされた IAM ロールが自動的に作成されます。詳細については、「[プルスルーキャッシュの Amazon ECR サービスにリンクされたロール](slr-pullthroughcache.md)」を参照してください。
+ デフォルトで、キャッシュされたイメージをプルする IAM プリンシパルには、IAM ポリシーによってアクセス許可が付与されています。Amazon ECR プライベートレジストリアクセス許可ポリシーを使用して、IAM エンティティのアクセス許可のスコープをさらに設定できます。詳細については、「[レジストリ許可の使用](pull-through-cache-iam.md#pull-through-cache-registry-permissions)」を参照してください。
+ プルスルーキャッシュワークフローを使用して作成された Amazon ECR リポジトリは、他の Amazon ECR リポジトリと同様に処理されます。レプリケーションやイメージスキャンなど、すべてのリポジトリ機能がサポートされています。
+ Amazon ECR がプルスルーキャッシュアクションを使用してユーザーに代わって新しいリポジトリを作成すると、一致するリポジトリ作成テンプレートがない限り、次のデフォルト設定がリポジトリに適用されます。リポジトリ作成テンプレートを使用して、Amazon ECR がユーザーに代わって作成したリポジトリに適用される設定を定義できます。詳細については、「[プルスルーキャッシュ、プッシュ時作成、またはレプリケーションアクション中に作成されたリポジトリを制御するテンプレート](repository-creation-templates.md)」を参照してください。
  + タグのイミュータビリティ – タグのイミュータビリティは、イメージタグを上書きできるかどうかを指定します。デフォルトでは、イメージタグはミュータブル (上書き可能) です。タグの動作を変更するには、**[ミュータブル]** が選択されている場合は **[ミュータブルタグ除外]** テキストボックスでタグ除外フィルターを設定し、**[イミュータブル]** が選択されている場合は **[イミュータブルタグ除外]** テキストボックスでタグ除外フィルターを設定します。
  + 暗号化 – デフォルトの `AES256` 暗号化が使用されます。
  + リポジトリ権限 – 省略。リポジトリ権限ポリシーは適用されません。
  + ライフサイクルポリシー – 省略。ライフサイクルポリシーは適用されません。
  + リソースタグ – 省略。リソースタグは適用されません。
+ プルスルーキャッシュルールを使用してリポジトリのイメージタグのイミュータビリティを有効にすると、Amazon ECR が同じタグを使用してイメージを更新できなくなります。
+ プルスルーキャッシュルールを使用して初めてイメージをプルする場合、インターネットへのルートが必要になる場合があります。特定の状況ではインターネットへのルートが必要になるため、障害を回避するためにルートを設定することをお勧めします。したがって、 を使用してインターフェイス VPC エンドポイントを使用するように Amazon ECR を設定している場合は AWS PrivateLink 、最初のプルにインターネットへのルートがあることを確認する必要があります。これを行う方法の 1 つは、同じ VPC にインターネットゲートウェイを持つパブリックサブネットを作成し、プライベートサブネットからインターネットへのすべてのアウトバウンドトラフィックをパブリックサブネットにルーティングすることです。プルスルーキャッシュルールを使用した後続のイメージプルでは、これは必要ありません。詳細については、Amazon Virtual Private Cloud ユーザーガイドの「[ルーティングオプションの例](https://docs.aws.amazon.com/vpc/latest/userguide/route-table-options.html)」を参照してください。