Перейти к основному содержимому

Практикум Vault — чек-лист

Ответы — в шагах 1–3 и итогах. Сначала ответьте устно или письменно, затем сверьтесь со статьями.


Блок 1 — запуск и KV

  1. Почему vault server -dev нельзя в production?

    Ориентир: данные в памяти, нет HA, известный root token, нет enterprise audit/unseal.

  2. Чем KV v2 отличается от v1 (metadata и versions)?

    Ориентир: v2 — версии, soft delete, path secret/data/ и secret/metadata/.

  3. Что означают VAULT_ADDR и VAULT_TOKEN?

    Ориентир: адрес API и credential для CLI/API запросов.

  4. Как прочитать одно поле password без вывода всего секрета?

    Ориентир: vault kv get -field=password secret/demo/db.


Блок 2 — policies и AppRole

  1. Какой результат даёт AppRole вместо root token в CI?

    Ориентир: short-lived token с ограниченной policy, secret_id одноразовый.

  2. Что такое least privilege в контексте demo-read.hcl?

    Ориентир: только read на secret/data/demo/*, без write и prod paths.

  3. Зачем разделяют role_id и secret_id?

    Ориентир: role_id стабилен, secret_id секретный и короткоживущий.

  4. Что пишется в audit log при compliance?

    Ориентир: кто, когда, path, успех/отказ — 8.07/114.


Блок 3 — приложение и Kubernetes

  1. Как Pod в Kubernetes получает secret без YAML password в Git?

    Ориентир: ExternalSecret + ESO + Vault; Git только ExternalSecret manifest.

  2. Что делает refreshInterval в ExternalSecret?

    Ориентир: как часто ESO перечитывает Vault и обновляет K8s Secret.

  3. Почему fetch at startup лучше .env на диске?

    Ориентир: секрет в памяти процесса, не в файле в образе или volume.

  4. Как GitHub Actions получает доступ к Vault без long-lived token?

    Ориентир: OIDC JWT + Vault jwt auth — 8.12/8.


Блок 4 — связь с GitOps

  1. Что синхронизирует Argo CD, а что Vault?

    Ориентир: Argo — манифесты; Vault — значения секретов; ESO мост между ними.

  2. Что произойдёт после vault kv put с новым password?

    Ориентир: новая version; ESO обновит K8s Secret по refreshInterval; Pod может потребовать restart.

  3. Где почитать теорию после practicum?

    Ориентир: 8.03/117, 8.13 GitOps, 8.12 DevSecOps.


Практические задания (опционально)

  1. Создайте policy demo-read-write с write только на secret/demo/test и проверьте deny на secret/prod/.
  2. Поднимите ExternalSecret в kind из шага 3 и проверьте kubectl get secret -n demo.
  3. Сделайте rotation password и убедитесь, что version в metadata увеличилась.

Ответы — в шагах 1–3.