通过 Terraform 部署时如何避免 RDS 使用明文主密码以及如何检索密码以在服务器中使用它

How to avoid having plaintext master-passwords for RDS when deployed through terraform and How to retrieve password to use it in a server

我是堆栈溢出的新手。如果我没有正确格式化,请道歉。 我目前正在使用 terraform 来配置 aurora-rds。问题是,我不应该将 db master-password 作为明文放在 .tf 文件中。 我最初一直使用此配置和明文密码。

    engine          = "aurora-mysql"
    engine_version  = "5.7.12"
    cluster_family  = "aurora-mysql5.7"
    cluster_size    = "1"
    namespace       = "eg"
    stage           = "dev"
    admin_user      = "admin"
    admin_password  = "passwordhere"
    db_name         = "dbname"
    db_port         = "3306

我正在寻找一种解决方案,我可以在其中跳过如上所示的明文密码,并自动生成一些内容并能够将其包含到 terraform 文件中。此外,我必须能够检索密码,以便我可以使用它来配置 wordpress 服务器。

https://gist.github.com/smiller171/6be734957e30c5d4e4b15422634f13f4 我遇到了这个解决方案,但不确定如何检索密码以在服务器中使用它。好吧,我还没有部署它。

正如您在问题中提到的,有一个 workaround 您还没有尝试过。

我建议先尝试一下,如果成功,然后使用 output terraform 资源找回密码。

output "db_password" {
  value = ${random_string.db_master_pass.result}
  description = "db password"
}

一旦你的 terraform 运行 完成,你可以使用 terraform output db_password 检索该值,或者如果你想在 terraform 代码本身的某个地方引用该密码,那么立即引用该变量 ${db_password}