AWS Key Management Service和AWS CodeCommit存儲庫的加密 - AWS CodeCommit

AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可繼續正常使用此服務。了解更多」

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

AWS Key Management Service和AWS CodeCommit存儲庫的加密

CodeCommit 儲存庫中的資料在傳輸和靜態時都會加密。將資料推入儲存 CodeCommit 庫時 (例如,透過呼叫git push),會在收到的資料儲存在儲存庫中時 CodeCommit 加密該資料。從 CodeCommit 儲存庫中提取資料時 (例如,透過呼叫git pull),將資料 CodeCommit 解密,然後將其傳送給呼叫者。這假設與推送或提取請求相關聯的 IAM 使用者已經過驗證AWS。傳送或接收的資料是利用 HTTPS 或 SSH 加密網路通訊協定來傳輸。

您可以使用AWS 受管金鑰或客戶管理的金鑰來加密和解密儲存庫中的資料。如需有關客戶受管金鑰之間差異的詳細資訊AWS 受管金鑰,請參閱客戶受管金鑰和 AWS 受管金鑰. 如果您未指定客戶管理的金鑰, CodeCommit 將使AWS 受管金鑰用來加密和解密儲存庫中的資料。這AWS 受管金鑰是自動為您在AWS 帳戶. 第一次在 Amazon Web Services 帳戶的新 CodeCommit 儲存庫AWS 區域中建 CodeCommit 立儲存庫時,如果您未指定客戶受管金鑰,請在 AWS 受管金鑰 () 中建立相同AWS 區域的aws/codecommit金鑰 AWS Key Management Service (金鑰AWS KMS)。此aws/codecommit金鑰僅供使用 CodeCommit。它存儲在您的 Amazon Web Services 帳戶中。根據您指定的內容,可 CodeCommit 以使用客戶管理的金鑰,或使用AWS 受管金鑰來加密和解密儲存庫中的資料。

重要

CodeCommit AWS KMS對用於加密和解密儲存庫中資料的AWS KMS金鑰執行下列動作。如果您使用的是AWS 受管金鑰,使用者不需要明確的權限來執行這些動作,但使用者不得有任何拒絕aws/codecommit金鑰執行這些動作的附加原則。如果您使用的客戶管理金鑰的 AWS 帳戶 ID 已設定為該金鑰的原則主體,則必須將這些權限明確設定為allow。具體來說,當您建立第一個儲存區域時,如果您更新儲存庫的金鑰,則不得將下列任何權限設定為AWS 受管金鑰,deny如果您使用的是原則主體的 Customer Managed 金鑰,則必須設定為:allow

  • "kms:Encrypt"

  • "kms:Decrypt"

  • "kms:ReEncrypt"(根據上下文,這可能需要kms:ReEncryptFrom

    kms:ReEncryptTo,或kms:ReEncrypt*不設置為拒絕)

  • "kms:GenerateDataKey"

  • "kms:GenerateDataKeyWithoutPlaintext"

  • "kms:DescribeKey"

如果您想要使用自己的客戶管理金鑰,則該金鑰必須位於存放庫所AWS 區域在的位置。 CodeCommit 支援使用單一和多區域客戶管理金鑰。雖然支援所有金鑰材料原點類型,但我們建議您使用預設的 KMS 選項。使用外部金鑰存放區選項的客戶可能會遇到其商店供應商的延遲。此外。 CodeCommit 客戶受管金鑰具有下列需求:

  • CodeCommit 僅支持使用對稱密鑰。

  • 金鑰使用類型必須設定為加密和解密

如需有關建立客戶管理金鑰的詳細資訊,請參閱概念建立金鑰

若要查看AWS 受管金鑰產生者的相關資訊 CodeCommit,請執行下列動作:

  1. 請登入 AWS Management Console,並開啟 AWS Key Management Service (AWS KMS) 主控台 (網站:https://console.aws.amazon.com/kms)。

  2. 若要變更 AWS 區域,請使用頁面右上角的區域選取器。

  3. 在服務導覽窗格中,選擇AWS 受管金鑰。請確定您已登入您AWS 區域要檢閱金鑰的位置。

  4. 在加密密鑰列表中,選擇AWS 受管金鑰與別名 aws/代碼提交。將顯示有關的AWS 擁有的金鑰基本資訊。

您無法變更或刪除此項AWS 受管金鑰。

如何使用加密演算法來加密儲存庫資料

CodeCommit 使用兩種不同的方法來加密數據。小於 6 MB 的個別 Git 物件是使用 AES-GCM-256 進行加密,此方法會提供資料完整性驗證。對於單一 Blob,介於 6 MB 到最大 2 GB 之間的物件會使用 AES-CBC-256 加密。 CodeCommit 一律驗證加密內容。

加密內容

每一個與 AWS KMS 整合的服務會指定適用於加密和解密操作的加密環境。加密環境是 AWS KMS 用來檢查資料完整性的額外驗證資訊。如果為加密操作指定,則在解密操作中也必須指定。否則,解密會失敗。 CodeCommit 使用 CodeCommit 儲存庫 ID 作為加密內容。您可以使用get-repository命令或 CodeCommit 控制台來查找存儲庫 ID。搜尋AWS CloudTrail記錄檔中的 CodeCommit 存放庫 ID,以瞭解針對哪個金鑰進行了哪些加密作業,AWS KMS以加密或解密 CodeCommit 儲存庫中的資料。

如需 AWS KMS 的詳細資訊,請參閱《AWS Key Management Service 開發人員指南》https://docs.aws.amazon.com/kms/latest/developerguide/