Configuration de l'image Docker CLI de sécurité
Vue d'ensemble
Cette rubrique explique comment configurer l'image Docker CLI de sécurité requise pour exécuter ThingWorx dans un environnement conteneurisé.
Configuration de l'image Docker CLI de sécurité
Vous pouvez ajouter les options suivantes dans la section environment du fichier pour contrôler la configuration de chaque conteneur.
Noms de variable
Valeurs par défaut
Commentaires
KEYSTORE
Aucune valeur par défaut définie
Définissez cette propriété sur true pour créer un fichier de configuration utilisant les variables d'environnement du KeyStore.
KEYSTORE_PASSWORD_FILE_PATH
Aucune valeur par défaut définie
Définit le chemin d'accès du mot de passe du KeyStore. Cette propriété doit être définie.
KEYSTORE_PASSWORD_FILE_NAME
Aucune valeur par défaut définie
Définit le nom du fichier de mot de passe du KeyStore.
KEYSTORE_FILE_PATH
Aucune valeur par défaut définie
Définit le chemin d'accès du fichier KeyStore. Cette propriété doit être définie.
KEYSTORE_FILE_NAME
Aucune valeur par défaut définie
Définit le nom du fichier KeyStore.
DEFAULT_ENCRYPTION_KEY_LENGTH
265 octets
Définit la longueur de clé par défaut utilisée lors de la création de clés de chiffrement. Cette valeur modifie la taille des clés existantes.
Initialisation des clés secrètes
Les clés secrètes sont transmises à l'outil à l'aide de variables d'environnement. Vous pouvez utiliser l'une des deux méthodes suivantes pour initialiser les clés secrètes :
Option A 
Toutes les variables d'environnement commençant par le texte SECRET_ sont traitées. Voici des exemples de noms de variable d'environnement valides : SECRET_MYSECRET, SECRET_SECRET1, SECRET_SPECIAL_SECRET_VALUE.
Le préfixe (<prefix>) de la variable d'environnement (par exemple, SECRET_ dans SECRET_MYSECRET) est supprimée et convertie en minuscules pour être utilisée comme clé. Par exemple, pour la variable d'environnement SECRET_MYSECRET, mysecret est la clé. La valeur de la variable d'environnement est la valeur de clé secrète à définir.
Option B 
Les variables d'environnement portant le nom CUSTOM_SECRET_LIST et dont la valeur est associée à une liste de paires secretKey-envVarName séparées par des virgules sont traitées. La valeur séparée par une virgule est jetonisée, et pour chaque jeton secretKey-envVarName, la variable d'environnement représentée par envVarName est lue dans une variable secretValue. Cette paire secretKey-secretValue est définie dans le KeyStore.
Exemple de valeur de la variable d'environnement CUSTOM_SECRET_LIST : * mysecretkey1, <var-env qui a la valeur pour cette clé> ; mysecretkey2, <var-env qui a la valeur pour cette clé>
Exemple de fichier Compose pour le KeyStore
L'exemple suivant crée un volume de stockage partagé. Dans le conteneur, il est mappé à SecureData, où l'emplacement des fichiers de KeyStore et de mot de passe du KeyStore est configuré. Le conteneur démarre et crée ou met à jour les valeurs du KeyStore. Une fois toutes les valeurs remplies, le conteneur s'arrête.
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
Pour utiliser le fichier ci-dessus, exécutez docker compose up secrets, qui génère la sortie suivante :
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
Est-ce que cela a été utile ?