policies.tf 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  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. #threatq
  75. data "vault_policy_document" "threatq" {
  76. rule {
  77. path = "threatq-lambda*"
  78. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  79. description = "threatq-lambda"
  80. }
  81. }
  82. resource "vault_policy" "threatq" {
  83. name = "threatq"
  84. policy = data.vault_policy_document.threatq.hcl
  85. }
  86. #salt-master should be able to only create tokens
  87. data "vault_policy_document" "salt-master" {
  88. rule {
  89. path = "auth/*"
  90. capabilities = ["read", "list", "sudo", "create", "update", "delete"]
  91. description = "salt-master"
  92. }
  93. }
  94. resource "vault_policy" "salt-master" {
  95. name = "salt-master"
  96. policy = data.vault_policy_document.salt-master.hcl
  97. }
  98. #restrict salt-minions to only list secrets here - saltstack/minions
  99. #allow all minions access to this shared pillar data.
  100. data "vault_policy_document" "minions" {
  101. rule {
  102. path = "salt/*"
  103. capabilities = ["list"]
  104. description = "minions"
  105. }
  106. rule {
  107. path = "salt/pillar_data"
  108. capabilities = ["read"]
  109. description = "minions"
  110. }
  111. }
  112. resource "vault_policy" "minions" {
  113. name = "saltstack/minions"
  114. policy = data.vault_policy_document.minions.hcl
  115. }
  116. #restrict sensu salt-minion to only list secrets here - saltstack/minions
  117. #Policy must be named: saltstack/minion/<minion-id>
  118. # e.g. saltstack/minion/sensu.pvt.xdrtest.accenturefederalcyber.com
  119. data "vault_policy_document" "sensu-minion" {
  120. rule {
  121. path = "salt/*"
  122. capabilities = ["list"]
  123. description = "sensu-minion"
  124. }
  125. rule {
  126. path = "salt/minions/sensu.${var.dns_info["private"]["zone"]}/*"
  127. capabilities = ["read"]
  128. description = "sensu-minion"
  129. }
  130. }
  131. resource "vault_policy" "sensu-minion" {
  132. name = "saltstack/minion/sensu.${var.dns_info["private"]["zone"]}"
  133. policy = data.vault_policy_document.sensu-minion.hcl
  134. }
  135. #Temp for GC Transition. Remove when Legacy Sensu is termianted.
  136. data "vault_policy_document" "sensu-minion-legacy" {
  137. rule {
  138. path = "salt/*"
  139. capabilities = ["list"]
  140. description = "sensu-minion-legacy"
  141. }
  142. rule {
  143. path = "salt/minions/sensu.msoc.defpoint.local"
  144. capabilities = ["read"]
  145. description = "sensu-minion-legacy"
  146. }
  147. }
  148. resource "vault_policy" "sensu-minion-legacy" {
  149. name = "saltstack/minion/sensu.msoc.defpoint.local"
  150. policy = data.vault_policy_document.sensu-minion-legacy.hcl
  151. }
  152. data "vault_policy_document" "soc" {
  153. rule {
  154. path = "soc*"
  155. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  156. description = "soc"
  157. }
  158. }
  159. resource "vault_policy" "soc" {
  160. name = "soc"
  161. policy = data.vault_policy_document.soc.hcl
  162. }
  163. data "vault_policy_document" "read-only" {
  164. rule {
  165. path = "/nothing/*"
  166. capabilities = ["read", "list"]
  167. description = "No permissions"
  168. }
  169. }
  170. resource "vault_policy" "read-only" {
  171. name = "read-only"
  172. policy = data.vault_policy_document.read-only.hcl
  173. }