Security CLI Docker-Image konfigurieren
Übersicht
In diesem Thema wird beschrieben, wie das Security CLI Docker-Image konfiguriert wird, das zum Ausführen von ThingWorx in einer Containerumgebung erforderlich ist.
Security CLI Docker-Image konfigurieren
Sie können dem environment-Abschnitt der Datei die folgenden Optionen hinzufügen, um die Konfiguration jedes Containers zu steuern.
Variablennamen
|
Standardwerte
|
Kommentare
|
KEYSTORE
|
Kein Standardwertesatz
|
Legen Sie dies auf true fest, um eine Konfigurationsdatei mit den KeyStore-Umgebungsvariablen zu erstellen.
|
KEYSTORE_PASSWORD_FILE_PATH
|
Kein Standardwertesatz
|
Legt den Pfad zum KeyStore-Passwort fest. Diese Eigenschaft muss festgelegt werden.
|
KEYSTORE_PASSWORD_FILE_NAME
|
Kein Standardwertesatz
|
Legt den Namen der KeyStore-Passwortdatei fest.
|
KEYSTORE_FILE_PATH
|
Kein Standardwertesatz
|
Legt den Pfad zur KeyStore-Datei fest. Diese Eigenschaft muss festgelegt werden.
|
KEYSTORE_FILE_NAME
|
Kein Standardwertesatz
|
Legt den KeyStore-Dateinamen fest.
|
DEFAULT_ENCRYPTION_KEY_LENGTH
|
265 Byte
|
Legt die Standard-Schlüssellänge fest, die beim Erstellen neuer Verschlüsselungsschlüssel verwendet wird. Dies wirkt sich auf die Größe vorhandener Schlüssel aus.
|
Verschlüsselungswörter initialisieren
Verschlüsselungswörter werden mithilfe von Umgebungsvariablen an das Tool übergeben. Sie können eine der beiden folgenden Methoden verwenden, um Verschlüsselungswörter zu initialisieren:
Option A
Alle Umgebungsvariablen, die mit dem Text SECRET_ beginnen, werden verarbeitet. Gültige Umgebungsvariablennamen sind SECRET_MYSECRET, SECRET_SECRET1, SECRET_SPECIAL_SECRET_VALUE.
Das <prefix> der Umgebungsvariable (z.B. SECRET_ in SECRET_MYSECRET) wird entfernt und in Kleinbuchstaben konvertiert, um als Schlüssel verwendet zu werden. Für die Umgebungsvariable SECRET_MYSECRET ist beispielsweise mysecret der Schlüssel. Der Wert der Umgebungsvariablen ist der festzulegende Verschlüsselungswort-Wert.
Option B
Umgebungsvariablen mit dem Namen CUSTOM_SECRET_LIST und dem Wert, der eine kommagetrennte Liste von secretKey-envVarName-Paaren enthält, werden verarbeitet. Der kommagetrennte Wert wird mit Token versehen, und für jedes secretKey-envVarName-Token wird die von envVarName dargestellte Umgebungsvariable in eine secretValue-Variable eingelesen. Dieses secretKey-secretValue-Paar wird im Keystore festgelegt.
Beispielwert der Umgebungsvariablen CUSTOM_SECRET_LIST: * mysecretkey1: <Umgebungsvariable mit dem Wert für diesen Schlüssel>,mysecretkey2: <Umgebungsvariable mit dem Wert für diesen Schlüssel>
Beispiel-Compose für Keystore
Mit dem folgenden Beispiel wird ein gemeinsam genutztes Speichervolumen erstellt. Im Container wird es SecureData zugeordnet, wo der Speicherort der Keystore- und Keystore-Passwort-Dateien konfiguriert wird. Der Container startet und erstellt oder aktualisiert die Keystore-Werte. Sobald alle Werte gefüllt sind, wird der Container beendet.
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
Wenn Sie die obige Datei verwenden möchten, führen Sie docker compose up secrets aus, wodurch die folgende Ausgabe generiert wird:
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