SEC08-BP01 實作安全金鑰管理
安全金鑰管理包括儲存、輪替、存取控制及監控保護工作負載的靜態資料所需的金鑰資料。
預期成果: 可擴展、可重複且自動化的金鑰管理機制。此機制應提供對金鑰資料強制執行最低權限存取的能力,並且在金鑰可用性、機密性和完整性之間提供正確的平衡。金鑰存取權應受到監控,而金鑰資料應透過自動化程序輪替。金鑰資料絕不可供真人身分存取。
常見的反模式:
-
真人存取未加密的金鑰資料。
-
建立自訂的加密演算法。
-
存取金鑰資料的許可過於廣泛。
建立此最佳實務的優勢: 透過為工作負載建立安全的金鑰管理機制,就可以協助保護您的內容,防止未經授權的存取。此外,您可能需要依法加密您的資料。有效的金鑰管理解決方案能夠提供符合這些法規的技術機制,以保護金鑰資料。
未建立此最佳實務時的曝險等級: 高
實作指引
許多法規需求和最佳實務都納入了靜態資料加密做為基本的安全控制。為了符合此控制,您的工作負載須採取某種機制,以安全存放和管理用於加密靜態資料的金鑰資料。
AWS 提供 AWS Key Management Service (AWS KMS) 來為 AWS KMS 金鑰提供耐用、安全和冗餘的儲存。
許多 AWS 服務會與 AWS KMS 整合,
使用多帳戶策略部署工作負載時,會採取的 最佳實務 是將 AWS KMS 金鑰與使用金鑰的工作負載保留在相同的帳戶中。在這個分散式模型中,管理 AWS KMS 金鑰的責任會落在應用程式團隊身上。在其他使用案例中,組織可能會選擇將 AWS KMS 金鑰儲存到集中式帳戶中。此集中式結構須實施其他政策來實現跨帳戶存取權,才能讓工作負載帳戶存取儲存在集中式帳戶中的金鑰,但此結構可能較適合跨多個 AWS 帳戶 共用單一金鑰的使用案例。
無論金鑰資料存放在何處,金鑰的存取權都應透過使用 金鑰政策 和 IAM 政策進行嚴格控管。金鑰政策是控制 AWS KMS 金鑰存取權的主要方式。此外,AWS KMS 金鑰授權可提供 AWS 服務的存取權,以代表您加密和解密資料。請安排時間來檢閱 AWS KMS 金鑰存取控制的最佳實務。
最佳實務是監控加密金鑰的使用情況,以偵測不尋常的存取模式。使用存放在 AWS KMS 中 AWS 管理的金鑰和客戶管理的金鑰執行的操作可記錄在 AWS CloudTrail 中,並且應定期檢閱。應特別注意監控金鑰銷毀事件。為了減少意外或惡意銷毀金鑰資料的情況,金鑰銷毀事件並不會立即刪除金鑰資料。嘗試刪除 AWS KMS 中的金鑰會受到 等待期的約束 (預設為 30 天),讓管理員有時間檢閱這些動作,並在必要時撤回請求。
大多數 AWS 服務會以顯而易見的方式使用 AWS KMS,您唯一要做的就是決定要使用 AWS 管理或客戶管理的金鑰。如果您的工作負載要求直接使用 AWS KMS 來加密或解密資料,則最佳實務是使用 封套加密 來保護您的資料。此 AWS Encryption SDK 可為您的應用程式提供用戶端加密基本類型,以實作封套加密並與 AWS KMS 整合。
實作步驟
-
確定適當的 金鑰管理選項 (AWS 管理或客戶管理的金鑰)。
-
為了方便使用,AWS 為大多數服務提供了 AWS 擁有和 AWS 管理的金鑰,其提供靜態加密功能,而不需要管理金鑰資料或金鑰政策。
-
使用客戶管理的金鑰時,請考慮使用預設金鑰存放區,以便在敏捷性、安全性、資料主權與可用性之間達到最佳平衡。其他使用案例可能會要求使用自訂金鑰存放區搭配 AWS CloudHSM
或 外部金鑰存放區。
-
-
檢閱您用於工作負載的服務清單,以了解 AWS KMS 與服務整合的方式。例如,EC2 執行個體可以使用加密的 EBS 磁碟區,因此要確認從這些磁碟區建立的 Amazon EBS 快照同樣是使用客戶管理的金鑰加密,並減少意外洩漏未加密的快照資料。
-
如需有關 AWS 服務所提供加密選項的詳細資訊,請參閱使用者指南中的「靜態加密」主題或服務的開發人員指南。
-
實作 AWS KMS:AWS KMS 可讓您輕鬆建立和管理金鑰,並控制多種 AWS 服務和應用程式中的加密使用方式。
-
考慮 AWS Encryption SDK:當您的應用程式需要在用戶端對資料進行加密時,可使用整合 AWS KMS 的 AWS Encryption SDK。
-
啟用 IAM Access Analyzer 以自動檢閱並在發現有過度廣泛的 AWS KMS 金鑰政策時發出通知。
-
啟用 Security Hub 以在金鑰政策設定錯誤、有排定要刪除的金鑰,或有未啟用自動輪替的金鑰時收到通知。
-
確定適合 AWS KMS 金鑰的記錄層級。由於 AWS KMS 的呼叫 (包括唯讀事件) 會加以記錄,因此與 AWS KMS 相關聯的 CloudTrail 日誌可能會變得很龐大。
-
有些組織偏好將 AWS KMS 記錄活動分隔為單獨的軌跡記錄。如需詳細資訊,請參閱 「使用 CloudTrail 記錄 AWS KMS API 呼叫」 一節 (《AWS KMS 開發人員指南》中)。
-
資源
相關文件:
相關影片:
相關範例: