6

パスワードやキーを配置せずに、インフラストラクチャを適切にセットアップしようとしています。AWS RDS には、ユーザー (アプリケーション) が生成されたトークンで認証できるようにするオプションがあります。

ただし、ドキュメントでは、手順の 1つ (これ) では、Postgres データベースでクエリを実行してユーザーを作成し、特定の権限を付与する必要があります。

CREATE USER test_rds WITH LOGIN;
GRANT rds_iam TO test_rds;

Terraform でスタック全体をプロビジョニングしたい。次のいずれかを使用して、RDS のインスタンス化後にクエリ ( here )を実行するための「ハック」をいくつか調べました。

resource "null_resource" "db_setup" {
  depends_on = ["aws_db_instance.your_database_instance",   "aws_security_group.sg_allowing_external_access"]

    provisioner "local-exec" {
 // run shell commands to manually psql into the db

また:

resource "aws_instance" "web" {


  provisioner "remote-exec" {
    inline = [
   // run shell commands to manually psql into the db

ただし、どちらもマスターパスワードを作成し、何らかの方法で「スクリプト」内に配信する必要があります。

ハードコーディングされたパスワードが渡されずに、Terraform できれいにそれを行うことは可能ですか?

データベースをプロビジョニングし、git リポジトリにパスワードを入力せずに、正しいアクセス許可を持つ特定の EC2/ECS インスタンスのみを有効にしたいと考えています。

4

2 に答える 2