セキュリティ CLI Docker イメージの設定
概要
このトピックでは、コンテナ型環境で ThingWorx を実行するために必要なセキュリティ CLI Docker イメージを設定する方法について説明します。
セキュリティ CLI Docker イメージの設定
ファイルの environment セクションに以下のオプションを追加することで、各コンテナのコンフィギュレーションを制御できます。
変数名
デフォルト
コメント
KEYSTORE
デフォルト値は設定されていません
キーストア環境変数を使用してコンフィギュレーションファイルを作成するには、true に設定します。
KEYSTORE_PASSWORD_FILE_PATH
デフォルト値は設定されていません
キーストアのパスワードへのパスを設定します。このプロパティは必ず設定する必要があります。
KEYSTORE_PASSWORD_FILE_NAME
デフォルト値は設定されていません
キーストアのパスワードファイルの名前を設定します。
KEYSTORE_FILE_PATH
デフォルト値は設定されていません
キーストアファイルへのパスを設定します。このプロパティは必ず設定する必要があります。
KEYSTORE_FILE_NAME
デフォルト値は設定されていません
キーストアファイル名を設定します。
DEFAULT_ENCRYPTION_KEY_LENGTH
265 バイト
新しい暗号化キーを作成するときに使用されるデフォルトのキーの長さを設定します。これは既存のキーのサイズに影響します。
シークレットの初期化
シークレットは環境変数を使用してツールに渡されます。次の 2 つの方法のいずれかを使用してシークレットを初期化できます。
オプション A 
SECRET_ というテキストで始まるすべての環境変数が処理されます。有効な環境変数名には、SECRET_MYSECRETSECRET_SECRET1SECRET_SPECIAL_SECRET_VALUE があります。
環境変数の <prefix> (たとえば SECRET_MYSECRETSECRET_) が削除され、キーとして使用するために小文字に変換されます。たとえば、環境変数 SECRET_MYSECRET の場合、mysecret がキーです。環境変数の値が、設定するシークレット値です。
オプション B 
secretKey-envVarName ペアのコンマ区切りリストを値として持つ CUSTOM_SECRET_LIST という名前の環境変数が処理されます。コンマ区切り値はトークン化され、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
これは役に立ちましたか?