Amazon ECR プライベートリポジトリに保存されたイメージへの署名 - Amazon ECR

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

Amazon ECR プライベートリポジトリに保存されたイメージへの署名

Amazon ECR は と統合 AWS Signer され、コンテナイメージに署名する方法を提供します。コンテナイメージと署名の両方をプライベートのリポジトリに保存することができます。

考慮事項

Amazon ECR のイメージ署名を使用するときは、以下の点を考慮する必要があります。

  • リポジトリに保存されている署名は、リポジトリあたりの最大イメージ数のサービスクォータカウントされます。詳細については、「Amazon ECR のサービスクォータ」を参照してください。

  • リポジトリに参照アーティファクトが存在する場合、Amazon ECR ライフサイクルポリシーは、サブジェクトイメージの削除から 24 時間以内にそれらのアーティファクトを自動的にクリーンアップします。

前提条件

開始するには、以下の前提条件を満たしておく必要があります。

Notary クライアントの認証の設定

Notation CLI を使用して署名を作成するには、事前に Amazon ECR への認証が可能になるようにクライアントを設定する必要があります。Notation クライアントをインストールしたのと同じホストに Docker がインストールされている場合、Notation では Docker クライアントで使用されるのと同じ認証方法が再利用されます。Docker login コマンドと logout コマンドを使うと、Notation sign コマンドと verify コマンドで同じ認証情報を使用できるようになり、Notation を個別に認証する必要がなくなります。Notation クライアントの認証設定の詳細については、Notary Project ドキュメントの「Authenticate with OCI-compliant registries」を参照してください。

Docker や Docker 認証情報を使用するその他のツールを使用していない場合は、認証情報ストアとして Amazon ECR Docker 認証情報ヘルパーを使用することをお勧めします。Amazon ECR 認証情報ヘルパーのインストールと設定方法の詳細については、「Amazon ECR Docker 認証情報ヘルパー」を参照してください。

イメージの署名

次のステップを実行すると、コンテナイメージの署名に必要なリソースを作成し、この署名を Amazon ECR プライベートリポジトリに保存することができます。Notation ではダイジェストを使用してイメージに署名します。

イメージに署名するには
  1. AWS Signer 署名プラットフォームを使用してNotation-OCI-SHA384-ECDSA署名プロファイルを作成します。オプションで、--signature-validity-period パラメータを使用して署名の有効期間を指定することができます。この値は DAYSMONTHSYEARS のいずれかで指定できます。値を指定しない場合、デフォルトの値 (135 か月) が使用されます。

    aws signer put-signing-profile --profile-name ecr_signing_profile --platform-id Notation-OCI-SHA384-ECDSA
    注記

    署名プロファイル名に使用できるのは、英数字とアンダースコア (_) のみです。

  2. Notation のクライアントをデフォルトのレジストリに対して認証します。次の例では AWS CLI 、 を使用して、Amazon ECR プライベートレジストリに対して Notation CLI を認証します。

    aws ecr get-login-password --region region | notation login --username AWS --password-stdin 111122223333.dkr.ecr.region.amazonaws.com
  3. Notation CLI を使用してイメージに署名し、リポジトリ名と SHA ダイジェストを使用してイメージを指定します。これにより署名が作成され、署名対象のイメージと同じ Amazon ECR プライベートリポジトリにプッシュされます。

    次の例では、SHA ダイジェスト sha256:ca78e5f730f9a789ef8c63bb55275ac12dfb9e8099e6EXAMPLE を使用して curl リポジトリ内のイメージに署名しています。

    notation sign 111122223333.dkr.ecr.region.amazonaws.com/curl@sha256:ca78e5f730f9a789ef8c63bb55275ac12dfb9e8099e6EXAMPLE --plugin "com.amazonaws.signer.notation.plugin" --id "arn:aws:signer:region:111122223333:/signing-profiles/ecrSigningProfileName"

次のステップ

コンテナイメージに署名した後、その署名をローカルで確認できます。イメージの検証手順については、「AWS Signer デベロッパーガイド」の「署名後にローカルでイメージを検証する」を参照してください。