Конфигурирование образа Security CLI Docker
Общие сведения
Кроме того, предоставляется информация о конфигурировании интерфейса безопасности командной строки Docker, которое необходимо для выполнения ThingWorx в среде с контейнерами.
Конфигурирование образа Security CLI Docker
Чтобы управлять конфигурацией каждого контейнера, можно добавить в раздел environment файла следующие опции:
Имена переменных
Значения по умолчанию
Комментарии
KEYSTORE
Значение по умолчанию не задано
Задайте значение true для создания файла конфигурации с использованием переменных среды хранилища ключей.
KEYSTORE_PASSWORD_FILE_PATH
Значение по умолчанию не задано
Задает путь к паролю хранилища ключей. Необходимо задать это свойство.
KEYSTORE_PASSWORD_FILE_NAME
Значение по умолчанию не задано
Задает имя файла пароля хранилища ключей.
KEYSTORE_FILE_PATH
Значение по умолчанию не задано
Задает путь к файлу хранилища ключей. Необходимо задать это свойство.
KEYSTORE_FILE_NAME
Значение по умолчанию не задано
Задает имя файла хранилища ключей.
DEFAULT_ENCRYPTION_KEY_LENGTH
265 байт
Задает длину ключа по умолчанию, используемую при создании новых ключей шифрования. Влияет на размер существующих ключей.
Инициализация секретов
Секреты передаются в инструмент с помощью переменных среды. Для инициализации секретов можно использовать любой из следующих двух методов:
Опция A 
Обрабатываются все переменные среды, начинающиеся с текста SECRET_. Допустимые имена переменных среды включают SECRET_MYSECRET, SECRET_SECRET1, SECRET_SPECIAL_SECRET_VALUE.
<prefix> для переменной среды (например, SECRET_ в SECRET_MYSECRET) отсекается и преобразуется в нижний регистр для использования в качестве ключа. Например, для переменной среды SECRET_MYSECRET используется ключ mysecret. Значение переменной среды - это секретное значение, которое необходимо задать.
Опция B 
Будут обрабатываться переменные среды с именем CUSTOM_SECRET_LIST и значением, имеющим вид разделенного запятыми списка пар secretKey-envVarName. Разделенные запятой значения превращаются в лексемы, и для каждой лексемы secretKey-envVarName переменная среды, представленная envVarName, читается в переменную secretValue. Эта пара secretKey-secretValue задается в хранилище ключей.
Пример значения переменной среды CUSTOM_SECRET_LIST: * mysecretkey1: <env-var, которая имеет значение для этого ключа>, mysecretkey2:<env-var, которая имеет значение для этого ключа>
Пример создания для хранилища ключей
В следующем примере создается том общего хранилища. В контейнере он сопоставляется с SecureData, где конфигурируется расположение файлов хранилища ключей и паролей хранилища ключей. Контейнер запускается и создает или обновляет значения хранилища ключей. После заполнения всех значений контейнер завершает работу.
docker-compose.yml
version: '2.3'
volumes:
storage:
services:
secrets:
image: artifactory.rd2.thingworx.io/twxdevops/security-cli:latest
environment:
- "KEYSTORE=true"
- "KEYSTORE_PASSWORD_FILE_PATH=/SecureData"
- "KEYSTORE_FILE_PATH=/SecureData"
- "SECRET_MYSECRET=zyfdzhij"
- "SECRET_SECRET1=mydata1"
- "SECRET_MY_SECRET2=mydata2"
- "SECRET_SPECIAL_SECRET_VALUE=mydata3"
- "TWX_DATABASE_PASSWORD=abcd"
- "LS_PASSWORD=efgh"
- "CUSTOM_SECRET_LIST=encrypt.db.password:TWX_DATABASE_PASSWORD,encrypt.licensing.password:LS_PASSWORD"
volumes:
- storage:/SecureData
Чтобы использовать этот файл, выполните docker compose up secrets для создания следующих выходных данных.
secrets_1 | Running command with config:
secrets_1 | Config(SimpleConfigObject({"output-file":"/opt/cli.conf","sources":{"scripts":[]},"template-file":"/opt/cli.conf.j2","type":"process-template"}))
secrets_1 | Loading config from file /opt/cli.conf
secrets_1 | mysecret stored
secrets_1 | Loading config from file /opt/cli.conf
secrets_1 | secret1 stored
secrets_1 | Loading config from file /opt/cli.conf
secrets_1 | my_secret2 stored
secrets_1 | Loading config from file /opt/cli.conf
secrets_1 | special_secret_value stored
secrets_1 | Loading config from file /opt/cli.conf
secrets_1 | encrypt.db.password stored
secrets_1 | Loading config from file /opt/cli.conf
secrets_1 | encrypt.licensing.password stored
secrets_1 | security-common-cli-docker_secrets_1 exited with code 0
Было ли это полезно?