的金鑰管理最佳實務 AWS KMS - AWS 方案指引

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

的金鑰管理最佳實務 AWS KMS

使用 AWS Key Management Service (AWS KMS) 時,您必須做出一些基本的設計決策。這些包括是否使用集中式或分散式模型進行金鑰管理和存取、要使用的金鑰類型,以及要使用的金鑰存放區類型。下列各節可協助您做出適合您的組織和使用案例的決策。本節最後說明停用和刪除 KMS 金鑰的重要考量,包括您應該採取的動作,以協助保護您的資料和金鑰。

選擇集中式或分散式模型

AWS 建議您使用多個 , AWS 帳戶 並在 中將這些帳戶管理為單一組織AWS Organizations。有兩種廣泛的方法來 AWS KMS keys 管理多帳戶環境中的 。

第一種方法是分散式方法,您可以在每個帳戶中建立使用這些金鑰的金鑰。當您將 KMS 金鑰存放在與其保護的資源相同的帳戶中時,將許可委派給了解其 AWS 委託人和金鑰存取要求的本機管理員會更容易。您可以只使用金鑰政策來授權金鑰用量,也可以在 AWS Identity and Access Management (IAM) 中結合金鑰政策和身分型政策

第二個方法是集中式方法,您可以在其中將 KMS 金鑰維持在一個或幾個指定的 中 AWS 帳戶。您只允許其他帳戶將金鑰用於密碼編譯操作。您可以從集中式帳戶管理金鑰、其生命週期及其許可。您允許其他 AWS 帳戶 使用金鑰,但不允許其他許可。外部帳戶無法管理有關金鑰生命週期或存取許可的任何內容。此集中式模型有助於將委派管理員或使用者意外刪除金鑰或權限提升的風險降至最低。

您選擇的選項取決於幾個因素。選擇方法時,請考慮下列事項:

  1. 您是否有用於佈建金鑰和資源存取的自動化或手動程序? 這包括部署管道和基礎設施即程式碼 (IaC) 範本等資源。這些工具可協助您在許多 之間部署和管理資源 (例如 KMS 金鑰、金鑰政策、IAM 角色和 IAM 政策) AWS 帳戶。如果您沒有這些部署工具,對於您的企業而言,集中式的金鑰管理方法可能更易於管理。

  2. 您對 AWS 帳戶 包含使用 KMS 金鑰之資源的所有 是否具有管理控制權? 如果是這樣,集中式模型可以簡化管理,並不需要切換 AWS 帳戶 來管理金鑰。不過,請注意,仍必須針對每個帳戶管理 IAM 角色和使用者使用金鑰的許可。

  3. 您是否需要向擁有自己的 AWS 帳戶 和資源的客戶或合作夥伴提供使用 KMS 金鑰的存取權? 對於這些金鑰,集中式方法可以減少客戶和合作夥伴的管理負擔。

  4. 您是否有存取集中式或本機存取方法更好地解決之 AWS 資源的授權要求? 例如,如果不同的應用程式或業務單位負責管理其自身資料的安全性,則對金鑰管理的分散式方法會更好。

  5. 您是否超過 的服務資源配額 AWS KMS? 由於這些配額是根據 設定 AWS 帳戶,因此分散式模型會將負載分散到 帳戶,有效地乘以服務配額。

    注意

    考慮請求配額時,金鑰的管理模型無關緊要,因為這些配額會套用至對金鑰提出請求的帳戶委託人,而不是擁有或管理金鑰的帳戶。

一般而言,建議您從分散式方法開始,除非您可以明確表達對集中式 KMS 金鑰模型的需求。

選擇客戶受管金鑰、受 AWS 管金鑰或 AWS 擁有的金鑰

您為在自己的密碼編譯應用程式中使用而建立和管理的 KMS 金鑰稱為客戶受管金鑰。 AWS 服務 可以使用客戶受管金鑰來代表您加密服務存放的資料。如果您想要完全控制金鑰的生命週期和用量,建議使用客戶受管金鑰。您的帳戶中有客戶受管金鑰需要每月費用。此外,使用或管理金鑰的請求會產生使用成本。如需詳細資訊,請參閱 AWS KMS 定價

如果您希望 AWS 服務 加密您的資料,但不希望管理金鑰的額外負荷或成本,您可以使用 AWS 受管金鑰。這種類型的金鑰存在於您的帳戶中,但只能在特定情況下使用。它只能用於 AWS 服務 您正在操作的 內容,而且只能由包含金鑰的帳戶內的主體使用。您無法管理有關這些金鑰生命週期或許可的任何內容。有些 AWS 服務 使用 AWS 受管金鑰。 AWS 受管金鑰別名的格式為 aws/<service code>。例如, aws/ebs金鑰只能用來加密與 金鑰相同帳戶中的 Amazon Elastic Block Store (Amazon EBS) 磁碟區,並且只能由該帳戶中的 IAM 主體使用。 AWS 受管金鑰只能由該帳戶中的使用者和該帳戶中的資源使用。您無法與其他 帳戶共用在 AWS 受管金鑰下加密的資源。如果您的使用案例有此限制,我們建議您改用客戶受管金鑰;您可以與任何其他帳戶共用該金鑰的使用。您不需要為帳戶中存在受 AWS 管金鑰付費,但您需為 AWS 服務 指派給金鑰的 對此金鑰類型的任何使用付費。

AWS 受管金鑰是自 2021 AWS 服務 年起不再為新 建立的舊版金鑰類型。反之,新的 (和舊版) AWS 服務 預設會使用 AWS 擁有的金鑰來加密您的資料。 AWS 擁有的金鑰是 AWS 服務 擁有和管理的 KMS 金鑰集合,可用於多個 AWS 帳戶。雖然這些金鑰不在您的 中 AWS 帳戶,但 AWS 服務 可以使用一個金鑰來保護您帳戶中的資源。

建議您在精細控制最重要時使用客戶受管金鑰,並在便利性最重要時使用 AWS 擁有的金鑰。

下表說明每個金鑰類型之間的金鑰政策、記錄、管理和定價差異。如需金鑰類型的詳細資訊,請參閱 AWS KMS 概念

考量事項 客戶受管金鑰 AWS 受管金鑰 AWS 擁有的金鑰
金鑰政策 由客戶獨家控制 由服務控制;客戶可檢視 完全受控制,且只能由加密資料的 AWS 服務 進行檢視
日誌 AWS CloudTrail 客戶追蹤或事件資料存放區 CloudTrail 客戶追蹤或事件資料存放區 客戶無法檢視
生命週期管理 客戶管理輪換、刪除和 AWS 區域 AWS 服務 管理輪換 (每年)、刪除和區域 AWS 服務 管理輪換 (每年)、刪除和區域
定價 金鑰存在的每月費用 (每小時按比例分配);呼叫者需支付 API 用量的費用 金鑰存在不收取費用;呼叫者需支付 API 用量的費用 客戶無須付費

選擇 AWS KMS 金鑰存放區

金鑰存放區是存放和使用密碼編譯金鑰材料的安全位置。金鑰存放區的產業最佳實務是使用稱為硬體安全模組 (HSM) 的裝置,該裝置已在安全層級 3 的 NIST 聯邦資訊處理標準 (FIPS) 140 密碼編譯模組驗證計劃下進行驗證。還有其他程式可支援用於處理付款的金鑰存放區。 AWS Payment Cryptography 是一項服務,可用來保護與付款工作負載相關的資料。

AWS KMS 支援多種金鑰存放區類型,以協助在使用 AWS KMS 建立和管理加密金鑰時保護您的金鑰材料。提供的所有金鑰存放區選項 AWS KMS 都會在安全層級 3 的 FIPS 140 下持續驗證。它們旨在防止任何人,包括 AWS 運算子,在沒有您的許可的情況下存取您的純文字金鑰或使用它們。如需可用金鑰存放區類型的詳細資訊,請參閱 AWS KMS 文件中的金鑰存放區。

AWS KMS 標準金鑰存放區是大多數工作負載的最佳選擇。如果您需要選擇不同類型的金鑰存放區,請仔細考慮是否依法規或其他要求 (例如內部) 要求進行選擇,並仔細權衡成本和利益。

刪除和停用 KMS 金鑰

刪除 KMS 金鑰可能會產生重大影響。在刪除您不再打算使用的 KMS 金鑰之前,請考慮是否足以將金鑰狀態設定為已停用。當金鑰停用時,就無法用於密碼編譯操作。它仍然存在於 中 AWS,您可以視需要在未來重新啟用它。停用的金鑰會持續產生儲存費用。建議您停用金鑰,不要刪除它們,直到您確信金鑰不會保護任何資料或資料金鑰為止。

重要

必須仔細規劃刪除金鑰。如果已刪除對應的金鑰,則無法解密資料。刪除後 AWS 就無法復原已刪除的金鑰。如同 中的其他關鍵操作 AWS,您應該套用限制誰可以排程刪除金鑰的政策,並需要多重驗證 (MFA) 才能刪除金鑰。

為了協助防止意外刪除金鑰, 會在DeleteKey呼叫執行後 AWS KMS 強制執行預設最短等待期間七天,然後再刪除金鑰。您可以將等待期間設定為最大值 30 天。在等待期間,金鑰仍會 AWS KMS 以待定刪除狀態存放在 中。它無法用於加密或解密操作。任何嘗試使用處於待定刪除狀態的金鑰進行加密或解密都會記錄到 AWS CloudTrail。您可以在 CloudTrail 日誌中為這些事件設定 Amazon CloudWatch 警示。 CloudTrail 如果您收到這些事件的警示,您可以選擇視需要取消刪除程序。在等待期間到期之前,您可以從待定刪除狀態復原金鑰,並將其還原為已停用已啟用狀態。

刪除多區域金鑰需要您在原始複本之前刪除複本。如需詳細資訊,請參閱刪除多區域金鑰

如果您使用具有匯入金鑰材料的金鑰,您可以立即刪除匯入的金鑰材料。這與以多種方式刪除 KMS 金鑰不同。當您執行DeleteImportedKeyMaterial動作時, 會 AWS KMS 刪除金鑰材料,且金鑰狀態會變更為待匯入。刪除金鑰材料後,金鑰會立即無法使用。沒有等待期間。若要再次啟用金鑰,您需要再次匯入相同的金鑰材料。KMS 金鑰刪除的等待期間也適用於具有匯入金鑰資料的 KMS 金鑰。

如果資料金鑰受到 KMS 金鑰保護且由 主動使用 AWS 服務,則如果其關聯的 KMS 金鑰已停用,或如果其匯入的金鑰材料遭到刪除,則不會立即受到影響。例如,假設使用具有匯入資料的金鑰來加密具有 SSE-KMS 的物件。您要將物件上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體。將物件上傳至儲存貯體之前,請將材料匯入金鑰。上傳物件之後,您可以從該金鑰刪除匯入的金鑰材料。物件會保持在加密狀態的儲存貯體中,但在刪除的金鑰材料重新匯入金鑰之前,沒有人可以存取物件。雖然此流程需要精確的自動化,才能從金鑰匯入和刪除金鑰材料,但它可以在 環境中提供額外的控制層級。

AWS 提供規範性指引,協助您監控和修復 (如有必要) 排定的 KMS 金鑰刪除。如需詳細資訊,請參閱監控和修復排定的 AWS KMS 金鑰刪除