Spring vault integration project, Sample code developed using the Dependencies Spring Cloud Vault Configuration and Better Cloud Dependencies
For further reference, please consider the following sections:
vault
, vault version
vault server -dev
, Note : do not run the web server in productionset VAULT_ADDR=http://127.0.0.1:8200
echo "Nd6DVwrEPyA3Jpy6yUxoRC8II6XCQs1Le+EDLAZ++T0=" > unseal.key
set VAULT_DEV_ROOT_TOKEN_DEV=s.yeo5TWjhY6QjpIvg9oGpjhay
vault status
vault kv put secret/hello foo=world
,<vault kv put <path> <key>=<value>>
vault kv put secret/hello foo=world excited=yes
vault kv get <path>
, vault kv get secret/hello
vault kv get -field=excited secret/hello
vault kv get -format=json secret/hello
vault kv delete secret/hello
vault secrets list
kv
, kv-v2
> vault secrets enable -path=kv kv
, vault secrets enable kv
, vault secrets list
vault kv put kv/hello target=world
, vault kv get kv/hello
, vault kv put kv/my-secret value="s3c(eT"
, vault kv get -format=json kv/my-secret
, vault kv delete kv/my-secret
vault kv list kv/
, vault kv list kv/
vault secrets disable kv/
vault secrets enable -path=aws aws
set AWS_ACCESS_KEY_ID=<aws_access_key_id>
set AWS_SECRET_ACCESS_KEY=<aws_secret_key>
access_key=$AWS_ACCESS_KEY_ID \
secret_key=$AWS_SECRET_ACCESS_KEY \
region=us-east-1`
{
credential_type=iam_user \
policy_document=-<<EOF
}
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1426528957000",
"Effect": "Allow",
"Action": [
"ec2:*"
],
"Resource": [
"*"
]
}
]
vault read aws/creds/my-role
vault lease revoke aws/creds/my-role/0bce0782-32aa-25ec-f61d-c026ff22106
vault secrets enable -path=aws aws
vault path-help aws
vault path-help aws/creds/my-non-existent-role
vault token create
vault login s.KwMVMnrg7u3mBFAIGdBUbkcO
vault token revoke s.iyNUhq8Ov4hIAx6snw5mB2nL
vault auth enable github
vault write auth/github/config organization=hashicorp
vault read auth/github/config
,vault auth list
vault write auth/github/map/teams/engineering value=default,applications
vault read auth/github/map/teams/engineering
vault auth help github
vault login -method=github
vault token revoke -mode path auth/github
vault auth disable github
vault policy read default
vault policy list
vault policy write -h
}
capabilities = ["create", "update"]
}
capabilities = ["read"]
vault policy read my-policy
vault token create -policy=my-policy
VAULT_TOKEN=s.QyUoJzR8BXWDkX0n8RzAyElu vault kv put secret/creds password="my-long-password"
VAULT_TOKEN=s.QyUoJzR8BXWDkX0n8RzAyElu vault kv put secret/foo robot=beepboop
vault auth list | grep 'approle/'
vault auth enable approle
secret_id_ttl=10m \
token_num_uses=10 \
token_ttl=20m \
token_max_ttl=30m \
secret_id_num_uses=40 \
token_policies=my-policy`
export ROLE_ID="$(vault read -field=role_id auth/approle/role/my-role/role-id)"
export SECRET_ID="$(vault write -f -field=secret_id auth/approle/role/my-role/secret-id)"
vault write auth/approle/login role_id="$ROLE_ID" secret_id="$SECRET_ID"
vault write auth/approle/login role_id="$ROLE_ID" secret_id="$SECRET_ID"
mkdir -p vault/data
vault server -config=config.hcl
set VAULT_ADDR=http://127.0.0.1:8200
, vault operator init
{
"keys": [
"0c731099534cbced4b16aefb4a2961c15afdf286bb6111a9c1d4f2e53f02ab5af2",
"60c9134ea838efe3c144f824042f002272925e01629c217068c7b16fa06e106ee0",
"79d6c6f37558494fe7f285e678ec0dba61b02388fee0f504e9b09106cc7d5a249c",
"789683056fe1bbbc182859d80346a69a028b0cd348e1b2d8b9b7f7267043d21460",
"26f6ab40c109631c51b23dcce9ddd69ee1838be7117540ae6446b5db47eeb73529"
],
"keys_base64": [
"DHMQmVNMvO1LFq77SilhwVr98oa7YRGpwdTy5T8Cq1ry",
"YMkTTqg47+PBRPgkBC8AInKSXgFinCFwaMexb6BuEG7g",
"edbG83VYSU/n8oXmeOwNumGwI4j+4PUE6bCRBsx9WiSc",
"eJaDBW/hu7wYKFnYA0ammgKLDNNI4bLYubf3JnBD0hRg",
"JvarQMEJYxxRsj3M6d3WnuGDi+cRdUCuZEa120futzUp"
],
"root_token": "s.6qdidDRHD9A1Su1VkWtE9LHt"
}
vault operator unseal
enter the valid key after thatvault login <Initial_Root_Token>
, vault login s.yo5p3hCZuUGRmhNNPVtaXOFG
ps aux | grep "vault server" | grep -v grep | awk '{print $2}' | xargs kill
rm -r /vault/data
curl http://127.0.0.1:8200/v1/sys/init -X POST -d "{\"secret_shares\": 1, \"secret_threshold\": 1}" | jq
curl -X POST -d "{\"key\": \"MMQCBBOUwo4z8dLHxb12L/n64vykmQL0usFSGgzfS0o=\"}" http://127.0.0.1:8200/v1/sys/unseal | jq
curl http://127.0.0.1:8200/v1/sys/init
vault auth enable -output-curl-string approle
,curl -H "X-Vault-Request: true" -H "X-Vault-Token: s.mWSvGgnHbImvZVmWVsNnYwuH" http://127.0.0.1:8200/v1/sys/auth |jq
curl -X POST -H "X-Vault-Request: true" -H "X-Vault-Token:s.1gTwVAr6nz4fNJBBjMcfOdyM" -d '{"type":"approle","description":"","config":{"options":null,"default_lease_ttl":"0s","max_lease_ttl":"0s","force_no_cache":false},"local":false,"seal_wrap":false,"external_entropy_access":false,"options":null}' https://127.0.0.1:8200/v1/sys/auth
curl -H "X-Vault-Token: $VAULT_TOKEN" -X PUT -d '{"policy":"# Dev servers have version 2 of KV secrets engine mounted by default, so will\n# need these paths to grant permissions:\npath \"secret/data/*\" {\n capabilities = [\"create\", \"update\"]\n}\n\npath \"secret/data/foo\" {\n capabilities = [\"read\"]\n}\n"}' http://127.0.0.1:8200/v1/sys/policies/acl/my-policy
--header "X-Vault-Token: $VAULT_TOKEN" \
--request POST \
--data '{"policies": ["my-policy"]}' \
http://127.0.0.1:8200/v1/auth/approle/role/my-role`
--header "X-Vault-Token: $VAULT_TOKEN" \
http://127.0.0.1:8200/v1/auth/approle/role/my-role/role-id | jq -r ".data"`
--header "X-Vault-Token: $VAULT_TOKEN" \
--request POST \
http://127.0.0.1:8200/v1/auth/approle/role/my-role/secret-id | jq -r ".data"`
--data '{"role_id": "c3ec4eab-5477-c669-fca8-6a71fdf38c23", "secret_id": "fc2710e5-9536-3f4f-666d-fd5d8379b2b9"}' \
http://127.0.0.1:8200/v1/auth/approle/login | jq -r ".auth"`
set export VAULT_TOKEN="s.p5NB4dTlsPiUU94RA5IfbzXv"
--header "X-Vault-Token: $VAULT_TOKEN" \
--request POST \
--data '{ "data": {"password": "my-long-password"} }' \
http://127.0.0.1:8200/v1/secret/data/creds | jq -r ".data"`
storage “raft” {
path = “./vault/data2”
node_id = “node1”
}
listener “tcp” {
address = “127.0.0.1:8200”
tls_disable = 1
}
disable_mlock = true
api_addr = “http://127.0.0.1:8200“
cluster_addr = “https://127.0.0.1:8201“
ui = true