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

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

最終更新日:Sep 10, 2025

中間者攻撃(MITM)や無効なイメージの更新と実行を防ぐため、Container Registry は指定された名前空間のイメージに自動的に署名します。イメージが Container Registry にプッシュされると、Container Registry は一致する署名ルールに基づいてイメージに自動的に署名します。これにより、コンテナイメージが信頼できるものになります。

前提条件

非対称キーを作成する

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

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

  3. 左側のナビゲーションウィンドウで、[キー] をクリックします。表示されるページで、[キーの作成] をクリックします。

  4. [キーの作成] ダイアログボックスで、パラメータを設定し、[OK] をクリックします。

    イメージ署名機能は、非対称キーアルゴリズムに基づいて実装されています。 KMS キーを作成する場合は、EC または RSA キータイプを選択し、目的 パラメータを SIGN/VERIFY に設定します。その他のパラメータの詳細については、「CMK を作成する」をご参照ください。

Container Registry が KMS キーにアクセスすることを承認する

Container Registry がアカウント内の非対称キーを読み取れるようにするには、Resource Access Management (RAM) でポリシーを設定します。

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

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

  3. [ロール] ページで、AliyunContainerRegistryKMSRole という名前の RAM ロールを作成します。

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

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

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

  4. 信頼ポリシーを変更します。

    1. [ロール] ページで、検索ボックスに AliyunContainerRegistryKMSRole を入力してロールを検索します。 AliyunContainerRegistryKMSRole を見つけ、[ロール名] 列の AliyunContainerRegistryKMSRole ロール名をクリックします。

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

    3. コードエディタで信頼ポリシーを変更し、[OK] をクリックします。

      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "cr.aliyuncs.com"
                      ]
                  }
              }
          ],
          "Version": "1"
      }
  5. AliyunContainerRegistryKMSRolePolicy ポリシーを作成します。

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

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

    3. [ポリシーの作成] ページで、[JSON] タブをクリックし、コードエディタでポリシードキュメントを編集し、[OK] をクリックします。 [ポリシーの作成] ダイアログボックスで、[ポリシー名] パラメータと [説明] パラメータを設定します。

      説明

      次のコードの regionaccountid は、実際の状況に合わせて置き換える必要があります。

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "kms:*" // kmsへのすべてのアクションを許可
                  ],
                  "Resource": "acs:kms:${region}:${accountid}:*" // 特定のリージョンとアカウントIDのリソース
              }
          ],
          "Version": "1"
      }
  6. 左側のナビゲーションウィンドウで、[ID > ロール] を選択します。ロールリストで、AliyunContainerRegistryKMSRole ロールを見つけます。

  7. ロールに対応する [アクション] 列の [権限の追加] をクリックします。

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

ウィットネスと署名検証ポリシーを設定する

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

  2. 左側のナビゲーションウィンドウで、[保護設定 > コンテナ保護 > コンテナ署名] を選択します。 [コンテナ署名] ページで、[ウィットネス] タブをクリックし、[ウィットネスの作成] をクリックしてウィットネスを作成し、作成した KMS キーに関連付けます。 KMS キーはイメージの署名に使用されます。

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

イメージの自動署名のための署名ルールを設定する

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

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

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

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

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

  6. [キーの設定] ステップで、Cloud Security Center コンソールで作成したウィットネスを選択し、KMS キーに関連付けます。 [次へ] をクリックします。

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

    説明

    署名ルールは、指定された名前空間にプッシュされた新しいイメージにのみ適用されます。既存のイメージは、署名ルールに基づいて署名されません。

    • アルゴリズム:イメージの署名に使用するアルゴリズム。有効な値:RSA_PSS_SHA_256 および RSA_PKCS1_SHA_256

    • 範囲:自動的に署名する必要があるイメージの範囲。名前空間を選択できます。

    • 署名タイプ:

      • デフォルト:イメージダイジェストとタグが署名されます。デフォルトモードは、現在のインスタンスのイメージの署名検証に適用できます。

      • シンプル:イメージダイジェストのみが署名されます。イメージタグは署名されません。シンプルモードは、インスタンス間のイメージレプリケーションシナリオに適しています。イメージタグが変更されると、対応するイメージの署名が検証されます。

    • トリガータイプ:イメージ署名をトリガーするモード。デフォルト値は [自動トリガー] で、イメージが Container Registry にプッシュされるたびにイメージ署名が自動的にトリガーされることを示します。

イメージ署名を検証する

kritis-validation-hook を使用して、コンテナイメージの署名を検証します。詳細については、「kritis-validation-hook コンポーネントの概要」をご参照ください。

説明
  • kritis-validation-hook を使用すると、ACK クラスタ内のイメージ署名を自動的に検証できます。イメージ署名の検証に失敗した場合にイメージのデプロイをブロックするポリシーを設定できます。この方法を使用することをお勧めします。

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