role-mdr_developer.tf 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. # tfsec:ignore:aws-iam-no-policy-wildcards - baseline this setting first. We use wildcards in policies
  23. statement {
  24. sid = "S3Access"
  25. effect = "Allow"
  26. actions = [
  27. "s3:*"
  28. ]
  29. # These resources might not exist yet
  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. resources = [
  44. "arn:${local.aws_partition}:iam::*:role/user/mdr_developer",
  45. ]
  46. }
  47. }
  48. resource "aws_iam_policy" "mdr_developer" {
  49. name = "mdr_developer"
  50. path = "/user/"
  51. policy = data.aws_iam_policy_document.mdr_developer.json
  52. }