.env 파일을 Git에 커밋하지 않고 공유하는 방법
작성자 Maxim Novak
.env 파일을 공유하는 가장 안전한 방법은 암호화된 자기 파괴 링크를 사용하는 것이야 — Slack DM, 이메일, Git 커밋이 아니라. Vaulted 같은 도구는 브라우저에서 AES-256-GCM으로 환경 변수를 암호화한 다음 전송하고, 조회 후 링크가 자동으로 삭제돼.
GitGuardian의 2025 State of Secrets Sprawl 보고서에 따르면 2024년에 공개 GitHub 저장소에서 2,380만 개의 시크릿이 유출됐어 — 전년 대비 25% 증가한 수치야. 그리고 GitHub 자체 데이터에서도 2024년에 플랫폼 전체에서 3,900만 개의 시크릿이 감지됐다고 해. 이 중 많은 수가 실수로 커밋된 .env 파일 내용에서 비롯됐어.
.env 파일 공유의 문제점
환경 파일은 앱에 필요한 모든 시크릿을 한 곳에 집중시키기 때문에 특히 위험해: 데이터베이스 URL, API 키, 서명 시크릿, 서드파티 토큰. .env 파일 하나가 유출되면 애플리케이션이 연결된 모든 외부 서비스가 위험에 처할 수 있어.
팀에서 흔히 .env 파일을 공유하는 방법들 — 그리고 왜 문제가 되는지:
- Slack/Discord DM — 검색 가능하고 백업되며, 직원 퇴사 후에도 남아 있음
- 이메일 — 메일 서버에 평문으로 저장되고, 의도치 않게 전달되는 경우가 많음
- Git 커밋 — 비공개 저장소라도 히스토리에 있는 시크릿은 완전히 제거하기가 거의 불가능함
- 공유 드라이브 — 만료 없음, 접근 제어 없음, 감사 추적 없음
- 1Password/Bitwarden 노트 — 양측 모두 같은 볼트에 계정이 있어야 함
더 나은 방법: 암호화된 자기 파괴 링크
파일 내용을 직접 보내는 대신, 먼저 암호화하고 조회 후 자동 삭제되는 링크를 공유해.
브라우저에서
- vaulted.fyi에 접속해
.env파일 내용을 붙여넣어- 조회 제한(단일 수신자의 경우 1회 조회)과 만료 시간을 설정해
- 생성된 링크를 팀원에게 보내
내용은 무언가가 전송되기 전에 브라우저에서 AES-256-GCM으로 암호화돼. 복호화 키는 URL 프래그먼트에만 존재하고 — 서버는 평문을 절대 볼 수 없어.
터미널에서
커맨드라인을 선호한다면 Vaulted CLI로 동일하게 처리할 수 있어:
# Pipe directly from the file
cat .env.production | npx vaulted-cli --views 1
# Or pass the file path
npx vaulted-cli --file .env.local --views 1 --expires 1h
# Add a passphrase for extra security
cat .env | npx vaulted-cli -v 1 -e 24h -p "ask-me-on-call"
CLI는 웹 앱과 동일한 암호화를 사용해 — 동일한 알고리즘, 동일한 제로 지식 아키텍처, 동일한 자기 파괴 링크. 결과는 Slack이나 어디에든 붙여넣을 수 있는 단일 URL이고, 수신자가 조회하면 만료돼.
시크릿 매니저는 어떨까?
Doppler, Infisical, AWS Secrets Manager 같은 도구는 서비스가 시크릿을 프로그래밍 방식으로 읽는 프로덕션 환경에 적합해. 하지만 이 도구들은 다른 문제를 해결하는 거야 — 서비스가 자동으로 읽는 시크릿을 관리하는 것이지.
.env 공유 문제는 사람 간 인계에 관한 거야: 새 개발자 온보딩, 계약업체와 스테이징 설정 공유, 또는 로테이션 후 업데이트된 자격 증명 배포. 이 인계는 빠르고 안전하며 수신자 측에서 아무런 설정이 필요 없어야 해.
.env 파일 위생 모범 사례
.env파일을 절대 Git에 커밋하지 마 — 처음부터.env*를.gitignore에 추가해- 공유 후 자격 증명을 교체해 — 모든 공유를 잠재적 노출로 취급해
- 조회 제한 링크를 사용해 — 수신자당 1회 조회, 짧은 만료 시간
- 프로덕션 설정에는 패스프레이즈를 추가해 — 패스프레이즈는 별도 채널로 공유해
- 어떤 변수가 필요한지 문서화해 — 저장소에 빈 값이 있는
.env.example을 유지해
환경 변수를 Slack에 붙여넣는 것을 그만해. Vaulted로 안전하게 공유해 — 브라우저나 터미널에서.
관련 항목
- .env 파일 안전하게 공유하기 — 단계별 가이드
- .env 파일 유효성 검사기 — 구문 오류 및 유출된 시크릿 확인
- 클라이언트 측 암호화란? — 데이터를 비공개로 유지하는 방법