如何使用secret manager来存储数据库密码?

How to use secret manager to store database password?

由secret manager生成的数据库有密码好不好?

我现在就是这样用的。

Type: 'AWS::SecretsManager::Secret'
Properties:
  Description: 'Description'
  GenerateSecretString:
    SecretStringTemplate: '{"username": "username"}'
    GenerateStringKey: 'password'
    PasswordLength: 40
    ExcludeCharacters: '"@/\'

最佳做法是什么?每个 RDS 都需要一个单独的秘密管理器吗?在秘密管理器中存储其他值怎么样?每个应用程序都需要一个吗?

是的,拥有由 AWS secrets manger 管理的轮换数据库凭证是件好事。它提高了应用程序的安全性。您的数据库凭据不再存储在您的项目配置中。 Secrets Manger 会为您解决这个问题..

要了解整个操作和最佳实践,请阅读亚马逊的这份文档 - https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html

选项 2 如果您只想在项目配置之外维护您的数据库凭证并且不想自动轮换密钥,您可以在 AWS Secrets Manager 中创建一个简单的密钥来存储您的应用程序数据库凭证,然后使用 read/get secret AWS SDK API(基于您的应用程序编程语言)在您的应用程序运行时获取数据库机密以连接数据库。

是的,在 AWS Secret Manager User Guide

中推荐在 Secret Manager 中存储数据库密码

您可以创建多个密文,然后通过密文名称或 ARN 访问它们

这样做的最大好处是您可以定期轮换您的数据库密码

您可以在 Best practices for aws secret manager

阅读更多内容