MDR Vault Notes.txt 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. Vualt is setup with dynamoDB as the backend. Vault has 3 nodes in a cluster and an AWS ALB as the frontend. The vault is unsealed with AWS KMS instead of the usual master key.
  2. the vault binary is located at /usr/local/bin/vault
  3. 1. change made to the service file
  4. Unknown lvalue 'StartLimitIntervalSec' in section 'Service'
  5. Failed to parse capability in bounding/ambient set, ignoring: CAP_IPC_LOCK,CAP_NET_BIND_SERVICE
  6. Oct 30 13:31:32 vault-1 systemd: [/etc/systemd/system/vault.service:16] Failed to parse capability in bounding/ambient set, ignoring: CAP_IPC_LOCK,CAP_NET_BIND_SERVICE
  7. TEST VAULT
  8. https://github.mdr.defpoint.com/mdr-engineering/msoc-infrastructure/tree/master/salt/fileroots/vault
  9. 1. stop vault service from salt on all vault instances
  10. 1.1 salt vault* cmd.run 'systemctl stop vault'
  11. 2. wipe dynamoDB (select items-> actions -> delete) until there are no more items (BESURE to BACKUP FIRST!)
  12. 3. start vault
  13. 3.1 run salt state to ensure it is in the correct state with all policies on disk.
  14. 3.2 salt vault* state.sls vault
  15. 4. on vault-1, init vault RUN on the server not salt (avoid the recovery keys from getting into logs)
  16. 4.1 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault operator init -tls-skip-verify=true -recovery-shares=5 -recovery-threshold=2
  17. 5. login
  18. 5.1 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault login -tls-skip-verify=true -method=token
  19. 5.2 Do yourself a favor and setup some Bash Variables or run commands from salt
  20. export VAULT_ADDR=https://vault.mdr-test.defpoint.com
  21. export VAULT_ADDR=https://127.0.0.1
  22. export VAULT_ADDR=https://vault.mdr.defpoint.com
  23. export VAULT_SKIP_VERIFY=1
  24. 6. setup okta auth
  25. 6.1 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault auth enable okta
  26. 6.2 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault write -tls-skip-verify=true auth/okta/config base_url="okta.com" organization="mdr-multipass" token="api_token_here"
  27. 6.2 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault write -tls-skip-verify=true auth/okta/config base_url="okta.com" organization="mdr-multipass" token="$( cat ~/.okta-token )"
  28. 6.3 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault auth list
  29. 6.4 set the TTL for the okta auth method
  30. 6.4.1 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault auth tune -default-lease-ttl=3h -max-lease-ttl=3h okta/
  31. 7. Enable/add Policies
  32. 7.1 vault policy write -tls-skip-verify=true admins /etc/vault/admins.hcl
  33. 7.2 vault policy write -tls-skip-verify=true engineers /etc/vault/engineers.hcl
  34. 7.2 vault policy write -tls-skip-verify=true clu /etc/vault/clu.hcl
  35. 7.2 vault policy write -tls-skip-verify=true onboarding /etc/vault/onboarding.hcl
  36. 7.2 vault policy write -tls-skip-verify=true portal /etc/vault/portal.hcl
  37. 7.2 vault policy write -tls-skip-verify=true soc /etc/vault/soc.hcl
  38. 7.2 vault policy write salt-master /etc/vault/salt-master.hcl
  39. 7.2 vault policy write saltstack/minions /etc/vault/salt-minions.hcl
  40. 8 Add external groups
  41. 8.1 vault write identity/group name="admins" policies="admins" type="external"
  42. 8.2 vault write identity/group name="mdr-engineers" policies="engineers" type="external"
  43. 8.3 vault write identity/group name="vault-admins" policies="admins" type="external"
  44. 8.4 vault write identity/group name="soc-lead" policies="soc" type="external"
  45. 8.5 vault write identity/group name="soc-tier-3" policies="soc" type="external"
  46. 9 add alias through the GUI. (use the root token to login or a temp root token (better))
  47. 9.1 Access -> Groups -> admins -> Aliases -> Create alias -> mdr-admins
  48. 9.2 Access -> Groups -> mdr-engineers -> Aliases -> Create alias -> mdr-engineers
  49. 9.3 Access -> Groups -> vault-admins -> Aliases -> Create alias -> vault-admin
  50. 9.4 Access -> Groups -> soc-lead -> Aliases -> Create alias -> Analyst-Shift-Lead
  51. 9.5 Access -> Groups -> soc-tier-3 -> Aliases -> Create alias -> Analyst-Tier-3
  52. groups alias policy
  53. admins mdr-admins admins
  54. mdr-engineers mdr-engineers engineers
  55. vault-admins vault-admin admins
  56. soc-lead Analyst-Shift-Lead soc
  57. soc-tier-3 Analyst-Tier-3 soc
  58. 10 enable the file audit
  59. 10.1 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault audit enable -tls-skip-verify=true file file_path=/var/log/vault.log
  60. 11 enable the aws & approle auth
  61. 11.1 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault auth enable -tls-skip-verify=true aws
  62. 11.2 setup approle auth using the salt-master policy
  63. 11.2.1 vault auth enable approle
  64. 11.2.2 vault write auth/approle/role/salt-master token_max_ttl=3h token_policies=salt-master
  65. 12 configure the aws policies on the role (clu and portal) UPDATE THE AWS ACCOUNT!!!
  66. 12.1 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault write auth/aws/role/portal auth_type=iam bound_iam_principal_arn=arn:aws:iam::527700175026:role/portal-instance-role policies=portal max_ttl=24h
  67. 12.2 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault write auth/aws/role/clu auth_type=iam bound_iam_principal_arn=arn:aws:iam::527700175026:role/clu-instance-role policies=clu max_ttl=24h
  68. 13 Create the kv V2 secret engines
  69. VAULT_ADDR=https://vault.mdr-test.defpoint.com ~/Documents/MDR/Vault/vault secrets enable -path=engineering kv-v2
  70. vault secrets enable -path=engineering kv-v2
  71. vault secrets enable -path=ghe-deploy-keys kv-v2
  72. vault secrets enable -path=jenkins kv-v2
  73. vault secrets enable -path=onboarding kv-v2
  74. vault secrets enable -path=onboarding-afs kv-v2
  75. vault secrets enable -path=onboarding-gallery kv-v2
  76. vault secrets enable -path=onboarding-saf kv-v2
  77. vault secrets enable -path=portal kv-v2
  78. vault secrets enable -path=soc kv-v2
  79. vault secrets enable -version=1 -path=salt kv
  80. vault write salt/pillar_data auth="abc123"
  81. 14 export the secrets (be sure to export your bash variable for VAULT_TOKEN DON'T Use ROOT TOKEN!)
  82. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -export engineering/data/ -metadata engineering/metadata/ -file engineering-secrets.json -ver 2
  83. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -export ghe-deploy-keys/data/ -metadata ghe-deploy-keys/metadata/ -file ghe-deploy-keys-secrets.json -ver 2
  84. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -export jenkins/data/ -metadata jenkins/metadata/ -file jenkins-secrets.json -ver 2
  85. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -export onboarding/data/ -metadata onboarding/metadata/ -file onboarding-secrets.json -ver 2
  86. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -export onboarding-afs/data/ -metadata onboarding-afs/metadata/ -file onboarding-afs-secrets.json -ver 2
  87. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -export onboarding-gallery/data/ -metadata onboarding-gallery/metadata/ -file onboarding-gallery-secrets.json -ver 2
  88. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -export onboarding-saf/data/ -metadata onboarding-saf/metadata/ -file onboarding-saf-secrets.json -ver 2
  89. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -export portal/data/ -metadata portal/metadata/ -file portal-secrets.json -ver 2
  90. 15 import the json secret files back into vault
  91. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -import engineering/ -file engineering-secrets.json -ver 2
  92. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -import ghe-deploy-keys/ -file ghe-deploy-keys-secrets.json -ver 2
  93. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -import jenkins/ -file jenkins-secrets.json -ver 2
  94. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -import onboarding/ -file onboarding-secrets.json -ver 2
  95. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -import onboarding-afs/ -file onboarding-afs-secrets.json -ver 2
  96. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -import onboarding-gallery/ -file onboarding-gallery-secrets.json -ver 2
  97. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -import onboarding-saf/ -file onboarding-saf-secrets.json -ver 2
  98. /Users/bradpoulton/.go/src/vault-backend-migrator/vault-backend-migrator -import portal/ -file portal-secrets.json -ver 2
  99. AWS auth
  100. the vault instances have access to AWS IAM Read.
  101. curl -v --header "X-Vault-Token:$VAULT_TOKEN" --request LIST \
  102. https://vault.mdr.defpoint.com:443/v1/auth/aws/roles --insecure
  103. 8. map okta to policies ( not needed )
  104. 8.1 VAULT_ADDR=https://vault.mdr-test.defpoint.com vault policy write -tls-skip-verify=true auth/okta/groups/mdr-admins policies=admins
  105. Vault Logs
  106. cat 0c86fda6-1139-7914-fef5-6b7532e9fb5a | grep -v -F '"operation":"list"' | grep -v -F '"operation":"read"'
  107. cat c3c0b50b-9429-355d-8c8f-038e093c3e4b | grep -v -F '"operation":"list"' | grep -v -F '"operation":"read"'
  108. entity_34d6c410 -< nothing in logs
  109. "entity_id":"c3c0b50b-9429-355d-8c8f-038e093c3e4b
  110. entity_ba27bb07 < - nothing in logs
  111. 0c86fda6-1139-7914-fef5-6b7532e9fb5a