このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

コンテナイメージの署名

更新日時2025-03-31 17:55

中間者攻撃(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. コードエディタで信頼ポリシーを変更し、[信頼ポリシードキュメントの保存] をクリックします。

      {
          "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. セキュリティセンター コンソール にログインします。

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

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

自動イメージ署名の署名ルールを構成する

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

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

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

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

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

  6. [キーの設定] ステップで、セキュリティセンター コンソールで作成したウィットネスを選択し、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 でイメージ署名を検証することもできます。

  • 目次 (1, M)
  • 前提条件
  • 非対称キーの作成
  • Container Registry に KMS キーへのアクセスを承認する
  • ウィットネスと署名検証ポリシーを構成する
  • 自動イメージ署名の署名ルールを構成する
  • イメージ署名の検証
フィードバック