[Claude Code 스킬] 서드파티 배포처와 LLM 게이트웨이 — 회사 클라우드 계정으로 Claude Code 돌리기 | DAKER 커뮤니티
무엇
Claude Code는 '두뇌'인 모델과 '몸통'인 CLI 에이전트가 분리돼 있다. 기본값은 claude.ai 로그인으로 Anthropic API를 부르는 것이지만, 환경변수 두세 개만 바꾸면 똑같은 CLI가 Amazon Bedrock, Google Cloud Agent Platform(구 Vertex AI), Microsoft Foundry로 요청을 보낸다. 회사가 LLM 게이트웨이(사내 프록시)를 운영한다면 모든 모델 트래픽을 그 앞단으로 몰 수도 있다. 집 안의 스위치와 전등은 그대로 두고, 전기를 어느 발전소에서 끌어올지만 바꾸는 셈이다.
언제 쓰나
보안 정책상 프롬프트와 코드가 자사 AWS·GCP·Azure 경계 밖으로 나가면 안 될 때
이미 확보한 클라우드 커밋 예산이나 마켓플레이스 청구로 결제해야 할 때
팀별 사용량 추적, 예산 한도, 중앙 집중 인증이 필요할 때 (→ LLM 게이트웨이)
모든 아웃바운드 트래픽이 사내 프록시를 통과해야 하는 폐쇄망일 때 (→ HTTPS_PROXY)
반대로 개인이나 소규모 팀이라면 그냥 구독이 가장 편하고 기능 제약도 없다. 이 글은 '그렇게 할 수 없는 조직'을 위한 배선도다.
사용법
1) 가장 쉬운 길 — 로그인 마법사
# 로그인 화면에서 "3rd-party platform" → "Amazon Bedrock" 선택
# 이미 로그인된 세션이라면 프롬프트에 바로 입력
/setup-bedrock
마법사가 ~/.aws 프로파일과 리전을 감지하고, 내 계정이 실제로 호출할 수 있는 Claude 모델을 확인한 뒤 ~/.claude/settings.json의 env 블록에 결과를 써 준다. 환경변수를 직접 만질 필요가 없다.
2) 수동 설정 — 배포처 켜기
# Amazon Bedrock
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1 # AWS 프로파일에 리전이 있으면 생략 가능
# Google Cloud Agent Platform (구 Vertex AI)
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
export ANTHROPIC_VERTEX_PROJECT_ID=your-project-id
# Microsoft Foundry
export CLAUDE_CODE_USE_FOUNDRY=1
export ANTHROPIC_FOUNDRY_RESOURCE=your-resource
export ANTHROPIC_FOUNDRY_API_KEY=your-api-key
3) 게이트웨이 경유 — '어디로 보낼지(base URL)'와 '누가 서명할지(인증)'를 분리해서 생각하면 헷갈리지 않는다.
# 표준(Anthropic 메시지 포맷) 게이트웨이
export ANTHROPIC_BASE_URL=https://llm-gateway.example.com
export ANTHROPIC_AUTH_TOKEN=sk-gateway-key
# 프로바이더 네이티브 포맷 게이트웨이 (Bedrock 예시)
export CLAUDE_CODE_USE_BEDROCK=1
export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock
export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1 # 서명은 게이트웨이가 대신한다
4) 검증 — 좁은 곳부터
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-4-6","max_tokens":1,"messages":[{"role":"user","content":"."}]}'
응답이 msg_ 로 시작하는 JSON이면 URL과 자격증명은 통과다. 모델 이름을 모르겠다는 오류가 나도 게이트웨이가 인증을 마친 뒤 거절한 것이므로 합격으로 친다. 그다음 claude를 같은 셸에서 띄우고 /status를 열면 실제 경로가 보인다.
API provider: Amazon Bedrock
Bedrock base URL: https://your-llm-gateway.com/bedrock
AWS region: us-east-1
AWS auth skipped
팁
모델 버전은 배포 전에 못 박는다. sonnet·opus 같은 별칭은 Claude Code 내장 기본값으로 풀리는데, 그 버전이 계정에 아직 활성화돼 있지 않으면 시작 시 하위 모델로 조용히 폴백한다. 반대 방향의 사고도 있다. Opus는 Sonnet보다 토큰 단가가 높아서, 핀을 잡지 않은 배포는 CLI가 업데이트되는 순간 더 비싼 모델로 갈아탈 수 있다. 핀은 '언제 새 모델로 옮길지'를 내가 정하겠다는 선언이다.
export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'
export ANTHROPIC_DEFAULT_SONNET_MODEL='us.anthropic.claude-sonnet-4-6'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'
셸 export는 그 터미널에서만 산다. 독이나 시작 메뉴에서 띄운 에디터, 백그라운드 에이전트에는 닿지 않는다. 어디서든 적용하려면 ~/.claude/settings.json의 env 블록에 넣는다. 단, 커밋되는 프로젝트 .claude/settings.json에는 토큰을 절대 두지 말 것. 프로젝트 단위로 필요하면 .claude/settings.local.json을 쓴다.
게이트웨이를 켜면 잠기는 기능이 있다. Remote Control과 음성 입력은 claude.ai 신원을 요구해서, 게이트웨이 자격증명이 활성인 동안 비활성화된다. Bedrock에서는 인증을 AWS가 쥐고 있으므로 /logout이 사라지고 WebSearch 도구도 쓸 수 없다. 게이트웨이 외 egress가 막힌 망이라면 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1로 버전 체크와 텔레메트리를 끌 수 있는데, 자동 업데이트까지 함께 꺼지니 패키지 매니저 같은 별도 업데이트 경로를 미리 마련해 두자.