配置安全 CLI Docker 镜像
概述
本主题介绍了如何配置在容器化环境中运行 ThingWorx 所需安全 CLI Docker 镜像。
配置安全 CLI Docker 镜像
可以将以下选项添加到此文件的 environment 部分,以控制对每个容器的配置。
变量名称
默认值
备注
KEYSTORE
未设置默认值
设置为 true 以使用 KeyStore 环境变量创建配置文件。
KEYSTORE_PASSWORD_FILE_PATH
未设置默认值
设置 KeyStore 密码的路径。必须设置该属性。
KEYSTORE_PASSWORD_FILE_NAME
未设置默认值
设置 KeyStore 密码文件的名称。
KEYSTORE_FILE_PATH
未设置默认值
设置 KeyStore 文件的路径。必须设置该属性。
KEYSTORE_FILE_NAME
未设置默认值
设置 KeyStore 文件名。
DEFAULT_ENCRYPTION_KEY_LENGTH
265 字节
设置新建加密密钥时使用的默认密钥长度。它会影响现有密钥的大小。
初始化机密
机密将通过环境变量传递到工具。可以任意选择以下两种方法之一来初始化机密:
选项 A 
将处理以文本 SECRET_ 开头的所有环境变量。有效的环境变量名称包括 SECRET_MYSECRETSECRET_SECRET1SECRET_SPECIAL_SECRET_VALUE
将去除环境变量的 <prefix> (例如 SECRET_MYSECRET 中的 SECRET_),并转换为小写以用作键。例如,对于 SECRET_MYSECRET 环境变量,mysecret 是键。环境变量值是要设置的机密值。
选项 B 
将处理名称为 CUSTOM_SECRET_LIST 且值是以逗号分隔的 secretKey-envVarName 对列表的环境变量。以逗号分隔的值将会标记化,对于每个 secretKey-envVarName 令牌,envVarName 所表示的环境变量都将读入到 secretValue 变量中。此 secretKey-secretValue 对在密钥库中进行设置。
CUSTOM_SECRET_LIST 环境变量的示例值:* mysecretkey1: <具有适用于键的值的环境变量>,mysecretkey2:<具有适用于键的值的环境变量>
密钥库的合成示例
以下示例创建了一个共享存储卷。在容器中,会将其映射到 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
这对您有帮助吗?