목차
IP 허용 목록
IP 허용 목록
각 API 키에 별도의 IP 허용 목록을 설정하여 지정된 소스 IP에서 온 요청만 해당 키를 사용하도록 제한할 수 있습니다.
사용하기 좋은 경우
고정된 아웃바운드 IP를 사용하는 프로덕션 서버 배포에 적합합니다. 홈 네트워크, 모바일 네트워크 또는 변경되는 주소에서 요청을 보내는 애플리케이션이라면 먼저 아웃바운드 IP가 안정적인지 확인하세요. 그렇지 않으면 스스로 접속을 차단할 수 있습니다.
설정 방법
「 /keys 」로 이동한 뒤 해당 키의 "⋯" 메뉴에서 "IP 허용 목록"을 선택하고 항목을 입력한 후 저장하세요.
로그인된 세션 또는 Management API 키와 함께 PATCH /api/v1/keys/:id를 사용할 수도 있습니다:
항목 형식
UI에서는 한 줄에 하나의 값을 입력하세요. API에서는 같은 값을 `allowedCidrs` 배열로 보내세요. 일반 IPv4, IPv4 CIDR 또는 IPv6 리터럴(정확한 일치만)을 사용할 수 있습니다.
203.0.113.7
198.51.100.0/24
2001:db8::1동작 방식
비워 두거나 빈 [] 배열을 보내면 소스 IP를 제한하지 않습니다. 이것이 기본값이므로 기존 키의 동작은 변하지 않습니다.
소스 IP는 `cf-connecting-ip` 헤더에서 가져옵니다.
목록이 비어 있지 않은데 소스 IP를 확인할 수 없으면 요청이 거부됩니다(fail-closed).
⚠️ 중요: 거부 응답은 일반 401뿐입니다
목록 밖의 IP에서 온 요청이나 소스 IP를 확인할 수 없는 요청은 유효하지 않은 키와 정확히 같은 일반 HTTP 401을 받으며, 전용 오류 메시지는 없습니다. 이는 키를 훔친 사람이 허용 목록의 존재를 알 수 없도록 하는 의도적인 보안 설계입니다. 따라서 잘못된 설정은 유효하지 않은 키와 똑같이 보이고 디버깅이 매우 어렵습니다. 저장하기 전에 서버의 아웃바운드 IP가 목록에 포함되어 있는지 확인하세요.
⚠️ 중요: IPv6는 정확한 문자열 일치만 지원합니다
IPv6에는 서브넷 계산을 사용하지 않으며 주소 문자열이 정확히 같아야 합니다. IPv6 주소가 변경되면 접속이 차단될 수 있습니다. /0–/32 CIDR 범위는 IPv4에서만 지원됩니다.
변경 사항 적용 시점
PATCH 또는 UI 저장이 성공하면 업데이트를 수행한 인스턴스의 캐시가 즉시 삭제됩니다. 정상적인 경우 다른 인스턴스도 약 15초 이내에 동기화됩니다. 공유 Redis를 일시적으로 사용할 수 없으면 인스턴스 간 무효화가 즉시 전파되지 않아 캐시 TTL인 최대 1시간까지 지연될 수 있습니다.