feat(terraform): Refactor roles 14/42214/2
authorPeter Mikus <[email protected]>
Wed, 22 Jan 2025 10:51:02 +0000 (11:51 +0100)
committerPeter Mikus <[email protected]>
Thu, 23 Jan 2025 09:12:41 +0000 (09:12 +0000)
Signed-off-by: Peter Mikus <[email protected]>
Change-Id: Ie5e5bb0d8d3c927c26286439fb128529b8b30a81

fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf
fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf [deleted file]
fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf
fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf
fdio.infra.terraform/terraform-vault-fdio-creds/main.tf [new file with mode: 0644]
fdio.infra.terraform/terraform-vault-fdio-creds/providers.tf [moved from fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/providers.tf with 100% similarity]
fdio.infra.terraform/terraform-vault-fdio-creds/variables.tf [moved from fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf with 100% similarity]
fdio.infra.terraform/terraform-vault-fdio-creds/versions.tf [moved from fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf with 100% similarity]

index cfe326b..b9027a8 100644 (file)
@@ -3,11 +3,6 @@ data "vault_kv_secret_v2" "fdio_logs" {
   name  = "etl/fdio_logs"
 }
 
-data "vault_kv_secret_v2" "fdio_docs" {
-  mount = "kv"
-  name  = "etl/fdio_docs"
-}
-
 data "vault_kv_secret_v2" "csit_docs" {
   mount = "kv"
   name  = "etl/csit_docs"
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf
deleted file mode 100644 (file)
index 08c3ca8..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-module "fdio-logs" {
-  # fdio logs iam
-  source = "../"
-  name   = "dynamic-aws-creds-vault-fdio-logs"
-  aws_access_key = var.aws_access_key
-  aws_secret_key = var.aws_secret_key
-}
-
-module "fdio-docs" {
-  # fdio docs iam
-  source = "../"
-  name   = "dynamic-aws-creds-vault-fdio-docs"
-  aws_access_key = var.aws_access_key
-  aws_secret_key = var.aws_secret_key
-}
-
-module "fdio-csit-jenkins" {
-  # fdio csit jenkins iam
-  source = "../"
-  name   = "dynamic-aws-creds-vault-fdio-csit-jenkins"
-  aws_access_key = var.aws_access_key
-  aws_secret_key = var.aws_secret_key
-}
index 8141219..6a2d42e 100644 (file)
@@ -1,4 +1,4 @@
-resource "vault_aws_secret_backend" "aws" {
+resource "vault_aws_secret_backend" "aws_secret_backend" {
   access_key = var.aws_access_key
   secret_key = var.aws_secret_key
   path       = "${var.name}-path"
@@ -7,34 +7,18 @@ resource "vault_aws_secret_backend" "aws" {
   max_lease_ttl_seconds     = "0"
 }
 
-resource "vault_aws_secret_backend_role" "admin" {
-  backend         = vault_aws_secret_backend.aws.path
+resource "vault_aws_secret_backend_role" "aws_secret_backend_role" {
+  backend         = vault_aws_secret_backend.aws_secret_backend.path
   name            = "${var.name}-role"
   credential_type = "iam_user"
 
-  policy_document = <<EOF
-{
-  "Version": "2012-10-17",
-  "Statement": [
-    {
-      "Effect": "Allow",
-      "Action": [
-        "iam:*",
-        "ec2:*",
-        "s3:*",
-        "elasticbeanstalk:*"
-      ],
-      "Resource": "*"
-    }
-  ]
-}
-EOF
+  policy_document = var.policy_document
 }
 
 output "backend" {
-  value = vault_aws_secret_backend.aws.path
+  value = vault_aws_secret_backend.aws_secret_backend.path
 }
 
 output "role" {
-  value = vault_aws_secret_backend_role.admin.name
+  value = vault_aws_secret_backend_role.aws_secret_backend_role.name
 }
index 2545345..d7a2f4a 100644 (file)
@@ -15,3 +15,8 @@ variable "name" {
   description = "Vault path"
   type        = string
 }
+
+variable "policy_document" {
+  description = "AWS policy document"
+  type        = string
+}
diff --git a/fdio.infra.terraform/terraform-vault-fdio-creds/main.tf b/fdio.infra.terraform/terraform-vault-fdio-creds/main.tf
new file mode 100644 (file)
index 0000000..4469bb1
--- /dev/null
@@ -0,0 +1,86 @@
+module "fdio-logs" {
+  # fdio logs iam
+  source         = "../terraform-vault-aws-secret-backend"
+  name           = "dynamic-aws-creds-vault-fdio-logs"
+  aws_access_key = var.aws_access_key
+  aws_secret_key = var.aws_secret_key
+  policy_document = jsonencode({
+    Statement = [
+      {
+        Action = [
+          "iam:*",
+          "ec2:*",
+          "s3:*",
+          "elasticbeanstalk:*",
+          "ssm:*",
+          "cloudformation:*",
+          "logs:*",
+          "elasticloadbalancing:*",
+          "autoscaling:*",
+          "cloudwatch:*"
+        ]
+        Effect   = "Allow"
+        Resource = "*"
+      },
+    ]
+    Version = "2012-10-17"
+  })
+}
+
+module "csit-cdash" {
+  # csit cdash iam
+  source         = "../terraform-vault-aws-secret-backend"
+  name           = "dynamic-aws-creds-vault-cdash"
+  aws_access_key = var.aws_access_key
+  aws_secret_key = var.aws_secret_key
+  policy_document = jsonencode({
+    Statement = [
+      {
+        Action = [
+          "iam:*",
+          "ec2:*",
+          "s3:*",
+          "elasticbeanstalk:*",
+          "ssm:*",
+          "cloudformation:*",
+          "logs:*",
+          "elasticloadbalancing:*",
+          "autoscaling:*",
+          "cloudwatch:*"
+        ]
+        Effect   = "Allow"
+        Resource = "*"
+      },
+    ]
+    Version = "2012-10-17"
+  })
+}
+
+module "fdio-csit-jenkins" {
+  # fdio csit jenkins iam
+  source         = "../terraform-vault-aws-secret-backend"
+  name           = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+  aws_access_key = var.aws_access_key
+  aws_secret_key = var.aws_secret_key
+  policy_document = jsonencode({
+    Statement = [
+      {
+        Action = [
+          "iam:*",
+          "ec2:*",
+          "s3:*",
+          "elasticbeanstalk:*",
+          "ssm:*",
+          "cloudformation:*",
+          "logs:*",
+          "elasticloadbalancing:*",
+          "autoscaling:*",
+          "cloudwatch:*"
+        ]
+        Effect   = "Allow"
+        Resource = "*"
+      },
+    ]
+    Version = "2012-10-17"
+  })
+}