Вступление
Очень важно хранить конфиденциальные и конфиденциальные данные в зашифрованном файле свойств. MuleSoft предоставляет возможности, где вы можете зашифровать одно свойство или весь файл. Из документации MuleSoft :
-
Msgstr «Создать безопасный файл свойств конфигурации.»
-
Msgstr «Определить защищенные свойства в файле, заключив зашифрованные значения в последовательность! [Значение].»
-
«Сконфигурируйте файл в проекте с помощью модуля расширения свойств конфигурации Mule Secure. Файл должен указывать или включать ключ дешифрования».
MuleSoft предоставляет утилиту (secure-properties-tool.jar), которую можно скачать здесь . Этот файл JAR используется для шифрования или дешифрования строки или файла.
Вам также может понравиться:
Обработка файлов свойств в Mule 4
Атрибуты
Прежде чем мы создадим файл свойств, давайте разберемся с некоторыми важными атрибутами:
имя атрибута |
Описание |
имя |
Уникальное имя для ваших глобальных свойств безопасной конфигурации. |
ключ |
Слово или фраза, которые вы указываете, чтобы разблокировать значение свойства. |
файл |
Расположение файла, который ключ разблокирует. |
кодирование |
Кодировка файла, который ключ разблокирует. Значением по умолчанию является UTF-8. |
Шифрование на уровне файлов |
Установите в значение true, если сам файл полностью зашифрован. Значением по умолчанию является false. |
Алгоритм |
Тип алгоритма, который вы используете для шифрования содержимого свойства. |
Режим |
Процедура, которая позволяет движку Mule многократно использовать блочный шифр с одним ключом. |
Настройка расширения свойства безопасной конфигурации Mule
По умолчанию вы не найдете расширение свойства безопасной конфигурации Mule в Anypoint Studio. Вы можете установить его из Exchange в Anypoint Studio.
Создайте файл свойств безопасной конфигурации
Первым шагом является создание безопасного файла свойств. Это может быть .properties или .yaml файл. MuleSoft рекомендует использовать файл конфигурации YAML, поскольку он позволяет добавлять проверки типов и автозаполнение. Модуль расширения свойств конфигурации Mule Secure позволяет настраивать эти типы файлов .yaml или .properties.
Вы можете создавать защищенные файлы свойств конфигурации либо в src / main / resources в вашем проекте Mule, либо используя абсолютные пути.
Пример файла свойств YAML
YAML
xxxxxxxxxx
1
smtp
2
email
3
port"587"
4
host"smtp.gmail.com"
5
username"no.reply@gmail.com"
6
password"![BjEMftH9uJV4e+QKpKfcvg=="
7
fromEmail"no.reply@gmail.com"
8
api
9
instanceId"2332131"
10
http
11
port"8091"
В приведенном выше файле свойств мы зашифровали пароли и сохранили в файле. Пароль является конфиденциальным, и его необходимо зашифровать перед сохранением в файле. Рекомендуется шифровать конфиденциальные и конфиденциальные данные.
Мы можем использовать файл secure-properties-tool.jar для шифрования или дешифрования данных.
Синтаксис для шифрования текста / строки
Простой текст
1
java -jar secure-properties-tool.jar \
2
<method> \
3
<operation> \
4
<algorithm> \
5
<mode> \
6
<key> \
7
<value>
Мы будем использовать такие алгоритмы, как Blowfish и режим CBC . Ниже приведена команда, которая использовалась для шифрования паролей, хранящихся в файле свойств.
java -jar secure-properties-tool.jar шифрование строки Blowfish CBC mulesoft abcdef
Зашифрованное значение необходимо добавить в файл свойств, как показано ниже:
! [Encryptedpassword]
Это скажет среде выполнения, что это конкретное значение необходимо расшифровать.
Нам нужно использовать тот же ключ, алгоритм и режим для расшифровки данных.
java -jar secure-properties-tool.jar расшифровка строки Blowfish CBC MuleSoft WXDKlr6GZfs =
Создать свойство безопасной конфигурации в глобальной конфигурации
Для создания Config Secure Properties вы можете использовать Global Configuration.
Укажите местоположение файла свойств, ключ (можно использовать для шифрования и дешифрования текста), алгоритм (может быть Blowfish) и режим для CBC.
Доступ к защищенному свойству в компонентах MuleSoft
К защищенному свойству можно получить доступ в соединителе, DataWeave и т. Д.
Чтобы получить доступ к свойству, мы можем использовать $ {secure :: propertyName} .
Поддерживаемые алгоритмы
AES (по умолчанию), Blowfish, DES, DESede, RC2 и RCA.
Следующие алгоритмы можно использовать только в том случае, если вы сконфигурируете поставщика расширения криптографии Java (JCE), который добавляет их поддержку:
Камелия, CAST5, CAST6, Noekeon, Rijndael, SEED, Serpent, Skipjack, TEA, Twofish, XTEA, RC5 и RC6.
Поддерживаемые режимы
CBC (по умолчанию), CFB, ECB и OFB.
Лучшие практики
- Рекомендуется хранить отдельный файл свойств для каждой среды (например, appName-dev.yaml, appName-test.yaml, appName-prod.yaml).
- Рекомендуется использовать файл .yaml вместо файла .properties.
- Рекомендуется объявить глобальное свойство для среды (например, mule.env).
- Не изменяйте свойство mule.env на prod или test, а вместо этого передайте в качестве аргумента в команду maven CI / CD pipe.
mvn deploy -DmuleDeploy -Dmule.env = prod
- Все конфиденциальные и конфиденциальные данные, такие как пароли и ключи, должны быть зашифрованы перед сохранением в файле свойств.
- Сохраните все соединения и другие свойства в global.xml.
Теперь вы знаете, как зашифровать конфиденциальные и конфиденциальные данные, прежде чем сохранять их в файле свойств Mule.
Дальнейшее чтение
Mule: загрузить свойства в соответствии со средой (с файлом свойств по умолчанию)