front-integrations/terraform/iam.tf
Adam Moussa 1ad265b177
feat(terraform): migrate front-integrations to HCP Terraform
Freeze SAM CD and add Terraform for seahaven-prod (Lambdas, DynamoDB,
EventBridge, alarms) so HCP becomes the sole deploy path. Include prod
secret ARNs in the tfvars example for workspace wiring.
2026-08-05 18:38:12 -04:00

53 lines
1.6 KiB
HCL

data "aws_iam_policy_document" "lambda_assume" {
statement {
effect = "Allow"
actions = ["sts:AssumeRole"]
principals {
type = "Service"
identifiers = ["lambda.amazonaws.com"]
}
}
}
resource "aws_iam_role" "sla_monitor" {
name = "front-sla-monitor"
path = "/tf-managed/"
assume_role_policy = data.aws_iam_policy_document.lambda_assume.json
permissions_boundary = local.boundary_arn
}
resource "aws_iam_role_policy_attachment" "sla_monitor_basic" {
role = aws_iam_role.sla_monitor.name
policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
}
resource "aws_iam_role_policy" "sla_monitor_secrets" {
name = "secretsmanager-get"
role = aws_iam_role.sla_monitor.id
policy = local.sla_monitor_secrets_policy_json
}
resource "aws_iam_role_policy" "sla_monitor_ddb" {
name = "dynamodb-crud"
role = aws_iam_role.sla_monitor.id
policy = local.sla_monitor_ddb_policy_json
}
resource "aws_iam_role" "user_sync" {
name = "front-user-sync"
path = "/tf-managed/"
assume_role_policy = data.aws_iam_policy_document.lambda_assume.json
permissions_boundary = local.boundary_arn
}
resource "aws_iam_role_policy_attachment" "user_sync_basic" {
role = aws_iam_role.user_sync.name
policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
}
resource "aws_iam_role_policy" "user_sync_secrets" {
name = "secretsmanager-get"
role = aws_iam_role.user_sync.id
policy = local.user_sync_secrets_policy_json
}