policies.tf 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. #----------------------------------------------------------------------------
  2. # Policies
  3. #----------------------------------------------------------------------------
  4. #Admins
  5. data "vault_policy_document" "admins" {
  6. rule {
  7. path = "*"
  8. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  9. description = "allow all on permissions"
  10. }
  11. }
  12. resource "vault_policy" "admins" {
  13. name = "admins"
  14. policy = data.vault_policy_document.admins.hcl
  15. }
  16. #Clu Legacy
  17. data "vault_policy_document" "clu" {
  18. rule {
  19. path = "jenkins*"
  20. capabilities = ["read","list"]
  21. description = "clu read write on jenkins - legacy"
  22. }
  23. }
  24. resource "vault_policy" "clu" {
  25. name = "clu"
  26. policy = data.vault_policy_document.clu.hcl
  27. }
  28. #This access is for Feed Management/engineers.
  29. data "vault_policy_document" "engineers" {
  30. rule {
  31. path = "onboarding*"
  32. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  33. description = "engineers/Feed Management"
  34. }
  35. }
  36. resource "vault_policy" "engineers" {
  37. name = "engineers"
  38. policy = data.vault_policy_document.engineers.hcl
  39. }
  40. #This access is for Phantom Admins.
  41. data "vault_policy_document" "phantom" {
  42. rule {
  43. path = "phantom*"
  44. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  45. description = "Phantom"
  46. }
  47. rule {
  48. path = "onboarding*"
  49. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  50. description = "onboarding"
  51. }
  52. rule {
  53. path = "portal*"
  54. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  55. description = "Portal"
  56. }
  57. }
  58. resource "vault_policy" "phantom" {
  59. name = "phantom"
  60. policy = data.vault_policy_document.phantom.hcl
  61. }
  62. #portal
  63. data "vault_policy_document" "portal" {
  64. rule {
  65. path = "portal*"
  66. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  67. description = "Portal"
  68. }
  69. }
  70. resource "vault_policy" "portal" {
  71. name = "portal"
  72. policy = data.vault_policy_document.portal.hcl
  73. }
  74. #salt-master should be able to only create tokens
  75. data "vault_policy_document" "salt-master" {
  76. rule {
  77. path = "auth/*"
  78. capabilities = ["read", "list", "sudo", "create", "update", "delete"]
  79. description = "salt-master"
  80. }
  81. }
  82. resource "vault_policy" "salt-master" {
  83. name = "salt-master"
  84. policy = data.vault_policy_document.salt-master.hcl
  85. }
  86. #restrict salt-minions to only list secrets here - saltstack/minions
  87. #allow all minions access to this shared pillar data.
  88. data "vault_policy_document" "minions" {
  89. rule {
  90. path = "salt/*"
  91. capabilities = ["list"]
  92. description = "minions"
  93. }
  94. rule {
  95. path = "salt/pillar_data"
  96. capabilities = ["read"]
  97. description = "minions"
  98. }
  99. }
  100. resource "vault_policy" "minions" {
  101. name = "saltstack/minions"
  102. policy = data.vault_policy_document.minions.hcl
  103. }
  104. #restrict sensu salt-minion to only list secrets here - saltstack/minions
  105. #Policy must be named: saltstack/minion/sensu.msoc.defpoint.local
  106. # saltstack/minion/<minion-id>
  107. data "vault_policy_document" "sensu-minion" {
  108. rule {
  109. path = "auth/*"
  110. capabilities = ["read", "list", "sudo", "create", "update", "delete"]
  111. description = "sensu-minion"
  112. }
  113. }
  114. resource "vault_policy" "sensu-minion" {
  115. name = "saltstack/minion/sensu.msoc.defpoint.local"
  116. policy = data.vault_policy_document.sensu-minion.hcl
  117. }
  118. data "vault_policy_document" "soc" {
  119. rule {
  120. path = "soc*"
  121. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  122. description = "soc"
  123. }
  124. }
  125. resource "vault_policy" "soc" {
  126. name = "soc"
  127. policy = data.vault_policy_document.soc.hcl
  128. }
  129. data "vault_policy_document" "read-only" {
  130. rule {
  131. path = "/nothing/*"
  132. capabilities = ["read", "list"]
  133. description = "No permissions"
  134. }
  135. }
  136. resource "vault_policy" "read-only" {
  137. name = "read-only"
  138. policy = data.vault_policy_document.read-only.hcl
  139. }