簽署存放在 Amazon ECR 私有儲存庫中的映像 - Amazon ECR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

簽署存放在 Amazon ECR 私有儲存庫中的映像

Amazon ECR 與 整合 AWS Signer ,可讓您簽署容器映像。您可以將容器映像和簽署同時儲存在私有儲存庫中。

考量事項

使用 Amazon ECR 映像檔簽署時應考慮以下事項。

  • 儲存在儲存庫中的簽署會計入每個儲存庫映像數目上限的服務配額。如需詳細資訊,請參閱Amazon ECR 服務配額

  • 當儲存庫中有參考成品時,Amazon ECR 生命週期政策會在刪除主體映像的 24 小時內自動清除這些成品。

先決條件

開始之前,請先達成以下先決條件。

設定 Notary 用戶端的身分驗證

您必須先設定用戶端,才能使用 Notation CLI 建立簽署,以便能向 Amazon ECR 進行身分驗證。如果您在安裝 Notation 用戶端的同一台主機上安裝了 Docker,則 Notation 將重複使用您用於 Docker 用戶端的相同身分驗證方法。Docker login 和 logout 命令將允許 Notation sign 和 verify 命令使用這些相同的憑證,而且您不必單獨對 Notation 進行身分驗證。如需設定您的 Notation 用戶端進行身分驗證的詳細資訊,請參閱 Notary Project 文件中的使用 OCI 相容登錄檔進行身分驗證

如果您沒有使用 Docker 或其他使用 Docker 憑證的工具,則建議您使用 Amazon ECR Docker 憑證助手做為您的憑證存放區。如需有關如何安裝和設定 Amazon ECR 憑證助手的詳細資訊,請參閱《Amazon ECR Docker 憑證助手》。

簽署映像

下列步驟可用於建立簽署容器映像並將簽章儲存在 Amazon ECR 私有儲存庫中的所需資源。Notation 使用摘要簽署映像。

簽署映像
  1. 使用 AWS Signer 簽署平台建立Notation-OCI-SHA384-ECDSA簽署設定檔。您可以選擇使用 --signature-validity-period 參數來指定簽章有效期。此值可以使用DAYSMONTHSYEARS 來指定。如果未指定任何驗證期間,則會使用預設值 135 個月。

    aws signer put-signing-profile --profile-name ecr_signing_profile --platform-id Notation-OCI-SHA384-ECDSA
    注意

    簽署設定檔名稱僅支援英數字元和底線 (_)。

  2. 驗證 Notation 客戶端到您的預設登錄檔。下列範例使用 AWS CLI 向 Amazon ECR 私有登錄檔驗證 Notation CLI。

    aws ecr get-login-password --region region | notation login --username AWS --password-stdin 111122223333.dkr.ecr.region.amazonaws.com
  3. 使用 Notation CLI 來簽署映像檔,並使用儲存庫名稱和 SHA 摘要來指定映像檔。如此可建立簽章,並將其推播到正在簽署的該映像所在之相同 Amazon ECR 私有儲存庫。

    在下列範例中,我們會使用 SHA 摘要 sha256:ca78e5f730f9a789ef8c63bb55275ac12dfb9e8099e6EXAMPLE 來簽署 curl 儲存庫中的映像檔。

    notation sign 111122223333.dkr.ecr.region.amazonaws.com/curl@sha256:ca78e5f730f9a789ef8c63bb55275ac12dfb9e8099e6EXAMPLE --plugin "com.amazonaws.signer.notation.plugin" --id "arn:aws:signer:region:111122223333:/signing-profiles/ecrSigningProfileName"

後續步驟

簽署容器映像後,您可以在本機驗證簽章。如需驗證映像的指示,請參閱《 AWS Signer 開發人員指南》中的在本機登入後驗證映像