Работа c Системой управления секретами#
В Platform V SOWA реализована интеграция с Системой управления секретами.
Система управления секретами - это инструмент для централизованного и безопасного хранения и распространения секретов.
Интеграция Platform V SOWA с Системой управления секретами дает возможность указания в прикладной конфигурации для секретов параметров загрузки из Системы управления секретами, как альтернативы кастомным ресурсам.
Стоит обратить внимание, что сертификаты должен быть в формате .pem без кодировок в base64.
Platform V SOWA поддерживает использование движка KV Secrets Engine.
Параметры, используемые для интеграции с Системой управления секретами, описаны в статье "Базовая конфигурация system-optional".
Для взаимодействия с Системой управления секретами используется аутентификация пользователя по токену. Используется токен из переменной кружения $VAULT_TOKEN (переменная автоматически задается, например, в пайплайнах jenkins при использовании функционала плагина HashiCorp Vault).
Ниже приведен пример конфигурации для использования секретов из Системы управления секретами:
system:
optional:
vault:
url: https://examplehost:8200
ssl:
certificate: client_cert.pem
certificate_key: client_cert.key
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.