Skip to content

Шифрование конфиденциальных данных

Мы рекомендуем шифровать конфиденциальные данные на машине с установленным Apiary:

  • все данные на диске или отдельные директории средствами ОС;
  • пароли и ключи доступа к сторонним системам при помощи средств самого Apiary;
  • либо настроить интеграцию с Vault, чтобы не хранить их на этой машине.

Шифрование средствами ОС

Вы можете шифровать весь диск или один из перечисленных каталогов:

  • /opt/hw-fh/data
  • /opt/hw-fh/config

Для шифрования вы также можете использовать:

  • Программное обеспечение ОС (EncFS, CryFS, dm-crypt и т. д.);
  • Коммерческие приложения;
  • Решения для облачных провайдеров (AWS, Azure и т. д.).

Шифрование средствами приложения

При помощи этого свойства можно зашифровать все пароли пользователей для внешних систем (LDAP, SMTP, JIRA, Hive), которые хранятся на машине с установленным Apiary или во внешней БД. При этом ключ шифрования будет храниться на машине, где установлен Apiary.

Для более надёжного хранения этих данных можно настроить интеграцию с Vault.

⚠️ Примечание: рекомендуем активировать шифрование паролей, прежде чем настраивать интеграцию с внешними системами. Если соединения уже настроены, то обратите внимание на примечание в конце этой главы.

Чтобы настроить шифрование паролей, необходимо выполнить реконфигурацию. Добавьте свойство sensdata.encrypt.mode и установите ему значение AES256 (в настоящее время это единственный поддерживаемый алгоритм шифрования):

[main]
sensdata.encrypt.mode = AES256

После добавления свойства sensdata.encrypt.mode и реконфигурации приложения, автоматически сгенерируется ключ шифрования и запишется в файл local.ini в директории /opt/hw-fh/config в свойство sensdata.encrypt.key.

Если вы хотите установить ключ шифрования вручную, то необходимо добавить свойство sensdata.encrypt.key и установить ему значение. Значение должно быть длинной 32 символа.

[main]
sensdata.encrypt.mode = AES256
sensdata.encrypt.key = <ваш ключ шифрования здесь>

Вы можете сгенерировать значение для ключа шифрования, например, таким образом:

echo "BASE64;$(openssl rand -base64 32)"

⚠️ Обратите внимание на обязательный префикс BASE64;.

или, таким:

echo "BASE64;$(head -c 32 /dev/urandom | base64)"

Или любым другим доступным вам способом, но обязательно добавьте префикс BASE64; если ваш ключ закодирован при помощи base64.

⚠️ Если будет задан только ключ шифрования (sensdata.encrypt.key), но не будет добавлен метод (sensdata.encrypt.mode), то ключ шифрования не будет применен.

Выполните реконфигурацию, чтобы изменения вступили в силу.

⚠️ Если до настройки шифрования чувствительных данных интеграция с внешними системами уже была настроена, то после рестарта обновите их настройки, чтобы зашифровать существующие пароли.

⚠️ Примечание: Вы также можете хранить ключ шифрования в Vault если вы используете интеграцию с ним. При этом вам нужно указать место хранения ключа шифрования в Vault в поле sensdata.encrypt.key_path вместо sensdata.encrypt.key. Обратитесь в раздел Интеграция с Vault за подробностями.