role-mdr_developer.tf 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. resource "aws_iam_role" "mdr_developer" {
  2. name = "mdr_developer"
  3. path = "/user/"
  4. assume_role_policy = data.aws_iam_policy_document.non_saml_assume_role_policy_developer.json
  5. max_session_duration = 28800
  6. }
  7. resource "aws_iam_role_policy_attachment" "mdr_developer-mdr_developer" {
  8. role = aws_iam_role.mdr_developer.name
  9. policy_arn = aws_iam_policy.mdr_developer.arn
  10. }
  11. # I don't _think_ developers need support access, but in case that changes:
  12. #resource aws_iam_role_policy_attachment "mdr_terraformer-AWSSupportAccess" {
  13. # role = aws_iam_role.mdr_terraformer.name
  14. # policy_arn = "arn:${data.aws_partition.current.partition}:iam::aws:policy/AWSSupportAccess"
  15. #}
  16. resource "aws_iam_role_policy_attachment" "mdr_developer_ViewOnlyAccess" {
  17. # no poitn in giving _less_ access for switching roles
  18. role = aws_iam_role.mdr_developer.name
  19. policy_arn = "arn:${local.aws_partition}:iam::aws:policy/job-function/ViewOnlyAccess"
  20. }
  21. data "aws_iam_policy_document" "mdr_developer" {
  22. statement {
  23. sid = "S3Access"
  24. effect = "Allow"
  25. actions = [ #tfsec:ignore:aws-iam-no-policy-wildcards - baseline this setting first. Lockdown after baselining IAM permissions
  26. "s3:*"
  27. ]
  28. # These resources might not exist yet
  29. #tfsec:ignore:aws-iam-no-policy-wildcards - baseline this setting first. Lockdown after baselining IAM permissions
  30. resources = [
  31. "arn:${local.aws_partition}:s3:::afsxdr-binaries",
  32. "arn:${local.aws_partition}:s3:::afsxdr-binaries/*",
  33. "arn:${local.aws_partition}:s3:::xdr-trumpet*",
  34. "arn:${local.aws_partition}:s3:::xdr-trumpet*/*",
  35. ]
  36. }
  37. statement {
  38. sid = "AssumeThisRoleInOtherAccounts"
  39. effect = "Allow"
  40. actions = [
  41. "sts:AssumeRole"
  42. ]
  43. #tfsec:ignore:aws-iam-no-policy-wildcards - baseline this setting first. Lockdown after baselining IAM permissions
  44. resources = [
  45. "arn:${local.aws_partition}:iam::*:role/user/mdr_developer",
  46. ]
  47. }
  48. }
  49. resource "aws_iam_policy" "mdr_developer" {
  50. name = "mdr_developer"
  51. path = "/user/"
  52. policy = data.aws_iam_policy_document.mdr_developer.json
  53. }