Работа 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.