Configuración de la imagen de Docker de la CLI de seguridad
Información general
En este tema se explica cómo configurar la imagen de Docker de la CLI de seguridad, que es necesaria para ejecutar ThingWorx en un entorno en contenedor.
Configuración de la imagen de Docker de la CLI de seguridad
Se pueden añadir las siguientes opciones a la sección environment del fichero para controlar la configuración de cada contenedor.
Nombres de variable
Valores por defecto
Comentarios
KEYSTORE
No se ha definido ningún valor por defecto
Defínalo en true para crear un fichero de configuración mediante las variables de entorno de keystore.
KEYSTORE_PASSWORD_FILE_PATH
No se ha definido ningún valor por defecto
Permite definir la ruta a la contraseña de keystore. Esta propiedad se debe definir.
KEYSTORE_PASSWORD_FILE_NAME
No se ha definido ningún valor por defecto
Permite definir el nombre del fichero de contraseña de keystore.
KEYSTORE_FILE_PATH
No se ha definido ningún valor por defecto
Permite definir la ruta al fichero de keystore. Esta propiedad se debe definir.
KEYSTORE_FILE_NAME
No se ha definido ningún valor por defecto
Permite definir el nombre de fichero de keystore.
DEFAULT_ENCRYPTION_KEY_LENGTH
265 bytes
Permite definir la longitud de la clave por defecto que se utiliza al crear nuevas claves de codificación. Afecta al tamaño de las claves existentes.
Inicialización de secretos
Los secretos se pasan a la herramienta mediante variables de entorno. Se puede utilizar cualquiera de los dos métodos siguientes para inicializar secretos:
Opción A 
Se procesan todas las variables de entorno que comienzan por el texto SECRET_. Entre los nombres de variable de entorno válidos se incluyen SECRET_MYSECRET, SECRET_SECRET1, SECRET_SPECIAL_SECRET_VALUE.
Se ha quitado el elemento <prefix> de la variable de entorno (p. ej., SECRET_ en SECRET_MYSECRET) y se ha convertido a minúsculas para utilizarlo como clave. Por ejemplo, para la variable de entorno SECRET_MYSECRET, mysecret es la clave. El valor de la variable de entorno es el valor secreto que se debe definir.
Opción B 
Se procesan las variables de entorno con el nombre CUSTOM_SECRET_LIST y con el valor que tiene una lista de pares secretKey-envVarName separados por comas. El valor separado por comas se presenta con tokens y para cada token secretKey-envVarName, la variable de entorno representada por envVarName se lee en una variable secretValue. Este par secretKey-secretValue se define en el keystore.
Valor de ejemplo de la variable de entorno CUSTOM_SECRET_LIST: * mysecretkey1: <variable de entorno que tiene el valor para esta clave>, mysecretkey2: <variable de entorno que tiene el valor para esta clave>
Ejemplo de Compose para KeyStore
En el siguiente ejemplo se crea un volumen de almacenamiento compartido. En el contenedor, se asigna a SecureData, donde se configura la ubicación de los ficheros de KeyStore y de contraseñas de KeyStore. El contenedor inicia y crea o actualiza los valores de KeyStore. Una vez que se hayan rellenado todos los valores, saldrá del contenedor.
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
Para utilizar el fichero anterior, ejecute docker compose up secrets, que genera el siguiente resultado:
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
¿Fue esto útil?