Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revisionBoth sides next revision
devops:hashicorp_vault_workflow [2020/08/12 22:42] – [Автоматическое обновление сертификатов с помощью consul-template] admindevops:hashicorp_vault_workflow [2020/08/12 23:01] – [Автоматическое обновление сертификатов с помощью consul-template] admin
Line 294: Line 294:
   * в деплойменте прикладного пода (nginx) прописываются два дополнительных контейнера. Первый - init-контейнер vault-agent, который берет конфигурацию из конфигмапа и получает токен. Этот токен в дальнейшем использует второй контейнер - consul-template, который занимается тем, что обновляет данные в соответствии с темплейтом записаным в конфигмап. Обновленные данные он кладет в папку, которая смонтирована в него и в прикладной под с nginx.   * в деплойменте прикладного пода (nginx) прописываются два дополнительных контейнера. Первый - init-контейнер vault-agent, который берет конфигурацию из конфигмапа и получает токен. Этот токен в дальнейшем использует второй контейнер - consul-template, который занимается тем, что обновляет данные в соответствии с темплейтом записаным в конфигмап. Обновленные данные он кладет в папку, которая смонтирована в него и в прикладной под с nginx.
   * Для того, чтобы все работало в Vault должна быть заведена политика, которая бы разрешала доступ для заданной роли в путь, где выпускаются сертификаты.   * Для того, чтобы все работало в Vault должна быть заведена политика, которая бы разрешала доступ для заданной роли в путь, где выпускаются сертификаты.
-Создадим файл политики:+Создадим файл политики, которая разрешить выпуск сертификатов с помощью промежуточного CA:
 <code>tee cert_issue_policy.hcl <<EOF <code>tee cert_issue_policy.hcl <<EOF
 path "pki_int/issue/*" { path "pki_int/issue/*" {
Line 300: Line 300:
 } }
 EOF</code> EOF</code>
-скопируем его в **vault**:+скопируем файл политики в **vault**:
   kubectl -n vault cp cert_issue_policy.hcl vault-0:/tmp/   kubectl -n vault cp cert_issue_policy.hcl vault-0:/tmp/
-и создадим с его помощью политику:+и создадим с него помощью политику:
   kubectl -n vault exec -it vault-0 -- vault policy write cert-issue-policy /tmp/cert_issue_policy.hcl   kubectl -n vault exec -it vault-0 -- vault policy write cert-issue-policy /tmp/cert_issue_policy.hcl
-а также - создаим роль в vault:+а также - создадим роль в **vault**, которую привяжем к ServiceAccount (с правами которого будет работать pod) и назначим этой роли созданную ранее политику, разрешающую выпуск сертов:
   kubectl -n vault exec -it vault-0 -- vault write auth/kubernetes/role/cert-issue-role bound_service_account_names=vault-auth bound_service_account_namespaces=vault policies=cert-issue-policy ttl=24h   kubectl -n vault exec -it vault-0 -- vault write auth/kubernetes/role/cert-issue-role bound_service_account_names=vault-auth bound_service_account_namespaces=vault policies=cert-issue-policy ttl=24h
  • devops/hashicorp_vault_workflow.txt
  • Last modified: 2020/08/13 19:48
  • by admin