F5 NGINX Plus 를 정기적으로 사용한다면 새로운 기능이나 기능을 시도해 보기 위해 컨테이너를 빌드하고 있을 가능성이 큽니다. NGINX Plus 컨테이너를 빌드하는 경우 NGINX 저장소 인증서와 키와 같은 중요한 정보를 로컬 파일 시스템에 저장하게 되는 경우가 많습니다. 민감한 파일을 .gitignore
저장소 파일에 추가하는 것은 간단하지만, 그 과정은 이상적이지도 안전하지도 않습니다. 사실, 엔지니어가 실수로 민감한 정보를 저장소에 커밋하는 사례가 많습니다 .
더 나은 방법은 비밀 관리 솔루션을 사용하는 것입니다. 개인적으로 저는 오랫동안 1Password를 사용해 왔고 최근에 CLI 도구를 발견했습니다. 이 도구를 사용하면 개발자와 플랫폼 엔지니어가 일상 업무 흐름에서 비밀과 상호 작용하기가 더 쉬워집니다.
이 블로그 게시물에서는 1Password CLI를 사용하여 NGINX Plus 컨테이너를 안전하게 빌드하는 방법을 설명합니다. 이 예제에서는 NGINX Plus 구독 , CLI 도구가 설치된 1Password 구독, 셸(Bash 또는 Zsh)이 있는 환경에 대한 액세스, Docker가 설치되어 있다고 가정합니다.
첫 번째 단계는 API 자격 증명, 파일, 메모, 비밀번호 등 여러 가지 비밀번호 유형을 지원하는 1Password에 비밀번호를 저장하는 것입니다. 이 NGINX Plus 사용 사례에서는 1Password의 보안 파일 기능을 활용합니다.
MyF5 포털 에서 NGINX 저장소 인증서와 키를 얻을 수 있습니다. 1Password 설명서 에 따라 NGINX 저장소 인증서와 키에 대한 보안 문서를 생성하세요. 두 개의 보안 문서를 만든 후 단계에 따라 1Password 비밀번호 참조 정보를 수집하세요 .
메모 : 이 글을 쓰는 시점에서 1Password는 동일한 레코드에 대한 여러 파일을 지원하지 않습니다.
이제 보안 파일과 해당 파일의 비밀 참조 URI(Uniform Resource Identifier)를 활용하는 NGINX Plus 컨테이너를 빌드할 시간입니다. 이 단계에서는 NGINX Plus 관리자 가이드 의 Dockerfile 예를 사용합니다.
docker 빌드
프로세스 준비Dockerfile을 새 디렉토리에 저장한 후 Docker 빌드
프로세스를 준비합니다. 1Password 비밀번호를 docker build
에 전달하려면 먼저 각 비밀번호 참조 URI를 환경 변수에 저장합니다. 그런 다음 Dockerfile을 저장한 디렉토리에서 새 Bash 터미널을 엽니다.
Bash 터미널에 다음 명령을 입력하세요:
NGINX_CRT="op://Work/nginx-repo-crt/nginx-repo.crt"를 내보냅니다. NGINX_KEY="op://Work/nginx-repo-key/nginx-repo.key"를 내보냅니다.
op run
명령을 사용하면 1Password CLI 에서 환경 변수의 비밀 참조 URI를 비밀 값으로 바꿀 수 있습니다. docker build
명령에서 이 기능을 활용하면 NGINX 저장소 인증서와 키를 빌드 컨테이너에 전달할 수 있습니다.
컨테이너 빌드를 완료하려면 이전 단계에서 사용한 것과 동일한 터미널에서 다음 명령을 실행하세요.
실행 -- docker build --no-cache --secret id=nginx-key, env=NGINX_KEY --secret id=nginx-crt, env=NGINX_CRT -t nginxplus --load .
이 명령에서 op run은
docker build
명령을 실행하고 1Password 비밀 참조 URI를 사용하여 두 개의 환경 변수 참조( NGINX_CRT
및 NGINX_KEY
)를 감지합니다. op
명령은 URI를 비밀번호의 실제 값으로 바꿉니다.
간단한 단계를 따르고 1Password CLI를 사용하면 로컬 파일 시스템에 인증서와 키를 저장하지 않고도 NGINX Plus 저장소에서 NGINX Plus 컨테이너를 빌드할 수 있습니다. 즉, 보안을 강화하는 환경을 만들 수 있습니다.
NGINX Plus를 처음 사용하시는 경우 오늘 30일 무료 체험판을 시작하거나 당사에 문의하여 사용 사례에 대해 논의해보세요 .
"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."