WKLD.03 使用暫時性秘密或秘密管理服務 - AWS 方案指引

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

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

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

對於秘密管理服務,我們建議您使用 參數存放區、 功能 AWS Systems Manager和 的組合 AWS Secrets Manager:

  • 使用 Parameter Store 來管理機密和其他參數,這些參數是個別鍵值對、字串型、總長度短且存取頻繁的參數。您可以使用 a 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,從參數存放區擷取參數。如需程式碼範例,請參閱 GetParameter (AWS SDK Code Library)。

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

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

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