Практикум Vault — чек-лист
Ответы — в шагах 1–3 и итогах. Сначала ответьте устно или письменно, затем сверьтесь со статьями.
Блок 1 — запуск и KV
-
Почему
vault server -devнельзя в production?Ориентир: данные в памяти, нет HA, известный root token, нет enterprise audit/unseal.
-
Чем KV v2 отличается от v1 (metadata и versions)?
Ориентир: v2 — версии, soft delete, path
secret/data/иsecret/metadata/. -
Что означают
VAULT_ADDRиVAULT_TOKEN?Ориентир: адрес API и credential для CLI/API запросов.
-
Как прочитать одно поле password без вывода всего секрета?
Ориентир:
vault kv get -field=password secret/demo/db.
Блок 2 — policies и AppRole
-
Какой результат даёт AppRole вместо root token в CI?
Ориентир: short-lived token с ограниченной policy, secret_id одноразовый.
-
Что такое least privilege в контексте
demo-read.hcl?Ориентир: только read на
secret/data/demo/*, без write и prod paths. -
Зачем разделяют role_id и secret_id?
Ориентир: role_id стабилен, secret_id секретный и короткоживущий.
-
Что пишется в audit log при compliance?
Ориентир: кто, когда, path, успех/отказ — 8.07/114.
Блок 3 — приложение и Kubernetes
-
Как Pod в Kubernetes получает secret без YAML password в Git?
Ориентир: ExternalSecret + ESO + Vault; Git только ExternalSecret manifest.
-
Что делает
refreshIntervalв ExternalSecret?Ориентир: как часто ESO перечитывает Vault и обновляет K8s Secret.
-
Почему fetch at startup лучше
.envна диске?Ориентир: секрет в памяти процесса, не в файле в образе или volume.
-
Как GitHub Actions получает доступ к Vault без long-lived token?
Ориентир: OIDC JWT + Vault jwt auth — 8.12/8.
Блок 4 — связь с GitOps
-
Что синхронизирует Argo CD, а что Vault?
Ориентир: Argo — манифесты; Vault — значения секретов; ESO мост между ними.
-
Что произойдёт после
vault kv putс новым password?Ориентир: новая version; ESO обновит K8s Secret по refreshInterval; Pod может потребовать restart.
-
Где почитать теорию после practicum?
Ориентир: 8.03/117, 8.13 GitOps, 8.12 DevSecOps.
Практические задания (опционально)
- Создайте policy
demo-read-writeс write только наsecret/demo/testи проверьте deny наsecret/prod/. - Поднимите ExternalSecret в kind из шага 3 и проверьте
kubectl get secret -n demo. - Сделайте rotation password и убедитесь, что version в metadata увеличилась.
Ответы — в шагах 1–3.