Skip to content

Instantly share code, notes, and snippets.

@evilensky
Forked from bschaatsbergen/db.tf
Created March 3, 2025 23:53
Show Gist options
  • Save evilensky/5ab18906004be7116fb239a81282ffca to your computer and use it in GitHub Desktop.
Save evilensky/5ab18906004be7116fb239a81282ffca to your computer and use it in GitHub Desktop.
Ephemerality in Terraform
provider "aws" {
region = "us-west-2"
}
ephemeral "random_password" "db_password" {
length = 16
}
resource "aws_secretsmanager_secret" "db_password" {
name = "db-password"
}
resource "aws_secretsmanager_secret_version" "db_password" {
secret_id = aws_secretsmanager_secret.db_password.id
secret_string_wo = ephemeral.random_password.db_password.result
secret_string_wo_version = 1
}
ephemeral "aws_secretsmanager_secret_version" "db_password" {
secret_id = aws_secretsmanager_secret.db_password.id
}
resource "aws_db_instance" "example" {
instance_class = "db.t3.micro"
allocated_storage = "5"
engine = "postgres"
username = "example"
skip_final_snapshot = true
password_wo = ephemeral.aws_secretsmanager_secret_version.db_password.secret_string
password_wo_version = aws_secretsmanager_secret_version.db_password.secret_string_wo_version
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment