지도 타일 데이터 보안 개요

Object Storage에 저장된 지도 타일 데이터를 무단 접근·복제로부터 보호하는 방법 전반과 업계 표준 구현 사례를 정리한다. 업데이트: 2026-04-03


핵심 요약

구분내용
📖 정의Cloud Object Storage(R2, S3 등)에 저장된 지도 타일이 URL 노출만으로 무단 접근·복제되는 위협을 막는 보안 체계
💡 핵심업계 표준은 API Key + Proxy 서버 + 도메인 제한 조합이며, 고보안 서비스는 OAuth 2.0 또는 JWT를 추가한다
🎯 대상R2, S3에 3D Tiles·래스터 타일을 저장하고 CesiumJS로 서비스하는 개발자
⚠️ 주의CORS·Referrer 제한만으로는 curl, Python 등 비브라우저 도구의 직접 접근을 막을 수 없다

목차

  1. 문제 상황
  2. 위협 유형
  3. 보안 기술 분류
  4. 주요 서비스별 보안 방식
  5. 한국 공공기관 보안 방식
  6. 업계 표준 요약

문제 상황

Object Storage에 파일을 올리고 URL을 공개하면 URL 노출 = 파일 접근 허용이라는 심각한 보안 문제가 발생한다.

DB 저장: { path: "https://pub-xxxx.r2.dev/models/building/tileset.json" }
                          ↓
    이 URL을 아는 누구나 tileset 전체를 다운로드 가능

지도 타일 데이터는 구조적 취약점이 있다.

tileset.json (진입점) → 내부 참조 b3dm, glb 수천 개 자동 열거 가능
                         ↓
        URL 하나만 알면 전체 데이터셋 복제 가능

위협 유형

위협설명실제 피해
무단 데이터 복제tileset.json → 전체 트리 자동 탐색·다운로드지적재산권 침해, GIS 자산 유출
Hotlinking타 사이트가 우리 URL 직접 embed해서 사용R2/S3 Egress 비용 전가
Denial of Wallet봇의 대량 요청 → 스토리지 Egress 비용 폭증비용 피해
경쟁사 크롤링자동화 스크립트로 전체 에셋 수집비즈니스 피해
무단 서비스 구축우리 데이터를 그대로 사용한 경쟁 서비스 등장비즈니스·법적 피해

보안 기술 분류

업계에서 사용되는 보안 기술은 접근 제어인증 두 레이어로 나뉜다.

flowchart TD
    A[지도 타일 보안 기술] --> B[접근 제어 레이어<br/>누가 요청할 수 있나]
    A --> C[인증 레이어<br/>요청자가 권한이 있나]

    B --> B1[HTTP Referrer 제한]
    B --> B2[CORS 정책]
    B --> B3[IP 화이트리스트]
    B --> B4[Rate Limiting]

    C --> C1[API Key]
    C --> C2[JWT Token]
    C --> C3[Signed URL<br/>Presigned / HMAC]
    C --> C4[OAuth 2.0]
    C --> C5[Proxy 서버 패턴]
    C --> C6[Zero Trust<br/>Access / Tunnel]

보안 기술별 특성 비교

기술보안 수준3D Tiles 적합성권장 용도
API Key + Proxy중간~높음✅ 완전 호환대부분 서비스의 기본 구성
JWT + Proxy높음✅ 완전 호환사용자 인증 기반 서비스
OAuth 2.0매우 높음엔터프라이즈·공공기관
Presigned URL중간❌ 부적합단일 파일 다운로드
HMAC Signed URL중간✅ 호환헤더 설정 불가 환경 (iframe 등)
Referrer 제한낮음✅ (보조)보조 수단
CORS낮음✅ (보조)보조 수단
IP 화이트리스트낮음~중간서버 간 통신 전용
Cloudflare Tunnel매우 높음✅ (내부 전용)내부 개발·스테이징 환경

⚠️ 단일 기술만 사용하는 것은 권장하지 않는다. 복수 레이어를 조합하는 **심층 방어(Defense in Depth)**가 업계 표준이다.


주요 서비스별 보안 방식

Cesium ion

Access Token + Allowed URLs + Asset ID 제한 3중 구조를 사용한다.

flowchart TD
    A[클라이언트 요청] --> B{Access Token<br/>유효?}
    B -->|No| E[401 Unauthorized]
    B -->|Yes| C{Allowed URL<br/>도메인 일치?}
    C -->|No| E
    C -->|Yes| D{Asset ID<br/>접근 권한?}
    D -->|No| E
    D -->|Yes| F[타일 데이터 제공]
항목내용
인증 방식RFC 6750 Bearer Token (Authorization: Bearer <TOKEN>)
도메인 제한토큰별 Allowed URLs 설정 (HTTP Referer 헤더 기반 검증). 프로토콜 구분 필수(http://https://). Cesium for Unreal/Unity 등 비브라우저 환경은 Referer를 전송하지 않으므로 이 기능 사용 불가
Scope 분리Public: assets:read, geocode (클라이언트) / Private: assets:list, assets:write, tokens:write 등 (서버)
토큰 만료일반 토큰: 무기한, REST API 임시 토큰: 1시간(3,600초)
PKCE클라이언트 측 OAuth 2.0 PKCE 사용 권장 (OAuth 2.1 RFC 9700에서는 필수이나, Cesium ion은 현재 의무화하지 않음)

네이버지도 API

네이버 클라우드 플랫폼(NCP)은 ncpKeyId + 웹 서비스 URL 등록 방식을 사용한다.

항목내용
인증 파라미터ncpKeyId (2025년 3월 20일 신규 ‘Maps’ 상품 출시와 함께 도입). 기존 ‘AI NAVER API’ 상품은 ncpClientId를 사용했으며 2025년 6월 30일까지 마이그레이션 완료 필요
도메인 제한NCP 콘솔 Application에서 허용 URL 등록
요청 방식URL 쿼리 파라미터 또는 헤더에 키 포함
제한 정책2025년 7월 1일부로 구 ‘AI NAVER API’ 상품의 무료 이용량 전면 폐지, 전량 유료 과금 전환. 신규 ‘Maps’ 상품은 대표 계정 기준 Web/Mobile Dynamic Map 월 600만 건 무료 제공

Google Maps Platform

API Key + 사용 제한(Restrictions) 이중 구조를 사용한다.

제한 유형적용 대상설정 내용
HTTP Referrer웹 클라이언트용 키*.example.com/* 형식으로 도메인 패턴 등록
IP 주소서버 API용 키CIDR 형식으로 허용 IP 범위 등록
Android App안드로이드용 키SHA-1 인증서 지문 + 패키지명 등록
iOS AppiOS용 키번들 ID 등록

Maps Tiles API는 2단계 구조를 사용한다.

  1. API Key를 포함한 createSession POST 요청으로 세션 토큰 발급 (유효기간 약 2주)
  2. 이후 모든 타일 요청에 세션 토큰 + API Key 모두 필수 (?session=SESSION_TOKEN&key=API_KEY). 세션 토큰은 지도 설정(mapType, language, region 등)을 캡슐화하여 매 요청마다 반복 전송을 방지하는 역할

Mapbox

공개 토큰(pk.)과 비밀 토큰(sk.)을 엄격히 분리한다.

토큰 종류접두사사용 위치특징
Public Tokenpk.클라이언트 (브라우저, 앱)URL 제한 설정 필수
Secret Tokensk.서버 전용생성 시 1회만 표시, 재조회 불가

기타 서비스

서비스주요 인증 방식특이 사항
V-WorldAPI Key (URL 쿼리 파라미터)도메인 등록 + Key 발급 구조
AWS Location ServiceAWS IAM + CognitoAPI Key를 Android(패키지명 + SHA-1 인증서 지문) / iOS(번들 ID)로 제한 가능
Azure MapsMicrosoft Entra ID (OAuth 2.0) 권장SAS 토큰, 구독 키 병행 지원(구독 키는 테스트/개발 외 비권장). Private Endpoint로 VNet 내 비공개 연결 가능(현재 Public Preview)
Esri ArcGIS OnlineSAML/OIDC SSO, API Key, ArcGIS Login + MFA에셋별 공유 권한 4단계: 비공개(소유자) → 그룹 → 조직 → 전체 공개

한국 공공기관 보안 방식

V-World (국가공간정보포털)

항목내용
인증 방식API Key (URL 쿼리 파라미터)
요청 형식?key=인증키&domain=사용도메인
신청 절차회원가입 → 사용 목적·URL 입력 신청 → 보안성 검토 후 승인
도메인 제한신청 시 등록한 도메인에서만 유효
공개 범위공개 API (별도 심사 후 비공개 고해상도 데이터 접근 가능)

기타 공공기관

기관보안 방식특이 사항
국토정보공사(LX)API Key + 심사 절차고정밀 항공사진·정밀도로지도 등 민간 활용 시 공간정보 보안심사 필수
공공데이터포털API Key (data.go.kr 키 연계)공공API 표준 방식
국토지리정보원API Key + 유형별 접근 제어국가기본도·정사항공영상 등 데이터 유형별 공개 수준 상이

한국 공공기관 보안 규정

규정시행일내용
행정안전부 공간정보 보안관리규정 (훈령 제377호)2025-01-31공간정보 취급 기관의 보안 관리 기준
국토지리정보원 국가공간정보 보안관리규정 (예규 제199호)2024-05-01국가기본도·항공사진 보안 기준
국가공간정보 보안관리 기본지침상시국가정보원 지침, 대외비

💡 공공기관 공간정보는 기본적으로 API Key + 도메인 제한 방식이 표준이며, 고정밀·보안 등급 데이터는 신청 심사를 통해 별도 관리한다.


업계 표준 요약

flowchart TD
    A[업계 표준 보안 구조] --> B[기본 레이어<br/>모든 서비스 공통]
    A --> C[고급 레이어<br/>엔터프라이즈·공공]

    B --> B1[API Key 발급·관리]
    B --> B2[도메인 제한 등록]
    B --> B3[CORS + Referrer 설정]
    B --> B4[Rate Limiting]

    C --> C1[OAuth 2.0 / JWT]
    C --> C2[Scope 최소 권한]
    C --> C3[IP 화이트리스트<br/>서버 API 전용]
    C --> C4[Proxy 서버 패턴]
    C --> C5[정기 키 교체<br/>최소 90일 주기]
보안 단계구성적합 서비스
기본API Key + 도메인 제한 + CORS소규모 내부 서비스, PoC
표준API Key + 도메인 제한 + Proxy 서버 + Rate Limit상용 서비스, 외부 공개 API
고급JWT/OAuth 2.0 + Proxy 서버 + Scope 제한 + 정기 키 교체엔터프라이즈, 공공기관, 고가치 데이터

문서 탐색

이전다음
보안 방법 상세

참고 자료