Работа c Системой управления секретами#
В Platform V SOWA Pro реализована интеграция с Системой управления секретами.
Система управления секретами - это инструмент для централизованного и безопасного хранения и распространения секретов.
Интеграция Platform V SOWA Pro с Системой управления секретами дает возможность указания в прикладной конфигурации для секретов параметров загрузки из Системы управления секретами, как альтернативы кастомным ресурсам.
Platform V SOWA Pro поддерживает использование движка KV Secrets Engine.
Параметры, используемые для интеграции с Системой управления секретами, описаны в разделе "Базовая конфигурация system-optional" Руководства прикладного разработчика.
Для взаимодействия с Системой управления секретами используется аутентификация пользователя по токену. Для этого рекомендуется использовать внешние инструменты управления конфигурациями (jenkins/ansible/etc). Используется токен из переменной окружения $VAULT_TOKEN (переменная автоматически задается, например, в pipeline jenkins при использовании функциональности плагина HashiCorp Vault) - с примером можно ознакомиться в конце документа.
Обновление секретов выполняется в момент выполнения операций с профилем - конфигурирование, запуск/перезапуск/перезагрузка (опционально, см. параметр "runtime_update").
Ниже приведен пример конфигурации для использования секретов из Системы управления секретами:
system:
optional:
vault:
url: https://examplehost:8200
ssl:
ca: trusted_certs.pem
runtime_update: true
storages:
- path: DEV/SOWA/CF/KV
secrets:
- name: server
key: certificate
alias: cert_from_vault
- name: server
key: certificate_key
alias: key_from_vault
...
service:
service_main_proxy:
...
listen:
- port: 8443
ssl:
certificate: cert_from_vault
certificate_key: key_from_vault
...
Директива "runtime_update" позволяет включить обновление секретов профиля, хранимых в Системе управления секретами, при операциях запуска/перезапуска/перезагрузки. По умолчанию директива отключена - секреты подтягиваются только в момент конфигурирования профиля.
Пример использования плагина HashiCorp Vault в jenkins с аутентификацией по AppRole:
node {
// vaultCredAppRole - credentials типа VaultAppRoleCredential
withCredentials([[$class: 'VaultTokenCredentialBinding', credentialsId: 'vaultCredAppRole', vaultAddr: 'https://examplehost:8200']]) {
// теперь переменная окружения $VAULT_TOKEN заполнена - далее можно выполнять любые операции с профилем, использующим секреты из SecMan
...
}
}
Также рекомендуется ознакомиться с сопроводительной документацией Системы управления секретами: FAQ, Руководство пользователя, Инструкции по переходу на Secret Management.