Claude Console에 조직 단위 IP 허용 목록이 베타로 들어왔다. 유출된 키를 회사 밖에서 쓰는 길은 좁아지지만 회사 안 오용은 그대로다. 켜기 전에 만료일 없는 키, 출구 IP, 클라우드 경유 호출부터 센다.
Claude API 키가 공개 저장소나 Slack 메시지에 찍혔다는 보고가 올라오면 회의에서 먼저 나오는 말은 "IP 제한부터 걸자"다. 그동안 Claude Console에는 그 스위치가 없었다.
Claude Platform 11월 5일 릴리스 노트가 그 스위치를 베타로 열었다. 조직 관리자가 IPv4·IPv6 주소나 CIDR 범위를 최대 1,000개까지 넣으면 목록 밖에서 온 요청은 거절된다. 릴리스 노트가 밝힌 목적은 유출된 키가 쓰일 수 있는 곳을 줄이는 것이다.
위험은 이 스위치를 켠 뒤 "키 유출 대응 완료"로 보고서를 닫는 데서 생긴다. 허용 목록이 확인하는 값은 요청의 공인 IP 하나다. 키가 몇 달 묵었는지, 허용된 서버 안에서 무엇이 그 요청을 만들었는지는 보지 않는다.
허용 목록은 Anthropic이 직접 받는 요청의 공인 IP만 비교한다
Claude Platform IP 허용 목록 문서(11월 9일 확인)는 적용 범위를 엔드포인트 단위로 적었다. Claude Console 화면, Messages·Message Batches·Token Counting·Models·Files·Skills, Managed Agents의 Agents·Sessions·Environments·Vaults·Memory stores가 대상이다. API 키든 Workload Identity Federation(WIF) 토큰이든 똑같이 걸린다. 목록 밖에서 온 Messages 요청은 403 permission_error와 함께 Your IP address isn't in this organization's allowed range. 메시지를 받는다. 설정 변경은 반영까지 최대 15분이 걸린다.
같은 문서의 제한 사항 절은 목록이 닿지 않는 경로를 따로 적었다.
| 경로 | 허용 목록 적용 |
|---|---|
| Claude API 직접 호출(Messages 등 6종) | 적용 |
| Managed Agents 엔드포인트 호출 | 적용 |
| Managed Agents 런타임 안의 네트워크 통신 | 미적용 |
| Claude in Amazon Bedrock·Claude Platform on AWS | 미적용 |
| Claude Models on Google Cloud·Claude in Microsoft Foundry | 미적용 |
Managed Agents는 Agents·Sessions 같은 엔드포인트 호출만 목록을 거치고, 런타임 안에서 에이전트가 밖으로 보내는 통신은 목록과 무관하다. 같은 모델을 Bedrock으로도 부르는 조직이라면 그 경로는 Console 목록이 아니라 AWS 자격 증명과 네트워크 설정이 지킨다.
문서는 공유 프록시도 짚었다. 여러 팀이 함께 쓰는 프록시 주소를 목록에 넣으면, 유출된 키를 손에 넣은 공격자도 그 프록시를 거쳐 들어올 수 있다.
허용된 서버 안에서 만든 요청은 목록을 그대로 통과한다
프록시 경고를 한 단계 넓히면 에이전트 문제가 된다. 허용된 서버에서 돌던 코딩 에이전트가 프롬프트 인젝션에 걸려 키를 오용해도, 그 요청은 허용된 주소에서 나가므로 정상 트래픽과 구별되지 않는다.
InfoQ 11월 6일 기사가 소개한 Edera의 Bounded Authority는 이 지점을 겨눈다. 에이전트에게 API 토큰을 쥐여 주지 않고, 격리된 브로커가 자격 증명을 들고 허가된 요청만 대신 보낸다. 다만 기사 기준으로 출시된 것은 범위를 제한한 명령 실행과 워크로드 신원뿐이고, 자격 증명 브로커 capcurl은 아직 나오지 않았다.
그래서 기간 통제가 같이 가야 한다. IP 허용 목록 문서는 목록이 키가 작동하는 장소를 제한할 뿐 기간은 제한하지 않는다고 적고, 짧은 만료나 WIF 전환을 함께 권한다. Claude Platform 인증 문서(11월 9일 확인)를 보면 만료는 키를 만들 때 3시간·1일·7일·30일·직접 지정·Never 중에서 고르고, 나중에 바꿀 수 없다. 조직에 최대 만료 정책이 있으면 Never가 사라진다. Admin API는 키마다 expires_at을 돌려주고, 만료가 없는 키는 이 값이 null이다. 만든 사람이 조직을 떠나도 남는 레거시 Workspace 키도 같은 목록에서 센다.
Claude Enterprise 로그아웃 API는 사람의 로그인만 끊는다, 예약 작업은 그 사람 GitHub 이름으로 계속 커밋한다에서 본 대로 로그아웃은 API 키를 끊지 않는다. 남은 키를 묶는 수단은 셋이다. 허용 목록은 장소를, 만료일은 기간을, 키를 에이전트 프로세스 밖에 두는 설계는 사용 주체를 묶는다.
잠금 방지 체크박스도 대가가 있다. 문서는 "Allow admins to access this settings page from any IP address"를 켜 두라고 권하면서, 관리자 세션을 탈취한 공격자가 원격에서 목록을 고칠 수 있다고 적었다. Compliance API를 켜 둔 조직이면 목록 변경이 Activity Feed에 남는다.
가져갈 것
| 확인 항목 | 어디서 확인하나 | 기한 |
|---|---|---|
expires_at이 null인 키 수, 레거시 Workspace 키 수 | Admin API List API Keys, Console API keys 표 | 허용 목록 켜기 전 |
| 조직 최대 만료 정책 적용 여부 | Console 키 생성 화면에 Never가 보이는지 | 허용 목록 켜기 전 |
| 서버·CI·VPN·자체 호스팅 샌드박스 워커의 공인 IPv4·IPv6 출구 주소 | NAT·방화벽·프록시 설정 | 허용 목록 켜기 전 |
| 목록에 넣을 공유 프록시 주소와 그 뒤에서 키를 쥔 에이전트 서버 | 프록시 설정, 에이전트 배포 목록 | 허용 목록 켜기 전 |
| Bedrock·Claude Platform on AWS·Google Cloud·Foundry로 나가는 Claude 호출 | 각 클라우드 결제·IAM 화면 | 허용 목록 켜기 전 |
일·주 단위 배치가 받은 403 permission_error | 애플리케이션 로그 | 켠 뒤 15분, 7일째 |
| 관리자 예외 체크박스를 켰다면 목록 변경 기록 | Compliance API Activity Feed | 매주 |
안 되는 경우
- Claude를 Bedrock·Google Cloud·Foundry로만 부르는 조직에는 이 목록이 적용되지 않는다. 출발지 통제는 각 클라우드 쪽 설정에서 따로 찾는다.
- 재택·모바일 접속이 많은 Claude Enterprise 조직은 VPN 밖 노트북과 모바일 데이터 접속이 막힌다. Enterprise 목록은 Claude Design·Claude in Slack·Claude Academy를 덮지 않고, 차단된 사용자가 맡겨 둔 채팅 작업은 최대 24시간 계속 돈다.
- 문서는 거부된 요청을 조직이 어디서 조회하는지, Console 쪽 플랜 조건이 무엇인지 적지 않았다. 베타 기간에 설정과 동작이 바뀔 수 있다고도 밝혔다.
- 기사 속 Edera 방식은 독립 시험이나 운영 사례가 없고 capcurl이 출시 전이다. 사내 에이전트의 키 오용은 당분간 키를 에이전트 프로세스에 두지 않는 설계로 직접 막는다.
이번 주에는 Admin API로 expires_at이 null인 키를 뽑아 개수를 적고, 키마다 만료일을 붙여 다시 발급할지 WIF로 옮길지 정한 뒤에 허용 목록을 켠다. 에이전트를 새로 붙이는 회의라면 "이 키를 어느 프로세스가 쥐는가"를 첫 질문으로 올려 볼 만하다. 사업영역 →