aws 自动化过程使用的密码加密

password encryption for use by aws automated process

我有一个自动创建一些 AWS 实例并在其上运行脚本的应用程序。

每个脚本都尝试连接到远程数据库,我需要为其提供 Public DNS 主机名、数据库密码、数据库用户名等...

无需存储明文密码的最安全方法是什么?

在不冒其他人风险的情况下 运行 相同的脚本能够获得这些凭据?

非常感谢

您可以使用 AWS SSM service's Parameter Store:

Parameter Store centralizes the management of configuration data - such as passwords, license keys, or database connection strings - that you commonly reference in scripts, commands, or other automation and configuration workflows. With granular security controls for managing user access and strong encryption for sensitive data such as passwords, Parameter Store improves the overall security posture of your managed instances. Encrypting parameters with Parameter Store is not supported in all regions.

您将创建一个 IAM 角色,该角色可以访问 Parameter Store 值,并将该角色分配给您正在动态创建的 EC2 实例。然后脚本将能够使用 AWS SDK/CLI 从参数存储中检索这些值。


或者,如果数据库是 RDS 数据库 that supports IAM authentication(目前只有 MySQL 和 Aurora),那么您可以创建一个可以直接访问数据库的 IAM 角色并分配该角色到 EC2 实例。