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
War dies hilfreich?