全部產品
Search
文件中心

Container Registry:使用容器鏡像加簽

更新時間:Dec 11, 2024

為了避免中間人攻擊和非法鏡像的更新及運行,ACR支援命名空間層級的自動加簽,每次推送容器鏡像後都會匹配加簽規則自動加簽,保障鏡像從分發到部署的全鏈路一致性。

前提條件

建立非對稱金鑰

  1. Key Management Service控制

  2. 在頁面左上方的地區下拉式清單,選擇密鑰所在的地區。

  3. 在控制台左側導覽列,單擊使用者主要金鑰,然後單擊建立密鑰

  4. 建立密鑰對話方塊配置參數,然後單擊確定

    容器簽名功能需要非對稱金鑰演算法的支援,建立KMS密鑰時,密鑰類型需選擇EC或RSA,密鑰用途需選擇SIGN或VERIFY。其他參數配置請參見建立密鑰

授權Container Registry使用KMS密鑰

為了讓ACR可以讀取到您帳號下的非對稱金鑰,需要在您的帳號上配置以下RAM策略。

  1. 登入RAM控制台

  2. 在控制台左側導覽列中選擇身份管理 > 角色

  3. 角色頁面建立AliyunContainerRegistryKMSRole角色。

    1. 角色頁面單擊建立角色

    2. 選擇類型設定精靈中選擇可信實體類型阿里雲帳號,然後單擊下一步

    3. 配置角色中設定角色名稱為AliyunContainerRegistryKMSRole,並選擇雲帳號,然後單擊完成

  4. 修改信任策略。

    1. 角色頁面找到AliyunContainerRegistryKMSRole,單擊角色名稱列下的AliyunContainerRegistryKMSRole。

    2. 單擊信任策略頁簽,然後單擊編輯信任策略

    3. 在文字框中,修改信任策略,然後單擊儲存信任策略

      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "cr.aliyuncs.com"
                      ]
                  }
              }
          ],
          "Version": "1"
      }
  5. 建立AliyunContainerRegistryKMSRolePolicy策略。

    1. 在RAM控制台左側導覽列中,單擊許可權管理 > 權限原則

    2. 權限原則頁面,單擊建立權限原則

    3. 建立權限原則頁面,單擊指令碼編輯頁簽,在文字框中輸入策略內容,單擊確定。然後在建立權限原則對話方塊中填寫名稱備忘。

      說明

      您需要根據實際情況替換regionaccountid

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "kms:*"
                  ],
                  "Resource": "acs:kms:${region}:${accountid}:*"
              }
          ],
          "Version": "1"
      }
  6. 在左側導覽列中,選擇 身份管理 > 角色,在角色列表中,找到AliyunContainerRegistryKMSRole 角色。

  7. 單擊右側操作列下的添加許可權

  8. 添加許可權面板中選擇權限原則為自訂策略,找到並選擇AliyunContainerRegistryKMSRolePolicy ,單擊確定,完成添加。

配置證明者及驗簽策略

  1. 登入Security Center

  2. 在左側導覽列選擇防護配置 > 容器防護 > 容器簽名,建立證明者並關聯相應的KMS密鑰,用於容器鏡像加簽。

  3. 可選:新增驗簽策略,將證明者關聯到對應的ACK叢集。更多資訊,請參見容器簽名

配置鏡像自動加簽規則

  1. 登入Container Registry控制台

  2. 在頂部功能表列,選擇所需地區。

  3. 在左側導覽列,選擇執行個體列表

  4. 執行個體列表頁面單擊目標企業版執行個體。

  5. 在企業版執行個體管理頁面左側導覽列選擇安全可信 > 鏡像加簽。單擊添加加簽規則

  6. 密鑰配置的設定精靈中選擇在資訊安全中心建立的證明者關聯KMS Key。然後單擊下一步

  7. 加簽配置的設定精靈中設定參數,然後單擊建立加簽規則

    說明

    設定加簽規則僅對該命名空間下所有新上傳的鏡像進行加簽操作,存量的鏡像不做加簽操作。

    • 加簽演算法:提供兩種可選加簽演算法RSA_PSS_SHA_256或者RSA_PKCS1_SHA_256

    • 加簽範圍:目前支援命名空間層級自動加簽,選擇需要自動加簽的命名空間。

    • 加簽類型:

      • 預設:加簽範圍有鏡像Digest和鏡像版本資訊,預設模式適用於當前執行個體下鏡像資料的驗簽。

      • 極簡:加簽範圍僅有鏡像Digest部分,不依賴鏡像版本的資訊。極簡模式適用於跨執行個體鏡像同步情境,鏡像版本會變更對應鏡像資料的驗簽。

    • 觸發方式:預設支援自動觸發,每次推送鏡像後,會自動觸發加簽。

鏡像驗簽

關於鏡像驗簽請參見使用kritis-validation-hook進行容器鏡像簽名驗證

說明
  • 支援在Container ServiceKubernetes版叢集中使用組件進行自動驗簽,設定相應策略在驗簽失敗時阻斷鏡像部署,推薦此方法。

  • 支援客戶基於密鑰管理中心驗簽功能、Container Registry鏡像簽名資料自行驗簽。