
12.2 컨테이너에 정보를 전달하는 방법
213
12.2.3
환경 변수로 비밀 값 전달
네 번째 옵션은 환경 변수로 비밀 값을 전달하는 것인데, 이 역시 그리 바람직하지 않다. 이유
는 다음 두 가지이다.
●
여러 언어와 프레임워크에서, 응용 프로그램이 충돌하면(
crash
) 디버그 정보가 덤프된
다. 그런데 그런 덤프 데이터에 모든 환경 변수가 포함될 가능성이 크다. 만일 덤프가 로
깅 시스템으로 넘어가면, 로그에 접근할 수 있는 모든 사람이 환경 변수에 담긴 비밀 값을
보게 된다.
●
컨테이너에서
docker
inspect
(또는 이와 동일한 일을 하는 어떤 명령 )를 실행하면 컨
테이너에 설정된(구축 시점과 실행 시점 모두) 모든 환경 변수가 나온다. 관리자는 컨테
이너의 설정을 살펴보기 위해 이런 명령을 흔히 실행하므로, 비밀 값을 알 필요가 없는 관
리자가 의도하지 않게 비밀 값을 알게 되는 상황이 벌어질 수 있다.
다음은 컨테이너 이미지에서 환경 변수들을 추출하는 예이다.
vagrant@vagrant:~$ docker image inspect --format '{{.Config.Env}}' nginx
[PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NGINX_VERSION=
1.17.6 NJS_VERSION=0.3.7 ...