WKLD.03 — 使用臨時祕密或祕密管理服務 - AWS規範指導

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

WKLD.03 — 使用臨時祕密或祕密管理服務

應用程序密鑰主要由憑據組成,例如密鑰對、訪問令牌、數字證書以及用户名和密碼組合。應用程序使用這些機密訪問它所依賴的其他服務(如數據庫)。為了幫助保護這些祕密,我們建議它們是短暫的(在請求時生成的,而且使用 IAM 角色)或者是從祕密管理服務中檢索的。這樣可以通過安全性較低的機制(如保留在靜態配置文件中)防止意外泄露。這還可以更輕鬆地將應用程序代碼從開發環境升級到生產環境。

對於祕密管理服務,我們建議使用參數存儲的組合,即AWS Systems Manager,和AWS Secrets Manager:

  • 使用參數存儲可以管理密鑰和其他參數,這些參數是單個鍵值對、基於字符串、總長度短且經常訪問的參數。您可以使用AWS Key Management Service(AWS KMS) 密鑰來加密該密鑰。在參數存儲的標準層中存儲參數不收費。有關參數層的詳細信息,請參閲管理參數層(Systems Manager 文檔)。

  • 使用 Secrets Manager 可以存儲以文檔形式(如多個相關鍵值對)、大於 4 KB(如數字證書)或從自動旋轉中受益的祕密。

您可以使用參數存儲 API 檢索 Secrets Manager 中存儲的密文。這允許您在使用兩種服務的組合時對應用程序中的代碼進行標準化。

管理參數存儲中的密文

  1. 建立對稱AWS KMS鍵(AWS KMS文件中)。

  2. 建立 SecureString 參數(Systems Manager 文檔)。參數存儲中的密文使用SecureString數據類型。

  3. 在您的應用程序中,使用AWS適用於您編程語言的 SDK。如需 Java 範例,請參GetParameter.java(AWS 程式碼範例目錄。

若要在 Secret Manager 中管理祕密

  1. 建立秘密(Secrets Manager 文檔)。

  2. 從中檢索密AWS Secrets Manager在代碼中(Secrets Manager 文檔)。

    重要的是閲讀使用AWS Secrets Manager客户端緩存庫,以提高使用祕密的可用性和延遲(AWS部落格文章)。使用已經實施了最佳實踐的客户端 SDK 應加快和簡化 Secrets Manager 的使用和集成。