iam_splunk_sh.tf 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # Creates an IAM role so that splunk can trigger creation of audit reports
  2. resource "aws_iam_role" "run_audit_report_role" {
  3. provider = aws.common # COMMON SERVICES
  4. name = "run_audit_report_role"
  5. path = "/service/"
  6. assume_role_policy = jsonencode(
  7. {
  8. "Version" : "2012-10-17",
  9. "Statement" : [
  10. {
  11. "Effect" : "Allow",
  12. "Principal" : {
  13. "AWS" : "arn:${var.aws_partition}:iam::${var.c2_accounts[var.aws_partition]}:role/instance/moose-splunk-sh-instance-role"
  14. },
  15. "Action" : "sts:AssumeRole"
  16. }
  17. ]
  18. })
  19. tags = merge(local.standard_tags, var.tags)
  20. }
  21. # tfsec:ignore:aws-iam-no-policy-wildcards Allows use by the entire account
  22. data "aws_iam_policy_document" "run_audit_report_policy_doc" {
  23. # checkov:skip=CKV_AWS_111: see tfsec aws-iam-no-policy-wildcard ignore comment
  24. statement {
  25. sid = ""
  26. effect = "Allow"
  27. resources = ["*"]
  28. actions = [
  29. "acm-pca:CreateCertificateAuthorityAuditReport"
  30. ]
  31. }
  32. }
  33. resource "aws_iam_policy" "run_audit_report_policy" {
  34. provider = aws.common # COMMON SERVICES
  35. name = "run_audit_report_policy"
  36. path = "/"
  37. policy = data.aws_iam_policy_document.run_audit_report_policy_doc.json
  38. }
  39. resource "aws_iam_role_policy_attachment" "run_audit_report_policy_attach" {
  40. provider = aws.common # COMMON SERVICES
  41. role = aws_iam_role.run_audit_report_role.name
  42. policy_arn = aws_iam_policy.run_audit_report_policy.arn
  43. }