すべてのプロダクト
Search
ドキュメントセンター

Container Registry:コンテナイメージ署名の使用

最終更新日:Mar 27, 2026

Container Registry は、指定された名前空間内のイメージに自動的に署名し、サプライチェーンを中間者 (MITM) 攻撃や不正なイメージ改ざんから保護します。イメージが Container Registry にプッシュされると、一致した署名ルールに基づいて署名が行われ、検証済みのイメージのみがご利用の環境で実行されるようになります。

前提条件

開始する前に、以下をご確認ください。

  • Container Registry Enterprise Edition インスタンス (アドバンストエディション) — イメージ署名にはアドバンストエディションが必要です。設定手順については、「Container Registry Enterprise Edition インスタンスの作成」をご参照ください。

  • Key Management Service (KMS) の有効化 — Key Management Service (KMS) は、イメージの署名に使用される非対称キーを提供します。設定手順については、「KMS の有効化」をご参照ください。

非対称キーの作成

イメージ署名では非対称キーアルゴリズムを使用します。キーの種類が EC または RSA で、用途が「署名/検証」に設定された KMS キーを作成します。

  1. KMS コンソールにログインします。

  2. 上部のナビゲーションバーで、キーを作成するリージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[キー] をクリックし、次に [キーの作成] をクリックします。

  4. [キーの作成] ダイアログボックスで、キーの種類を EC または RSA に設定し、[用途] パラメーターを [署名/検証] に設定してから、[OK] をクリックします。その他のパラメーターの詳細については、「CMK の作成」をご参照ください。

Container Registry への KMS キーへのアクセス権限の付与

Container Registry は、署名のために非対称キーを読み取る権限が必要です。このアクセスは、カスタムポリシーを持つ Resource Access Management (RAM) ロールを使用して設定します。

RAM ロールの作成

  1. RAM コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アイデンティティ] > [ロール] を選択します。

  3. [ロール] ページで、[ロールの作成] をクリックします。

  4. [ロールの作成] ページで、[プリンシパルタイプ][クラウドアカウント] に設定し、ご利用の Alibaba Cloud アカウントを指定してから、[OK] をクリックします。

  5. [ロールの作成] ダイアログボックスで、[ロール名]AliyunContainerRegistryKMSRole に設定し、[OK] をクリックします。

信頼ポリシーの更新

  1. [ロール] ページで、AliyunContainerRegistryKMSRole を検索し、ロール名をクリックします。

  2. [信頼ポリシー] タブをクリックし、次に [信頼ポリシーの編集] をクリックします。

  3. ポリシーの内容を以下に置き換えてから、[OK] をクリックします。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "cr.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }

権限ポリシーの作成とアタッチ

  1. RAM コンソールの左側のナビゲーションウィンドウで、[権限] > [ポリシー] を選択します。

  2. [ポリシー] ページで、[ポリシーの作成] をクリックします。

  3. [ポリシーの作成] ページで、[JSON] タブをクリックし、以下のポリシーを入力します。${region}${accountid} を実際のリージョンとアカウント ID に置き換えてください。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "kms:*"
                ],
                "Resource": "acs:kms:${region}:${accountid}:*"
            }
        ],
        "Version": "1"
    }
  4. [OK] をクリックします。[ポリシーの作成] ダイアログボックスで、[ポリシー名]AliyunContainerRegistryKMSRolePolicy に設定し、[説明] を設定してから、[OK] をクリックします。

  5. 左側のナビゲーションウィンドウで、[アイデンティティ] > [ロール] を選択します。AliyunContainerRegistryKMSRole を見つけ、[操作] 列の [権限の追加] をクリックします。

  6. [権限の追加] パネルで、ポリシータイプとして [カスタムポリシー] を選択し、AliyunContainerRegistryKMSRolePolicy を見つけて選択してから、[OK] をクリックします。

証明者と署名検証ポリシーの設定

証明者は、ご利用の KMS キーを Container Registry の署名ワークフローにリンクします。オプションで、証明者を ACK クラスターに関連付けて、デプロイ時に署名検証を強制することもできます。

  1. Cloud Security Center コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[保護設定] > [コンテナ保護] > [コンテナ署名] を選択します。[コンテナ署名] ページで、[証明者] タブをクリックし、次に [証明者の作成] をクリックします。

  3. 証明者を作成し、作成した KMS キーに関連付けます。これらのキーはイメージ署名に使用されます。

  4. (オプション) 署名検証ポリシーを作成して、証明者を Container Service for Kubernetes (ACK) クラスターに関連付けます。詳細については、「コンテナ署名機能の使用」をご参照ください。

署名ルールの設定

署名ルールは、どのイメージがどのように署名されるかを定義します。ルールを作成すると、Container Registry は指定された名前空間にプッシュされるすべての新しいイメージに自動的に署名します。

説明

署名ルールは、ルールの作成後にプッシュされたイメージにのみ適用されます。名前空間に既に存在するイメージは署名されません。

  1. Container Registry コンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  4. [インスタンス] ページで、管理したい Enterprise Edition インスタンスをクリックします。

  5. 左側のナビゲーションウィンドウで、[セキュリティと信頼] > [イメージ署名] を選択し、[署名ルールの作成] をクリックします。

  6. [キー設定] ステップで、Cloud Security Center で作成した証明者を選択し、KMS キーに関連付けてから、[次へ] をクリックします。

  7. [署名設定] ステップで、以下のパラメーターを設定し、[署名ルールの作成] をクリックします。

    パラメーター 説明
    アルゴリズム イメージの署名に使用されるアルゴリズム。有効な値:RSA_PSS_SHA_256 および RSA_PKCS1_SHA_256
    範囲 イメージが自動的に署名される名前空間。
    [署名タイプ] デフォルト:イメージダイジェストとタグの両方に署名します。同一インスタンス内での署名検証に使用します。シンプル:イメージダイジェストのみに署名します (タグには署名しません)。タグが変更される可能性があるクロスインスタンスのイメージレプリケーションシナリオで使用します。
    トリガーの種類 イメージ署名がどのようにトリガーされるか。デフォルト値は [自動トリガー] で、イメージが Container Registry にプッシュされるたびに署名します。

イメージ署名の検証

kritis-validation-hook を使用して、ACK クラスター内のコンテナイメージ署名を検証します。kritis-validation-hook は、署名検証が失敗した場合にイメージのデプロイを自動的にブロックできます。設定手順については、「kritis-validation-hook の概要」をご参照ください。

または、KMS の署名検証機能を使用して、Container Registry で直接イメージ署名を検証することもできます。

制限事項

制限事項 詳細
新しいイメージのみ 署名ルールは、ルールの作成後にプッシュされたイメージにのみ適用されます。名前空間に既に存在するイメージは署名されません。

次のステップ