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

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

最終更新日:Jun 26, 2024

man-in-the-middle (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. 左側のナビゲーションウィンドウで、アイデンティティ> ロール.

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

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

    2. ロールタイプの選択ロールの作成ウィザードのステップで、Alibaba Cloudアカウントのための信頼できるエンティティの選択パラメーターをクリックし、次へ.

    3. ロールの設定ステップ、セットRAMロール名AliyunContainerRegistryKMSRoleに、信頼できるAlibaba Cloudアカウントを選択し、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] タブのコードエディターでポリシーの内容を編集し、[次へ] をクリックします。 ポリシー名をAliyunContainerRegistryKMSRolePolicyに設定し、[OK] をクリックします。

      説明

      ビジネス要件に基づいて、次のコードのregionaccountidを置き換える必要があります。

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "kms:*"
                  ],
                  "Resource": "acs:kms:${region}:${accountid}:*"
              }
          ],
          "Version": "1"
      }
  6. 左側のナビゲーションウィンドウで、[アイデンティティ]> [ロール] を選択します。 ロールリストで、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. [キー設定] ステップで、Cloud Security Centerコンソールで作成した証人を選択し、KMSキーに関連付けます。 [次へ] をクリックします。

  7. では、署名の設定ステップ、パラメータを設定し、署名ルールの作成.

    説明

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

    • アルゴリズム: 画像に署名するために使用されるアルゴリズム。 有効な値: RSA_PSS_SHA_256およびRSA_PKCS1_SHA_256

    • スコープ: 自動的に署名する必要がある画像のスコープ。 名前空間を選択できます。

    • 署名タイプ:

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

      • シンプル: 画像ダイジェストのみが署名されます。 画像タグは署名されていません。 シンプルモードは、クロスインスタンスイメージ複製シナリオに適しています。 画像タグが変化すると、対応する画像のシグネチャが検証される。

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

イメージ署名の検証

kritis-validation-hookを使用して、コンテナイメージのシグネチャを検証します。 詳細については、「Introduction to kritis-validation-hook」をご参照ください。

説明
  • kritis-validation-hookを使用して、ACKクラスターの画像署名を自動的に検証できます。 イメージ署名が検証に失敗した場合、イメージの展開をブロックするポリシーを設定できます。 この方法を使用することを推奨します。

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