Files
vault/README.md
Vassiliy Yegorov c3ba7baa48 init
2022-07-27 22:37:33 +07:00

63 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Vault test
Настраиваем получение логопаса в под из внешнего vault-сервера
## Общий порядок действий
1. поднять vault сервер
2. поднять heml-чарт
3. настроить подключение из куба в vault
4. добавить в vault тестовые секреты, запустить тестовый деплоймент и проверить что секреты получены
### 1. запуск vault в докере
1. docker compose up -d
### 2. запуск heml-чарта
1. прописываем в переменных адрес vault-сервера
2. запускаем чарт `helm upgrade --install --create-namespace -n vault vault helm/vault`
### 3. подключение из куба в vault
1. `vault auth enable kubernetes`
2. `TOKEN_REVIEW_JWT=$(kubectl get secret $VAULT_HELM_SECRET_NAME -n vault --output='go-template={{ .data.token }}' | base64 --decode)`
3. `KUBE_CA_CERT=$(kubectl config view --raw --minify --flatten --output='jsonpath={.clusters[].cluster.certificate-authority-data}' | base64 --decode)`
4. `KUBE_HOST=$(kubectl config view --raw --minify --flatten --output='jsonpath={.clusters[].cluster.server}')`
5. прописываем конфиг соединения
```bash
vault write auth/kubernetes/config \
token_reviewer_jwt="$TOKEN_REVIEW_JWT" \
kubernetes_host="$KUBE_HOST" \
kubernetes_ca_cert="$KUBE_CA_CERT" \
issuer="https://kubernetes.default.svc.cluster.local"
```
6. добавляем полиси доступа
```bash
vault policy write vault-test - <<EOF
path "secret/data/vault-test/config" {
capabilities = ["read"]
}
EOF
```
7. формируем роль доступа с куба в вольт
```bash
vault write auth/kubernetes/role/vault-test \
bound_service_account_names=sa-vault \
bound_service_account_namespaces=vault-test \
policies=vault-test \
ttl=24h
```
### 4. Запуск тестового деплоя
1. `vault login root`
2. `vault kv put secret/vault-test/config username='vassiliy' password='password' database='testdb' psqlhost='psql-service'`
3. `vault kv get -format=json secret/vault-test/config | jq ".data.data"`
4. `k apply -f vault-test.yaml`