Configurazione dell'immagine Docker dell'interfaccia della riga di comando di sicurezza
Panoramica
Questo argomento spiega come configurare l'immagine Docker dell'interfaccia della riga di comando di sicurezza necessaria per l'esecuzione di ThingWorx in un ambiente in contenitori.
Configurazione dell'immagine Docker dell'interfaccia della riga di comando di sicurezza
È possibile aggiungere le opzioni seguenti alla sezione environment del file per controllare la configurazione di ciascun contenitore:
Nomi delle variabili
Valori di default
Commenti
KEYSTORE
Nessun insieme di valori di default
Impostare su true per creare un file di configurazione utilizzando le variabili di ambiente del keystore.
KEYSTORE_PASSWORD_FILE_PATH
Nessun insieme di valori di default
Imposta il percorso della password del keystore. L'impostazione di questa proprietà è obbligatoria.
KEYSTORE_PASSWORD_FILE_NAME
Nessun insieme di valori di default
Imposta il nome del file di password del keystore.
KEYSTORE_FILE_PATH
Nessun insieme di valori di default
Imposta il percorso del file keystore. L'impostazione di questa proprietà è obbligatoria.
KEYSTORE_FILE_NAME
Nessun insieme di valori di default
Imposta il nome file del keystore.
DEFAULT_ENCRYPTION_KEY_LENGTH
265 byte
Imposta la lunghezza della chiave di default utilizzata quando si creano nuove chiavi di crittografia. Influisce sulla dimensione delle chiavi esistenti.
Inizializzazione dei segreti
I segreti vengono passati allo strumento attraverso variabili di ambiente. Per inizializzare i segreti, è possibile utilizzare uno dei due metodi descritti di seguito.
Opzione A 
Vengono elaborate tutte le variabili di ambiente che iniziano con il testo SECRET_. I nomi di variabile di ambiente validi includono SECRET_MYSECRET, SECRET_SECRET1 e SECRET_SPECIAL_SECRET_VALUE.
L'elemento <prefix> della variabile di ambiente (ad esempio SECRET_ in SECRET_MYSECRET) viene soppresso e viene convertito in minuscolo per essere utilizzato come chiave. Ad esempio, per la variabile di ambiente SECRET_MYSECRET, mysecret è la chiave. Il valore della variabile di ambiente è il valore segreto da impostare.
Opzione B 
Vengono elaborate le variabili di ambiente con il nome CUSTOM_SECRET_LIST e con il valore che ha un elenco di coppie secretKey-envVarName separate da virgole Il valore separato da virgola viene suddiviso in token e per ogni secretKey-envVarName la variabile di ambiente rappresentata da envVarName viene letta in una variabile secretValue. Questa coppia secretKey-secretValue viene impostata nel keystore.
Valore di esempio della variabile di ambiente CUSTOM_SECRET_LIST: * mysecretkey1: <env-var che ha il valore per questa chiave>, mysecretkey2: <env-var che ha il valore per questa chiave>
Composizione di esempio per il keystore
Nell'esempio riportato di seguito viene creato un volume di memorizzazione condiviso. Nel contenitore, il volume viene mappato a SecureData, in cui è configurata la posizione dei file keystore e password keystore. Il contenitore viene avviato e crea o aggiorna i valori del keystore. Dopo che tutti i valori sono stati inseriti, il contenitore viene chiuso.
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
Per utilizzare il file precedente, eseguire docker compose up secrets, che genera l'output seguente:
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
È stato utile?