- Claude Code를 Anthropic API 대신 Amazon Bedrock을 통해 실행하도록 설정, 서울 리전(ap-northeast-2) 사용 가능 모델 목록, Inference Profile 패턴, 환경변수 + settings.json 구성
- 적용 환경: Claude Code 2.1.172+ / Amazon Bedrock / AWS CLI / 1차 검증 시점: 2026-04-22
- GitHub 저장소: https://github.com/20eung/claude-code-use-bedrock
1. 왜 Bedrock 경유로 Claude Code를 쓰는가
이 글의 사연은 회사 내부 AI 워크플로우에서 출발합니다. 사내 AI 개발/응용 도구로 n8n 을 운영하면서 자연스럽게 Bedrock 을 사용하게 되었고, 이미 발급받아 사용 중인 Bedrock 인증 정보(AWS credentials)를 공유받았습니다. 그 다음 자연스러워진 질문은 “이 Bedrock 자격증명을 Claude Code 에서도 그대로 쓸 수 있는가” 였습니다. Claude Code 를 개인 인증으로만 쓰는 경우도 흔하지만, AWS 조직 안에서 Bedrock 계정으로 Claude Code 를 쓰는 사용자를 위한 셋업 절차가 정리된 한국어 자료가 부족해서 직접 검증하고 글로 남기게 되었습니다. 아래 세 가지 이유와 함께, 회사 Bedrock 자격증명을 받아 쓰기 시작할 때 참고할 수 있도록 단계별로 풀어냅니다.
Claude Code는 기본적으로 Anthropic API를 직접 호출하지만, AWS 조직 안에서는 Amazon Bedrock을 통해 호출하는 패턴이 흔합니다. 이유는 크게 세 가지입니다.
- 결제 / 비용 처리 = Anthropic API 직접 결제가 아니라 AWS Billing 으로 통합, 예산/비용 가시성/세금 처리 모두 AWS 단일 창구
- 데이터 주권 / 컴플라이언스 = 모델 호출이 AWS 리전 안에서만 발생, 데이터가 Anthropic 인프라로 나가지 않음 (서울 리전 사용 시 한국 데이터 주권)
- IAM 권한 통합 = 모델 접근 권한을 IAM role/policy 로 제어, 개발자별/프로젝트별로 다른 모델 권한 부여 가능
설정은 3단계로 끝납니다.
1. AWS credentials 등록
2. Bedrock 모델 access 활성화 (use case form)
3. 환경변수 1~3개로 Claude Code에 Bedrock 경로 지정
💼 Claude Code on Amazon Bedrock 공식 문서 기준 v2.1.172+ 부터 AWS_REGION 환경변수만 설정해도 Bedrock으로 자동 라우팅됩니다. 이전 버전에서는 CLAUDE_CODE_USE_BEDROCK=1 을 추가로 설정해야 했지만, 최신 버전은 region만으로 충분합니다.
1차 검증 자료 시점은 GitHub 저장소 claude-code-use-bedrock 의 마지막 commit 2026-04-22입니다. Anthropic Claude Code 의 Bedrock 인증 경로는 베타 기능에서 정식 기능으로 옮겨졌고 버전별 동작 차이가 있었으므로(예: CLAUDE_CODE_USE_BEDROCK=1 필요 여부), 이 글의 절차를 따라할 때는 Claude Code 공식 문서의 Bedrock 섹션 최신판과 Anthropic/Amazon release notes 를 다시 확인하시는 것을 권장합니다. Bedrock 의 모델 가용성·Inference Profile 지원 리전·IAM 권한 등도 자주 갱신됩니다.
2. 환경별 AWS Credentials 등록
~/.aws/ 디렉터리에 config + credentials 두 파일을 만듭니다. region은 Bedrock 모델 권한을 받은 리전 (이 글에서는 서울 ap-northeast-2).
2.1 Windows CMD
mkdir "%USERPROFILE%\.aws" 2>NUL ( echo [default] echo region = ap-northeast-2 echo output = json ) > "%USERPROFILE%\.aws\config" ( echo [default] echo aws_access_key_id = YOUR_ACCESS_KEY_ID echo aws_secret_access_key = YOUR_SECRET_ACCESS_KEY ) > "%USERPROFILE%\.aws\credentials" setx AWS_REGION "ap-northeast-2" setx AWS_PROFILE "default" setx CLAUDE_CODE_USE_BEDROCK "1" REM 선택사항 (Anthropic Model 등록) setx ANTHROPIC_MODEL "global.anthropic.claude-sonnet-4-6"
💼 CMD에서 %USERPROFILE% 같은 환경변수를 heredoc에 쓰려면 % 를 두 번 이스케이프해야 합니다 (%%USERPROFILE%%). 위 코드는 단순 echo로 한 줄씩 처리해 이스케이프 문제를 피했습니다.
2.2 Windows PowerShell
New-Item -ItemType Directory -Force -Path $env:USERPROFILE\.aws @" [default] region = ap-northeast-2 output = json "@ | Set-Content -Path $env:USERPROFILE\.aws\config -Encoding Ascii @" [default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY "@ | Set-Content -Path $env:USERPROFILE\.aws\credentials -Encoding Ascii setx AWS_REGION "ap-northeast-2" setx AWS_PROFILE "default" setx CLAUDE_CODE_USE_BEDROCK "1" # 선택사항 (Anthropic Model 등록) setx ANTHROPIC_MODEL "global.anthropic.claude-sonnet-4-6"
PowerShell의 @" ... "@ heredoc은 환경변수 보간 없이 raw 텍스트로 출력해 안전한 설정 파일 생성이 가능합니다.
2.3 macOS / Linux / WSL
mkdir -p ~/.aws cat <<EOF > ~/.aws/config [default] region = ap-northeast-2 output = json EOF cat <<EOF > ~/.aws/credentials [default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY EOF chmod 600 ~/.aws/config chmod 600 ~/.aws/credentials chmod 700 ~/.aws cat <<EOF >> ~/.bashrc # Bedrock 엔진 활성화 (필수 — v2.1.172 이전 버전) export CLAUDE_CODE_USE_BEDROCK=1 # 리전 설정 (Bedrock 모델 권한을 받은 리전) export AWS_REGION=ap-northeast-2 # (선택) 프로필 이름이 default가 아니라면 지정 # export AWS_PROFILE=default # (선택) Anthropic Model 등록 # export ANTHROPIC_MODEL="global.anthropic.claude-sonnet-4-6" EOF
💼 chmod 600 = 본인만 읽기/쓰기 가능. AWS credentials 파일은 반드시 600 으로 설정해야 AWS SDK가 자격증명 로드를 거부하지 않습니다 (그렇지 않으면 ~/.aws/credentials 파일이 너무 open 되어 있습니다 에러).
3. Bedrock 모델 Access 활성화 (use case form)
처음 Bedrock에서 Anthropic 모델을 호출하려면 AWS 콘솔에서 use case form을 한 번 제출해야 합니다. 계정당 1회만 하면 됩니다.
Claude Code 공식 문서 기준 절차:
- Bedrock 콘솔 접속 → 왼쪽 메뉴 “Model catalog”
- Anthropic 모델 선택 (예: Claude Sonnet 4.6)
- “Submit use case details” 클릭
- use case form 작성 (회사명, 사용 목적, 데이터 처리 방식 등)
- 제출 즉시 access 부여
AWS Organizations를 쓰는 조직이라면 management account에서 한 번 제출하면 child account에 자동 적용됩니다. API로 자동화할 경우 PutUseCaseForModelAccess 호출 (권한: bedrock:PutUseCaseForModelAccess).
4. Claude Code 설치
환경별 설치 명령:
| OS | 명령어 |
|---|---|
| Windows CMD | curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd |
| Windows PowerShell | irm https://claude.ai/install.ps1 \| iex |
| macOS / Linux / WSL | curl -fsSL https://claude.ai/install.sh \| bash |
설치 후 반드시 새 터미널 창을 열어서 환경변수 적용 후 실행해야 합니다.
claude
만약 claude 가 인식 안 되면 PATH 추가:
Windows CMD:
setx PATH "%PATH%;%USERPROFILE%\.local\bin"
Windows PowerShell:
$CurrentPath = [Environment]::GetEnvironmentVariable("Path", "User")
$NewPath = $CurrentPath + ";$env:USERPROFILE\.local\bin"
[Environment]::SetEnvironmentVariable("Path", $NewPath, "User")
💼 설치 명령은 PATH가 아니라 사용자 HOME 디렉터리의 .local/bin 에 binary를 설치합니다. 기존 PATH와 충돌하지 않지만, 새 터미널을 열어야 PATH 갱신이 반영됩니다.
5. 서울 리전에서 사용 가능한 Claude 모델 (2026-04-19 기준)
원본 repo의 bedrock-claude-models-2026-04-19.md 파일에서 aws bedrock list-foundation-models --region ap-northeast-2 결과를 정리한 표입니다.
5.1 ACTIVE 모델
| 모델 ID | 모델명 |
|---|---|
anthropic.claude-opus-4-7 |
Claude Opus 4.7 |
anthropic.claude-opus-4-6-v1 |
Claude Opus 4.6 |
anthropic.claude-opus-4-5-20251101-v1:0 |
Claude Opus 4.5 |
anthropic.claude-sonnet-4-6 |
Claude Sonnet 4.6 |
anthropic.claude-sonnet-4-5-20250929-v1:0 |
Claude Sonnet 4.5 |
anthropic.claude-sonnet-4-20250514-v1:0 |
Claude Sonnet 4 |
anthropic.claude-haiku-4-5-20251001-v1:0 |
Claude Haiku 4.5 |
anthropic.claude-3-5-sonnet-20241022-v2:0 |
Claude 3.5 Sonnet v2 |
anthropic.claude-3-5-sonnet-20240620-v1:0 |
Claude 3.5 Sonnet |
anthropic.claude-3-haiku-20240307-v1:0 |
Claude 3 Haiku |
anthropic.claude-3-haiku-20240307-v1:0:200k |
Claude 3 Haiku (200k context) |
5.2 LEGACY 모델 (사용 중단 예정)
| 모델 ID | 모델명 |
|---|---|
anthropic.claude-3-7-sonnet-20250219-v1:0 |
Claude 3.7 Sonnet |
anthropic.claude-3-sonnet-20240229-v1:0 |
Claude 3 Sonnet |
anthropic.claude-3-sonnet-20240229-v1:0:28k |
Claude 3 Sonnet (28k) |
anthropic.claude-3-sonnet-20240229-v1:0:200k |
Claude 3 Sonnet (200k) |
💼 LEGACY 모델은 신규 기능이 추가되지 않고 deprecation 일정이 다가옵니다. 새 프로젝트에서는 ACTIVE 모델 + global. Inference Profile 사용을 권장합니다.
6. global. Inference Profile — 직접 모델 ID vs 글로벌 프로파일
Bedrock에서 Claude 모델을 호출할 때 두 가지 방식이 있습니다.
| 구분 | 직접 모델 ID | Inference Profile (global.) |
|---|---|---|
| 예시 | anthropic.claude-opus-4-7 |
global.anthropic.claude-opus-4-7 |
| 트래픽 처리 | ap-northeast-2 단일 리전 |
여러 리전 자동 분산 |
| 리전 장애 시 | 요청 실패 | 다른 리전으로 자동 전환 |
| 응답 속도 | 단일 리전 부하 | 부하 분산으로 지연 감소 |
| 유형 | Foundation Model | SYSTEM_DEFINED Inference Profile |
6.1 global. 접두사를 써야 하는 4가지 이유
- 고가용성 = 단일 리전 용량 부족 또는 장애 시 AWS가 자동으로 다른 리전(
us-east-1,eu-west-1)으로 요청을 라우팅 - 부하 분산 = 여러 리전에 트래픽을 분산해 응답 지연 감소
- Anthropic 권장 = Bedrock + Claude Code 연동 시 Inference Profile 사용을 공식 권장
- 비용 동일 = 직접 모델 ID와 동일한 요금 체계 적용
6.2 글로벌 프로파일 목록 (서울 리전 ap-northeast-2)
| Inference Profile ID | 모델명 |
|---|---|
global.anthropic.claude-opus-4-7 |
Global Claude Opus 4.7 |
global.anthropic.claude-opus-4-6-v1 |
Global Claude Opus 4.6 |
global.anthropic.claude-opus-4-5-20251101-v1:0 |
Global Claude Opus 4.5 |
global.anthropic.claude-sonnet-4-6 |
Global Claude Sonnet 4.6 |
global.anthropic.claude-sonnet-4-5-20250929-v1:0 |
Global Claude Sonnet 4.5 |
global.anthropic.claude-haiku-4-5-20251001-v1:0 |
Global Claude Haiku 4.5 |
조회 명령:
aws bedrock list-inference-profiles --region ap-northeast-2 \ --query "inferenceProfileSummaries[?contains(inferenceProfileId,'claude')].[inferenceProfileId,inferenceProfileName,type]" \ --output table
6.3 APAC 프로파일 (서울 리전 내 분산)
| Inference Profile ID | 모델명 |
|---|---|
apac.anthropic.claude-3-sonnet-20240229-v1:0 |
APAC Claude 3 Sonnet |
apac.anthropic.claude-3-5-sonnet-20240620-v1:0 |
APAC Claude 3.5 Sonnet |
apac.anthropic.claude-3-haiku-20240307-v1:0 |
APAC Claude 3 Haiku |
apac.anthropic.claude-3-5-sonnet-20241022-v2:0 |
APAC Claude 3.5 Sonnet v2 |
apac.anthropic.claude-3-7-sonnet-20250219-v1:0 |
APAC Claude 3.7 Sonnet |
apac.anthropic.claude-sonnet-4-20250514-v1:0 |
APAC Claude Sonnet 4 |
💼 apac. 는 아시아 태평양 리전 내 분산 (예: 서울 + 도쿄 + 싱가포르), global. 은 더 넓은 범위 (서울 + 도쿄 + 미국 + 유럽). 데이터 주권이 엄격하면 apac. 또는 직접 모델 ID 사용을 권장합니다.
7. Claude Code 환경변수 설정 예시
global. Inference Profile을 사용하는 환경변수 설정 패턴:
# Opus 4.7 — global. 접두사 필수 (Inference Profile) export ANTHROPIC_DEFAULT_OPUS_MODEL="global.anthropic.claude-opus-4-7" export ANTHROPIC_MODEL="global.anthropic.claude-opus-4-7" # Sonnet 4.6 export ANTHROPIC_DEFAULT_SONNET_MODEL="global.anthropic.claude-sonnet-4-6" # Haiku 4.5 export ANTHROPIC_DEFAULT_HAIKU_MODEL="global.anthropic.claude-haiku-4-5-20251001-v1:0"
7.1 settings.json 설정
~/.claude/settings.json 에 영구 설정:
{
"model": "opus",
"env": {
"ANTHROPIC_DEFAULT_OPUS_MODEL": "global.anthropic.claude-opus-4-7"
}
}
| 모델 alias | 용도 |
|---|---|
opus |
가장 강력한 모델 (4.7) |
sonnet |
기본/균형 (4.6) |
haiku |
빠르고 가벼움 (4.5) |
💼 ~/.claude/settings.json 의 env 블록에 적으면 터미널 환경변수와 무관하게 Claude Code가 항상 그 모델을 사용합니다. 프로젝트별로 다른 모델을 쓰려면 CLAUDE_CONFIG_DIR 환경변수로 다른 설정 디렉터리를 지정합니다.
8. 자주 발생하는 오류와 해결법
| 증상/오류 메시지 | 원인 | 해결 방법 |
|---|---|---|
~/.aws/credentials 파일이 너무 open |
파일 권한 600 미만 | chmod 600 ~/.aws/credentials |
AccessDeniedException on Claude 호출 |
Bedrock 모델 access 미승인 | Bedrock 콘솔에서 use case form 제출 |
| 모델 호출은 되는데 region 미스매치 | AWS_REGION 다른 리전 |
export AWS_REGION=ap-northeast-2 |
global.anthropic.* 호출 안 됨 |
Inference Profile 미생성 | bedrock 콘솔 또는 AWS API로 profile ID 확인 |
claude: command not found |
PATH 미반영 | 새 터미널 열기 또는 setx PATH |
| LEGACY 모델만 보이고 ACTIVE 없음 | use case form 일부 모델만 제출 | 필요한 모델 모두 추가 제출 |
CLAUDE_CODE_USE_BEDROCK 설정했는데 Anthropic API 호출 |
v2.1.172+ 부터 AWS_REGION만으로 충분, 둘 다 설정 시 정상 동작 | 환경변수 단순화 (AWS_REGION만) |
| 모델 pinning 안 됨 | enterprise rollout 설정 미흡 | /setup-bedrock 마법사 실행 |
| streaming 응답 끊김 | 프록시/게이트웨이 timeout | Claude Code 공식 문서 troubleshooting 참고 |
9. 마치며
Claude Code를 Amazon Bedrock으로 실행하는 것은 AWS credentials + 모델 access + 환경변수 3가지로 끝납니다. 서울 리전(ap-northeast-2) 에서는 Opus 4.7 / Sonnet 4.6 / Haiku 4.5 가 ACTIVE 상태로 사용 가능하고, global. Inference Profile을 쓰면 리전 장애에도 자동 failover 됩니다. AWS 조직 안에서 비용/데이터 주권/IAM 권한을 모두 통합 관리할 수 있어, Anthropic API 직접 결제보다 운영상 유리한 점이 많습니다.
추가로, Bedrock 모델 액세스 가능 여부·Inference Profile 신규 리전·Claude Code 의 Bedrock 라우팅 동작(예: CLAUDE_CODE_USE_BEDROCK 플래그)은 양사 모두 자주 갱신됩니다. 글 작성 시점(1차 검증 2026-04-22) 의 옵션이 현재는 다를 수 있으므로 재현 전 Amazon Bedrock User Guide + Claude Code 공식 문서의 Bedrock 섹션 최신판을 확인하시기 바랍니다.
🎯 핵심 요약
- 3단계 설정 = AWS credentials → Bedrock use case form → 환경변수
AWS_REGION=ap-northeast-2 global.Inference Profile = 리전 장애 시 자동 failover, 직접 모델 ID보다 권장- v2.1.172+ AWS_REGION만으로 충분 =
CLAUDE_CODE_USE_BEDROCK환경변수는 구버전 호환용 ~/.aws/credentials권한 600 필수 = AWS SDK가 더 open된 권한 거부- settings.json 의 env 블록 = 프로젝트별 모델 pinning, 터미널 환경변수와 무관하게 영구 적용
- LEGACY 모델 비추천 = 신규 프로젝트는 ACTIVE 모델 + 글로벌 프로파일