WKLD.03 – 使用暫時性機密或機密管理服務 - AWS 規定指引

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

WKLD.03 – 使用暫時性機密或機密管理服務

應用程式機密主要由憑證組成,例如金鑰對、存取字符、數位憑證和登入憑證。應用程式使用這些機密來存取它所依賴的其他服務,例如資料庫。為了協助保護這些機密,我們建議其或者是暫時性的 (在請求時產生並且是短期的,例如 IAM 角色),或者是從機密管理服務中擷取的。這可防止透過不太安全的機制 (例如保留在靜態組態檔案中) 意外暴露。這也可更輕鬆地將應用程式程式碼從開發環境提升至生產環境。

對於機密管理服務,我們建議使用 Parameter Store、AWS Systems Manager 的功能和 AWS Secrets Manager 的組合:

  • 使用 Parameter Store 來管理機密和其他參數,這些參數是個別鍵值對、字串型、總長度短且存取頻繁的參數。您可以使用 AWS Key Management Service (AWS KMS) 密鑰來加密機密。將參數儲存在 Parameter Store 的標準層中無需付費。如需有關參數層的詳細資訊,請參閱「管理參數層」(Systems Manager 文件)。

  • 使用 Secrets Manager 儲存文件形式的機密 (例如多個相關的金鑰值對)、大於 4 KB 的機密 (例如數位憑證) 或受益於自動輪換的機密。

您可以使用 Parameter Store API 擷取儲存在 Secrets Manager 中的機密。這可讓您在使用這兩種服務的組合時,將應用程式中的程式碼標準化。

在 Parameter Store 中管理機密
  1. 建立對稱 AWS KMS 金鑰 (AWS KMS 文件)。

  2. 建立 SecureString 參數 (Systems Manager 文件)。Parameter Store 中的機密使用 SecureString 資料類型。

  3. 在您的應用程式中,使用適合您的程式設計語言的 AWS SDK 從 Parameter Store 擷取參數。如需 Java 中的範例,請參閱 GetParameter.java (AWS 程式碼範例目錄)。

在 Secrets Manager 中管理機密
  1. 建立機密 (Secrets Manager 文件)。

  2. 從程式碼中的 AWS Secrets Manager 擷取機密 (Secrets Manager 文件)。

    請務必閱讀使用 AWS Secrets Manager 用戶端快取庫提高使用機密的可用性和延遲 (AWS 部落格文章)。使用已實作最佳實務的客戶端 SDK 應可以加速並簡化 Secrets Manager 的使用和整合。