main.tf 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. data "aws_caller_identity" "current" {}
  2. resource "aws_iam_role" "deploy" {
  3. name = "${var.prefix}-terraform"
  4. permissions_boundary = aws_iam_policy.deploy_boundary.arn
  5. assume_role_policy = templatefile("${path.module}/policies/assume-role-for-account.json", {
  6. account_id = var.account_id
  7. aws_partition = var.aws_partition
  8. })
  9. }
  10. resource "aws_iam_policy" "boundary" {
  11. name = "${var.prefix}-boundary"
  12. path = "/${var.namespaces.boundary_namespace}/"
  13. policy = templatefile("${path.module}/policies/boundary.json", {
  14. role_namespace = var.namespaces.role_namespace
  15. account_id = data.aws_caller_identity.current.account_id
  16. aws_partition = var.aws_partition
  17. })
  18. }
  19. resource "aws_iam_policy" "deploy" {
  20. name = "${var.prefix}-terraform"
  21. path = "/"
  22. policy = templatefile("${path.module}/policies/deploy-policy.json", {
  23. account_id = data.aws_caller_identity.current.account_id
  24. })
  25. }
  26. resource "aws_iam_role_policy_attachment" "deploy" {
  27. role = aws_iam_role.deploy.name
  28. policy_arn = aws_iam_policy.deploy.arn
  29. }
  30. resource "aws_iam_policy" "deploy_boundary" {
  31. name = "${var.prefix}-terraform-boundary"
  32. path = "/${var.namespaces.boundary_namespace}/"
  33. policy = templatefile("${path.module}/policies/deploy-boundary.json", {
  34. account_id = data.aws_caller_identity.current.account_id
  35. role_namespace = var.namespaces.role_namespace
  36. policy_namespace = var.namespaces.policy_namespace
  37. instance_profile_namespace = var.namespaces.instance_profile_namespace
  38. boundary_namespace = var.namespaces.boundary_namespace
  39. permission_boundary = aws_iam_policy.boundary.arn
  40. aws_partition = var.aws_partition
  41. })
  42. }