role-mdr_developer.tf 1.8 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. statement {
  23. sid = "S3Access"
  24. effect = "Allow"
  25. actions = [
  26. "s3:*"
  27. ]
  28. # These resources might not exist yet
  29. resources = [
  30. "arn:${local.aws_partition}:s3:::afsxdr-binaries",
  31. "arn:${local.aws_partition}:s3:::afsxdr-binaries/*",
  32. "arn:${local.aws_partition}:s3:::xdr-trumpet*",
  33. "arn:${local.aws_partition}:s3:::xdr-trumpet*/*",
  34. ]
  35. }
  36. statement {
  37. sid = "AssumeThisRoleInOtherAccounts"
  38. effect = "Allow"
  39. actions = [
  40. "sts:AssumeRole"
  41. ]
  42. resources = [
  43. "arn:${local.aws_partition}:iam::*:role/user/mdr_developer",
  44. ]
  45. }
  46. }
  47. resource "aws_iam_policy" "mdr_developer" {
  48. name = "mdr_developer"
  49. path = "/user/"
  50. policy = data.aws_iam_policy_document.mdr_developer.json
  51. }