보안 CLI Docker 이미지 구성
개요
이 항목에서는 컨테이너화된 환경에서 ThingWorx를 실행하는 데 필요한 보안 CLI Docker 이미지를 구성하는 방법을 다룹니다.
보안 CLI Docker 이미지 구성
파일의 environment 섹션에 다음 옵션을 추가하여 각 컨테이너의 구성을 제어할 수 있습니다.
변수 이름
기본값
설명
KEYSTORE
기본값이 설정되지 않음
키 저장소 환경 변수를 사용하여 구성 파일을 생성하려면 true로 설정합니다.
KEYSTORE_PASSWORD_FILE_PATH
기본값이 설정되지 않음
키 저장소 암호의 경로를 설정합니다. 이 속성은 설정해야 합니다.
KEYSTORE_PASSWORD_FILE_NAME
기본값이 설정되지 않음
키 저장소 암호 파일의 이름을 설정합니다.
KEYSTORE_FILE_PATH
기본값이 설정되지 않음
키 저장소 파일의 경로를 설정합니다. 이 속성은 설정해야 합니다.
KEYSTORE_FILE_NAME
기본값이 설정되지 않음
키 저장소 파일 이름을 설정합니다.
DEFAULT_ENCRYPTION_KEY_LENGTH
265바이트
새 암호화 키를 생성할 때 사용되는 기본 키 길이를 설정합니다. 이는 기존 키의 크기에 영향을 줍니다.
비밀 초기화
비밀은 환경 변수를 사용하여 도구에 전달됩니다. 다음 두 방법 중 하나를 사용하여 비밀을 초기화할 수 있습니다.
옵션 A 
SECRET_ 텍스트로 시작하는 모든 환경 변수가 처리됩니다. 유효한 환경 변수 이름에는 SECRET_MYSECRET, SECRET_SECRET1SECRET_SPECIAL_SECRET_VALUE가 포함됩니다.
환경 변수의 <prefix>(예: SECRET_MYSECRETSECRET_)가 스트립되고 소문자로 변환되어 키로 사용됩니다. 예를 들어, SECRET_MYSECRET 환경 변수의 경우 mysecret가 키입니다. 환경 변수 값은 설정할 비밀 값입니다.
옵션 B 
이름이 CUSTOM_SECRET_LIST이고 값에 쉼표로 구분된 secretKey-envVarName 쌍 목록이 포함된 환경 변수가 처리됩니다. 쉼표로 구분된 값이 토큰화되고 각 secretKey-envVarName 토큰에 대해 envVarName으로 표현되는 환경 변수를 secretValue 변수로 읽습니다. 이 secretKey-secretValue 쌍은 키 저장소에 설정됩니다.
CUSTOM_SECRET_LIST 환경 변수의 값 예: * mysecretkey1: <이 키에 대한 값이 있는 env-var>,mysecretkey2:<이 키에 대한 값이 있는 env-var>
키 저장소에 대한 작성 예
다음 예에서는 공유 스토리지 볼륨을 만듭니다. 컨테이너에서 SecureData에 매핑됩니다. 여기서 키 저장소 및 키 저장소 암호 파일의 위치가 구성됩니다. 컨테이너가 시작되고 키 저장소 값을 만들거나 업데이트합니다. 모든 값이 채워지면 컨테이너가 종료됩니다.
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
위의 파일을 사용하려면 다음 출력을 생성하는 docker compose up secrets를 실행합니다.
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
도움이 되셨나요?