
개발 조직에서 AI 코딩 도구 도입은 이제 피할 수 없는 흐름입니다. 하지만 엔터프라이즈 환경에서는 단순히 도구를 허용하는 것만으로는 충분하지 않습니다. 누가, 얼마나 사용하는지 추적하고, 사용자별 예산을 제한하며, 기존 인증 체계와 통합할 수 있는 거버넌스가 필수적입니다.
이 글에서는 Amazon Bedrock과 LiteLLM Proxy를 결합하여, IAM Identity Center(SSO) 인증 기반의 안전하고 효율적인 LLM Gateway를 구축하는 방법을 요약해 드립니다. 전체 인프라는 AWS CDK로 구현되어 있어 손쉽게 배포할 수 있습니다.
1. 왜 LLM Gateway가 필요한가?
Claude Code를 Amazon Bedrock에 직접 연결하면 개발자별 IAM 권한만으로 동작시킬 수 있지만, 기업 환경에서는 다음과 같은 명확한 한계에 부딪힙니다.
- 사용자별 비용 추적 불가: CloudWatch 메트릭은 IAM 역할 단위로만 집계되어 개인별 비용 구분이 어렵습니다.
- 사용자별 예산 제어 불가: IAM 정책만으로는 "특정 개발자의 월 사용량을 100달러로 제한"하는 세밀한 제어가 불가능합니다.
- 인증 관리 부담: 개발자마다 자격증명을 관리하거나 전원이 동일한 역할을 공유해야 하는 보안 공백이 발생합니다.
이를 해결하기 위해 클라이언트와 LLM API 사이에 위치하는 LLM Gateway 패턴을 도입합니다. LiteLLM Proxy 기반의 Gateway를 활용하면 SSO 연동, 사용자별 Virtual Key 발급, 실시간 사용량 및 예산 관리가 가능해집니다.
2. 솔루션 아키텍처 및 핵심 동작 원리
아키텍처는 인증 경로와 요청 경로로 나누어 안전하게 동작합니다.
[개발자] -> (aws sso login) -> [API Gateway + Token Service Lambda] -> [DynamoDB (Virtual Key 캐시)]
↓
[Claude Code] -> [ALB] -> [LiteLLM Proxy (ECS Fargate)] -> (VPC Endpoint) -> [Amazon Bedrock]
5-Layer 인증 체계
- SSO 로그인: 개발자가 aws sso login으로 IAM Identity Center에 인증합니다.
- API Gateway 호출: apiKeyHelper 스크립트가 SigV4 서명과 함께 Token Service를 호출합니다.
- SSO ARN 검증: Token Service Lambda가 AWSReservedSSO_* 패턴을 검증하여 올바른 SSO 사용자 인지 확인합니다.
- Virtual Key 인증: Claude Code가 발급받은 Virtual Key(Bearer Token)를 이용해 LiteLLM Proxy에 접근합니다.
- Bedrock 호출: ECS Task Role의 IAM 권한과 VPC Endpoint를 통해 안전하게 Bedrock을 호출합니다.
💡 Pass-through 모드 선택 이유: LiteLLM의 Translation 모드와 달리 Pass-through 모드는 Bedrock 네이티브 API 호출을 변환 없이 그대로 전달합니다. 이를 통해 Claude Code의 핵심 기능인 Prompt Caching과 anthropic-beta 헤더 등의 기능을 손실 없이 완벽하게 지원합니다.
3. 개발자 경험 및 간편한 설정
개발자는 복잡한 API 키를 직접 관리할 필요 없이, 기존 AWS SSO 워크플로우를 그대로 활용할 수 있습니다.
초기 설정 (1회)
- ~/.aws/config 설정:
-
Ini, TOML
[profile claude-code] sso_session = my-sso sso_account_id = 123456789012 sso_role_name = ClaudeCodeUser region = us-east-1 - ~/.claude/settings.json 설정:
-
JSON
{ "env": { "CLAUDE_CODE_USE_BEDROCK": "1", "ANTHROPIC_BEDROCK_BASE_URL": "https://{ALB_DNS}/bedrock", "CLAUDE_CODE_SKIP_BEDROCK_AUTH": "1", "AWS_REGION": "us-east-1", "AWS_PROFILE": "claude-code" }, "apiKeyHelper": "/path/to/scripts/get-gateway-token.sh" }
일상적인 사용
export AWS_PROFILE=claude-code
aws sso login # 브라우저 기반 SSO 인증 (세션 만료 시에만)
claude # Claude Code 즉시 실행
4. 엔터프라이즈 비용 및 보안 관리
- 사용자별 예산 제어: LiteLLM 관리자 포털 또는 API를 통해 사용자별 월 예산(예: 100달러)을 설정할 수 있으며, 예산 초과 시 해당 사용자만 자동으로 차단되어 비용 폭주를 예방합니다.
- 강화된 네트워크 보안: 모든 Bedrock 호출 트래픽은 인터넷을 경유하지 않고 VPC Endpoint(AWS PrivateLink)를 통해 내부 네트워크에서 안전하게 처리됩니다.
- 퇴사자 즉시 차단: IAM Identity Center에서 사용자를 비활성화하고 DynamoDB/LiteLLM의 Virtual Key를 삭제하면 즉각적인 접근 차단이 가능합니다.
5. 배포 방법
이 아키텍처는 AWS CDK로 구현되어 있어 복잡한 인프라를 코드로 손쉽게 배포할 수 있습니다.
npm install
cdk bootstrap # 최초 1회 실행
cdk deploy LlmGatewayStack \
-c certificateArn=arn:aws:acm:us-east-1:123456789012:certificate/xxxxxxxx
NestedStack 구조로 설계되어 루트 스택 하나만 배포하면 VPC, ECS Fargate, Aurora Serverless v2, API Gateway, DynamoDB 등의 전체 인프라가 자동으로 구성됩니다.
'AI' 카테고리의 다른 글
| 기업에서 사용하는 AI는 LiteLLM 사용 및 구축 방법 (0) | 2026.07.18 |
|---|---|
| "AI 에이전트 수익화?, 유튜버들이 절대 알려주지 않는 3가지 진실" (0) | 2026.06.23 |
| VEO3, 하이루오, Midjourney, Kling AI - 어떤 도구가 최적일까? (0) | 2025.11.17 |
| AI 영상 생성 도구 비교 분석: VEO3 vs 하이루오 (0) | 2025.11.17 |
| 시니어 유튜브 채널 운영 가이드 (2) | 2025.09.10 |