使用Terraform创建RDS(Amazon Aurora PostgreSQL)并提供功能(IAM认证、旋转主控pw)

使用Terraform创建RDS(Amazon Aurora PostgreSQL)并提供功能(IAM认证、旋转主控pw),terraform,amazon-rds,amazon-iam,aurora,Terraform,Amazon Rds,Amazon Iam,Aurora,我的任务是使用Terraform创建一个RDS集群模块,该模块将允许消费者启动他们自己的集群/dbs等。这是非常简单的,但这是第二批让我感到紧张的需求。DBA想知道如何执行以下操作: 在secrets manager中存储并旋转主密码 通过自动化创建其他数据库、用户等(无需单击操作) 利用IAM身份验证,以便不必创建/验证用户 我已经研究了很多不同的方法来做这件事,因为我对这件事相当陌生,似乎没有什么能被认为是“最好的解决方案”。有没有人能给我一份他们是如何完成类似任务的摘要?您是使用lambd

我的任务是使用Terraform创建一个RDS集群模块,该模块将允许消费者启动他们自己的集群/dbs等。这是非常简单的,但这是第二批让我感到紧张的需求。DBA想知道如何执行以下操作:

  • 在secrets manager中存储并旋转主密码
  • 通过自动化创建其他数据库、用户等(无需单击操作)
  • 利用IAM身份验证,以便不必创建/验证用户
  • 我已经研究了很多不同的方法来做这件事,因为我对这件事相当陌生,似乎没有什么能被认为是“最好的解决方案”。有没有人能给我一份他们是如何完成类似任务的摘要?您是使用lambda函数存储和旋转密码,还是将主用户分配给IAM角色?您是使用TF postgres提供程序来创建角色,还是编写自己的代码来实现自动化

    我真的很感激任何指导。
    感谢堆

    所描述的问题是相当普遍的,但在我看来,你几乎可以让一切都在地形的直接控制之下

  • 在secrets manager中存储并旋转主密码
  • 秘密经理是一条路要走。但是,密码轮换将是一个问题。当您在AWS控制台中启用旋转时,AWS会神奇地为您提供一个lambda。如果您不使用console,则需要更多的参与,因为它们需要使用aws无服务器repo(SAR)。可悲的是,官方对搜救的支持是地面形式的。因此,您必须使用
    local exec
    provisioner来运行aws cli以创建旋转lambda,如使用SAR的链接文档中所示

  • 通过自动化创建其他数据库、用户等(无需单击操作)
  • 正如你已经指出的,TF是第一个要考虑的事情。< /P>

  • 利用IAM身份验证,以便不必创建/验证用户

  • 这可以通过使用来启用。但您应该知道,在使用IAM auth时,会有一些问题。最值得注意的是,只支持PostgreSQL版本9.6.9和10.4或更高版本,您每秒的连接数将受到影响。

    对于将来想做类似事情的人,请继续关注第1点

    我最终使用cloudformation\u stack terraform资源来创建秘密附件和秘密旋转,并从我的terraform资源中传递参数值


    当terraform引入这些资源时,它可以完美且轻松地关闭。

    优秀的反馈Marcin。谢谢你!如果您不想使用IAM auth,但仍想自动创建用户/dbs等,您会继续在TF中使用postgres provider还是创建更自定义的内容?@user1495536没问题。希望答案是有帮助的。我会先看看TF提供商。只有当你发现它不适合(它的用例特定,很难推测),我才会考虑一些定制的解决方案。