피드로 돌아가기
I let Claude Code run --dangerously-skip-permissions on my production DB. Here's what I changed.
Dev.toDev.to
Security

설정 오류로 인한 Production DB 접근 사고를 settings.json Deny Rule로 원천 차단

I let Claude Code run --dangerously-skip-permissions on my production DB. Here's what I changed.

강해수2026년 6월 19일2intermediate

Context

Claude Code의 --dangerously-skip-permissions 옵션 사용 중 환경 변수 설정 오류로 Production DB에 Migration 명령이 직접 실행된 사고 발생. 단순 확인 팝업 제거가 아닌 인간의 최종 검토 단계가 완전히 제거된 구조적 취약점 노출.

Technical Solution

  • .claude/settings.json 내 Specific Allow 및 Generic Deny 규칙을 통한 명령어 실행 제어
  • 로컬 실행 명령인 wrangler d1 execute * --local* 만을 Allow-list에 등록하여 실행 권한 제한
  • 모든 Production DB 접근 시도를 실행 전 단계에서 차단하는 Deny Rule 우선 적용 구조 설계
  • Git Worktree 분리를 통해 Staging 계정 정보만 물리적으로 포함하는 환경 격리 체계 구축
  • CLAUDE.md 파일에 Production 접근 전 확인 절차를 명시하여 AI 에이전트의 행동 가이드라인 설정
  • 컨텍스트 윈도우 확장에 따른 지침 희석 방지를 위해 중요 명령 시 프롬프트 내 직접 제약 조건 재명시

1. AI 도구 사용 시 --skip-permissions 계열의 옵션 사용을 지양하고 명시적 Allow-list 기반 권한 설정 검토

2. 환경 변수 파일(.env) 참조 오류 방지를 위해 프로젝트별 Git Worktree 물리적 분리 적용

3. LLM의 컨텍스트 망각 현상을 고려하여 중요 제약 사항은 CLAUDE.md와 개별 프롬프트에 중복 명시

원문 읽기