policies.tf 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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/<minion-id>
  106. # e.g. saltstack/minion/sensu.pvt.xdrtest.accenturefederalcyber.com
  107. data "vault_policy_document" "sensu-minion" {
  108. rule {
  109. path = "salt/*"
  110. capabilities = ["list"]
  111. description = "sensu-minion"
  112. }
  113. rule {
  114. path = "salt/minions/sensu.${var.dns_info["private"]["zone"]}/*"
  115. capabilities = ["read"]
  116. description = "sensu-minion"
  117. }
  118. }
  119. resource "vault_policy" "sensu-minion" {
  120. name = "saltstack/minion/sensu.${var.dns_info["private"]["zone"]}"
  121. policy = data.vault_policy_document.sensu-minion.hcl
  122. }
  123. data "vault_policy_document" "soc" {
  124. rule {
  125. path = "soc*"
  126. capabilities = ["create", "read", "update", "delete", "list", "sudo"]
  127. description = "soc"
  128. }
  129. }
  130. resource "vault_policy" "soc" {
  131. name = "soc"
  132. policy = data.vault_policy_document.soc.hcl
  133. }
  134. data "vault_policy_document" "read-only" {
  135. rule {
  136. path = "/nothing/*"
  137. capabilities = ["read", "list"]
  138. description = "No permissions"
  139. }
  140. }
  141. resource "vault_policy" "read-only" {
  142. name = "read-only"
  143. policy = data.vault_policy_document.read-only.hcl
  144. }