マネージド署名 - Amazon ECR

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

マネージド署名

Amazon ECR マネージド署名は、イメージが Amazon ECR にプッシュされたときに AWS Signer を使用して暗号化署名を生成することで、コンテナイメージを自動的に署名します。これにより、クライアント側のツールをインストールして設定する必要がなくなり、レジストリ設定として署名を一元管理できます。

前提条件

マネージド署名を設定するには、1 つ以上の Signer 署名プロファイルを参照する Amazon ECR を使用して署名設定を作成し、オプションで、イメージに署名するリポジトリを制限するリポジトリフィルターを作成します。設定すると、Amazon ECR マネージド署名は、イメージをプッシュするエンティティの ID を使用してプッシュされるときに自動的にイメージに署名します。

マネージド署名を設定する前に、以下が必要です。

  • 署名者署名プロファイル — 少なくとも 1 つの署名者署名プロファイルを作成します。署名プロファイルは、Amazon ECR で署名オペレーションを実行するために使用できる一意の AWS Signer リソースです。署名プロファイルを使用すると、コンテナイメージや AWS Lambda デプロイバンドルなどのコードアーティファクトに署名して検証できます。各署名プロファイルは、署名する署名プラットフォーム、プラットフォーム ID、およびその他のプラットフォーム固有の情報を指定します。たとえば、署名プロファイル ARN は次のようになります: arn:partition:signer:region:account-id:/signing-profiles/profile-name

  • IAM アクセス許可 — イメージをプッシュする IAM プリンシパルには、関連する Signer 署名プロファイルおよび関連する ECR リポジトリにアクセスするために必要な IAM アクセス許可が必要です。ECR リポジトリオペレーションと Signer 署名オペレーションの両方のアクセス許可を含めるには、IAM プリンシパルのアイデンティティベースのポリシーを変更する必要があります。次のポリシー例は、必要なアクセス許可を示しています。

{ "Version": "2012-10-17", "Statement": [ { "Sid":"UploadSignaturePermissions", "Effect":"Allow", "Action":[ "ecr:CompleteLayerUpload", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:BatchCheckLayerAvailability", "ecr:PutImage" ], "Resource":"arn:aws:ecr:region:account-id:repository/repository-name" }, { "Sid": "SignPermissions", "Effect": "Allow", "Action": [ "signer:SignPayload" ], "Resource": "arn:aws:signer:region:account-id:/signing-profiles/signing-profile-name" } ] }

Amazon ECR マネージド署名を使用すると、複数の署名ルール (レジストリあたり最大 10 個) を作成して、より強力なセキュリティ境界を作成できます。たとえば、複数のビルドパイプラインを実行し、各パイプラインが署名できるリポジトリを制限できます。各ルール内で、署名プロファイルを設定し、リポジトリ名フィルターを指定します。新しいイメージがプッシュされると、Amazon ECR はイメージに署名できる署名ルールと署名プロファイルに一致します。複数の一致がある場合、Amazon ECR は複数の署名を生成します。

注記

署名を手動で検証しても、Notation CLI をインストールする必要があります。

注記

Amazon ECR マネージド署名は、 AWS Signer を使用したコンテナイメージ署名が利用可能なすべての AWS リージョンで使用できます。

開始方法

マネージド署名を設定するには、次の手順に従います。署名者署名プロファイルへの参照を Amazon ECR に提供し、オプションで、イメージに署名するリポジトリを制限するフィルターを指定します。

AWS マネジメントコンソール

を使用してマネージド署名を設定するには、次の手順に従います AWS マネジメントコンソール。

  1. Amazon ECR コンソールを開きます。左側のナビゲーションペインで、プライベートレジストリ機能と設定マネージド署名を選択します。

  2. ルールの署名ページで、ルールの作成を選択します。

  3. 署名プロファイルページの「署名者プロファイルの選択 AWS 」で、「新しい AWS 署名者プロファイルの作成」を選択し、プロファイル名を入力し、オプションで署名の有効期間を変更します。[次へ] を選択します。

  4. フィルターページの「リポジトリの選択」の下に、リポジトリ名フィルターを入力します。[次へ] を選択します。

  5. 確認と作成ページで、入力したAWS 署名者プロファイルリポジトリ名フィルターを確認します。すべて正しいと思われる場合は、保存 を選択します。

AWS CLI

マネージド署名を設定するには、次の AWS CLI コマンドを使用します。

  • 署名ルールを作成する

    署名プロファイル ARN を使用して署名設定を作成します。次の内容を含む JSON ファイルを作成します。

    { "rules": [ { "signingProfileArn": "arn:aws:signer:region:account-id:/signing-profiles/profile-name", "repositoryFilters": [ { "filter": "test*", "filterType": "WILDCARD_MATCH" } ] } ] }

    次に、以下のコマンドを実行します。

    aws ecr --region region \ put-signing-configuration \ --signing-configuration file://signing-config.json

    署名設定を含む API レスポンスが表示されます。

  • 署名設定を表示する

    署名設定を取得します。

    aws ecr --region region \ get-signing-configuration

    署名設定を含む API レスポンスが表示されます。

  • イメージ署名ステータスを確認する

    イメージをリポジトリにプッシュします。例:

    docker pull ubuntu IMAGE_NAME="account-id.dkr.ecr.region.amazonaws.com/repository-name" IMAGE_TAG="${IMAGE_NAME}:test-1" docker tag ubuntu $IMAGE_TAG docker push $IMAGE_TAG

    プッシュしたら、イメージタグを使用して署名ステータスを確認します。

    aws ecr --region region \ describe-image-signing-status \ --repository-name repository-name \ --image-id imageTag=test-1

    リポジトリ名が署名設定で定義されたリポジトリフィルターと一致する場合、API レスポンスに署名ステータスが表示されます。ステータスが成功すると、リポジトリにプッシュされた署名が表示されます。

  • 署名設定を削除する

    署名設定を削除します。

    aws ecr --region region \ delete-signing-configuration

    削除された署名設定を含む API レスポンスが表示されます。

考慮事項

マネージド署名には、次の制限と機能が適用されます。

  • クロスリージョン署名はサポートされていません — 署名プロファイルは Amazon ECR レジストリと同じリージョンにある必要があります。あるリージョンの署名プロファイルを使用して、別のリージョンにあるレジストリ内のイメージに署名することはできません。

  • クロスアカウント署名がサポートされています — 署名プロファイルは、Amazon ECR レジストリとは異なるアカウントに配置できます。これにより、組織は署名プロファイルを一元管理しながら、他のアカウントの開発者が使用できるようになります。詳細については、「 AWS Signer デベロッパーガイド」の「署名者のクロスアカウント署名を設定する」を参照してください。

  • 署名は署名できません — 署名自体に署名することはできません。署名できるのはコンテナイメージのみです。