shoc-backend/terraform/secrets.tf
Adam Moussa 25c2e84e8f feat(terraform): adopt live deployment roles safely
Add import-only dev and staging state with least-privilege HCP authentication and plan safety guards.
2026-08-28 19:12:34 -04:00

49 lines
1.2 KiB
HCL

resource "random_password" "jwt" {
length = 64
special = false
}
resource "random_id" "webhook_secret" {
byte_length = 32
}
resource "aws_secretsmanager_secret" "jwt" {
name = local.jwt_secret_name
description = "JWT signing secret for shoc-backend-tf-poc. Rotate the secret version out of band; Terraform ignores later value changes."
recovery_window_in_days = 0
depends_on = [terraform_data.account_guard]
}
resource "aws_secretsmanager_secret_version" "jwt" {
secret_id = aws_secretsmanager_secret.jwt.id
secret_string = random_password.jwt.result
lifecycle {
ignore_changes = [secret_string]
}
}
resource "aws_secretsmanager_secret" "webhook" {
name = local.webhook_secret_name
description = "Work-order webhook HMAC keyset for shoc-backend-tf-poc. Do not use the prod ingest ARN."
recovery_window_in_days = 0
depends_on = [terraform_data.account_guard]
}
resource "aws_secretsmanager_secret_version" "webhook" {
secret_id = aws_secretsmanager_secret.webhook.id
secret_string = jsonencode({
keys = [
{
kid = "tf-poc"
secret = random_id.webhook_secret.hex
}
]
})
lifecycle {
ignore_changes = [secret_string]
}
}