init
This commit is contained in:
62
README.md
Normal file
62
README.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# 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`
|
Reference in New Issue
Block a user