mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 07:13:12 +00:00
Add import-only dev and staging state with least-privilege HCP authentication and plan safety guards.
49 lines
1.2 KiB
HCL
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]
|
|
}
|
|
}
|