피드로 돌아가기
Dev.toSecurity
원문 읽기
Docker BuildKit Secret Mounts를 통한 AI 에이전트 빌드 시 민감 정보 유출 원천 차단
Your AI Agent Dockerfile Might Be Leaking Secrets
AI 요약
Context
AI 에이전트 애플리케이션 개발 시 Private npm 패키지 및 SDK 접근을 위해 ARG와 ENV를 통한 비밀번호 전달 방식 채택. 해당 방식은 이미지 레이어 및 메타데이터에 민감 정보가 영구 저장되어 이미지 히스토리를 통한 Secret 유출 위험 초래.
Technical Solution
- ARG/ENV 기반의 정적 주입 방식을 배제한 Docker BuildKit Secret Mounts 도입
/run/secrets경로에 임시 마운트하는--mount=type=secret구조를 통한 빌드 타임 전용 데이터 노출- 빌드 단계(Build stage)와 실행 단계(Runtime stage)를 분리한 Multi-stage Build 설계로 런타임 이미지 내 빌드 도구 및 인증 토큰 제거
npm config set으로 토큰을 사용한 후 즉시npm config delete를 수행하는 휘발성 처리 로직 적용- 런타임 전용 Secret(OpenAI API Key 등)은 Dockerfile이 아닌 런타임 환경 변수 및 Secret Manager로 분리 관리
실천 포인트
- Dockerfile 내 ARG/ENV에 API Key나 Token 포함 여부 전수 조사 - `docker history` 명령어로 이미지 레이어 내 민감 정보 노출 여부 검증 - Private Repo 접근 시 `--mount=type=ssh` 또는 `type=secret` 적용 여부 확인 - 빌드 완료 후 런타임 이미지에서 `.npmrc`나 `.env` 파일 포함 여부 스캔