configure-vault.sh 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/sh
  2. set -euxo pipefail;
  3. export VAULT_TOKEN=${1}
  4. # ------------------
  5. # SECRET BACKENDS
  6. # ------------------
  7. vault secrets enable -path=secret -version=2 kv
  8. vault secrets enable -path=secret_v1 -version=1 kv
  9. # ------------------
  10. # CERT AUTH
  11. # https://www.vaultproject.io/docs/auth/cert
  12. # ------------------
  13. vault auth enable cert
  14. vault policy write \
  15. external-secrets-operator \
  16. /etc/vault-config/vault-policy-es.hcl
  17. vault write auth/cert/certs/external-secrets-operator \
  18. display_name=external-secrets-operator \
  19. policies=external-secrets-operator \
  20. certificate=@/etc/vault-config/es-client.pem \
  21. ttl=3600
  22. # test certificate login
  23. unset VAULT_TOKEN
  24. vault login \
  25. -client-cert=/etc/vault-config/es-client.pem \
  26. -client-key=/etc/vault-config/es-client-key.pem \
  27. -method=cert \
  28. name=external-secrets-operator
  29. vault kv put secret/foo/bar baz=bang
  30. vault kv get secret/foo/bar
  31. # ------------------
  32. # App Role AUTH
  33. # https://www.vaultproject.io/docs/auth/approle
  34. # ------------------
  35. export VAULT_TOKEN=${1}
  36. vault auth enable -path=myapprole approle
  37. vault write auth/myapprole/role/eso-e2e-role \
  38. secret_id_ttl=10m \
  39. token_num_uses=10 \
  40. token_policies=external-secrets-operator \
  41. token_ttl=1h \
  42. token_max_ttl=4h \
  43. secret_id_num_uses=40
  44. # ------------------
  45. # App Role AUTH
  46. # https://www.vaultproject.io/docs/auth/jwt
  47. # ------------------
  48. vault auth enable jwt
  49. vault write auth/jwt/config \
  50. jwt_validation_pubkeys=@/etc/vault-config/jwt-pubkey.pem \
  51. bound_issuer="example.iss" \
  52. default_role="external-secrets-operator"
  53. vault write auth/jwt/role/external-secrets-operator \
  54. role_type="jwt" \
  55. bound_subject="vault@example" \
  56. bound_audiences="vault.client" \
  57. user_claim="user" \
  58. policies=external-secrets-operator \
  59. ttl=1h
  60. # ------------------
  61. # Kubernetes AUTH
  62. # https://www.vaultproject.io/docs/auth/kubernetes
  63. # ------------------
  64. vault auth enable -path=mykubernetes kubernetes
  65. vault write auth/mykubernetes/config \
  66. kubernetes_host=https://kubernetes.default.svc.cluster.local \
  67. kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  68. vault write auth/mykubernetes/role/external-secrets-operator \
  69. bound_service_account_names=* \
  70. bound_service_account_namespaces=* \
  71. policies=external-secrets-operator \
  72. ttl=1h