brunch

You can make anything
by writing

C.S.Lewis

by 김영욱 Apr 02. 2024

GBaaS는 무엇이고 왜 필요한가?

지역 차단을 하는 Geo-Blocking as a Service에 대하여

이 글은 제가 NIA [한국지능정보사회진흥원]의 < 디지털서비스 이슈리포트 > 2024년 3월호에 기고한 글입니다. 원본 글 'GBaaS (Geo-Blocking as a Service)는 무엇이고 왜 필요한가?'을 이곳 브런치에서도 공유합니다.


세계 다른 지역을 여행하면서 넷플릭스나 유튜브와 같은 스트리밍 서비스의 특정 콘텐츠를 시청하려고 할 때, 떠나오기 전에 시청이 가능했던 콘텐츠가 현재 위치에서는 더 이상 유효하지 않은 경우가 있다. 이렇게 사용된 기술을 지역 차단(Geo-Blocking)이라고 하며 이런 방법은 스트리밍 서비스뿐만 아니라 특정 지역으로 판매를 제한하는 온라인 쇼핑이나, 온라인 도박사이트, 정부기관에서 특정 메신저나 앱 서비스에 대한 액세스를 차단하는 경우에도 사용된다.

지역 차단의 정의는 사용자의 지리적 위치를 기반으로 특정 온라인 콘텐츠에 대한 액세스를 제한하는 것이다. 퍼블릭 IP 주소는 지역 차단을 가능하게 하는 기본 정보가 된다. IP 주소는 인터넷 또는 로컬 네트워크의 장치에 부착된 고유한 숫자로 접속한 라우터에 의해 결정되므로 지리적 위치에 대한 정보를 담고 있다. 그러므로 그 IP 주소를 판정하여 정보에 대한 접근을 제한하는 것이 가능하다. 물론 이런 지역 차단을 우회하기 위해 사용자의 트래픽을 다른 지역의 서버를 통해 리디렉션 하고, IP주소를 변경하는 가상 사설망(VPN: Virtual Private Network) 접속을 시도하기도 한다. 반대로 정보 제공자 입장에서는 사용자 IP 주소 조회, 모바일 디바이스를 사용하는 경우 GPS 쿼리, 엔드투엔드 네트워크 요청의 지연 시간 측정 등 다양한 방법으로 사용자 액세스를 제한하는 노력을 한다.

최근 하이퍼스케일러 기업을 중심으로 지역 차단 기능을 클라우드 기본 서비스로 탑재하고 상세한 세부 설정 기능을 제공하고 있다. 이 기능의 중심에는 스트리밍 서비스나, 온라인 쇼핑보다는 더 큰 명확한 이유가 있다. 특히 많은 기밀 자료를 다루어야 하는 정부기관의 경우 이런 서비스를 적극적으로 사용해야 큰 우환을 막을 수 있다. 왜 이 지역 차단기능이 중요하며 주요 클라우드 제공 기업들의 서비스 내용에 대해 알아보자.



1. 수출 통제 및 제재 규정 준수

상품, 소프트웨어 및 기술의 수출을 규제하는 법률을 수출 통제(Export Control)라고 한다. 수출국의 이익에 반하는 용도로 사용될 가능성이 있을 때 그 품목은 통제 대상 품목으로 간주된다. 통제 품목의 수출은 유해한 사용을 제한하기 위해 규제되고 대부분의 정부가 수출 통제를 시행하고 있다. 소프트웨어 서비스도 중요한 품목 중의 하나이다.

그렇기에 소프트웨어 서비스 역시 수출 상품으로 간주되며, 수출 통제 목적의 품목을 식별하기 위해 5자리 수출통제 식별번호(ECCN: Export Control Classification Number)를 발행해야 여러 국가에서 서비스가 가능하다.

그림 1.수출통제 식별번호(ECCN) 구분

일반 사용자 서비스보다는 B2B용 서비스인 경우 이런 통제가 매우 명확하게 기술되어야만 수출이 허용된다. 전반적인 비즈니스 위험을 고려하여 특정 국가나 지역에서는 제품 및 서비스를 수출, 재수출, 양도 및 사용을 제한한다. 예를 들어 비즈니스 소프트웨어 서비스를 하는 SAP의 경우 그 대상 국가를 매우 명확하게 기술하고 있다.[1] 일반적으로 많은 국가에서 대상 제한을 하는 국가가 포함되어 있다. (쿠바, 이란, 북한, 시리아 등)

사실 이 부분은 외교와 법률에 관한 부분이기에 실제 소프트웨어가 그 대상 국가에서 사용되거나 접속되는 것을 원천적으로 피하기 위해서는 다른 기술적인 요소가 필요하다. 즉 조직은 규정 준수 및 규제 요건, 제재, 개인정보 보호법, 지역 소유권, 보안 통제 등을 준수하기 위해 콘텐츠에 대한 액세스를 제한하는 기술적인 방법이 필요하다. 기업이 액세스를 제한하는 방법 중 가장 쉽게 그리고 널리 사용하는 방법은 사용자의 위치를 기반으로 웹사이트 또는 다른 콘텐츠에 대한 액세스를 제한하는 것이다. 콘텐츠를 지역 차단하는 가장 일반적인 방법은 IP 주소를 사용하여 사용자의 위치를 파악하는 것이지만, 단순히 IP 주소를 필터링해서는 우회하는 접속을 막기는 어렵다. 

정부 사이트나 서비스라면 더욱 중요하다.  우회 접속을 검출하는 것부터, 중요한 자료의 다운로드도 관리해야 하는데 모든 개발자나 관리자에게 이런 기본적인 개념을 갖고 서비스를 개발하라고 종용하기도 어려운 것이 현실이다. 이런 어려움을 해결하고자 클라우드 제공자들이 지역 차단 기능을 GBaaS(Geo-Blocking as a Service)로 제공하기 시작했다. 이 방법들은 사용자의 IP 기반 위치가 아닌 실제 위치를 기반으로 웹 애플리케이션에 대한 액세스를 지역별로 차단하는 방법을 제공한다.



2. Geo-Blocking as a Service


AWS (Amazon Web Service)

AWS의 CDN(Content Delivery Network)인 클라우드프론트(CloudFront)의 기본 지리적 제한을 사용하거나, AWS WAF(Web Application Firewall)를 사용하여 구현할 수 있다. 각 방법은 서로 다른 매칭 세분성, 사용자 지정 가능한 로직을 제공한다. 

가장 간단한 방법은 클라우드프론트의 지리적 제한을 사용하는 것이다. 특정 국가 집합을 허용하거나 차단할 수 있으며, 이는 CloudFront 배포에서 수신하는 모든 요청에 적용된다. 구성된 지리적 제한에 의해 제한되는 시청자는 CloudFront에서 ‘403 금지’ 응답을 받게 된다. 

그림 2. AWS의 클라우드프론트에서 지리적 제한을 설정하는 화면

보다 정교한 제한을 위해서는 AWS WAF를 이용한다. 이 방법은 사용자의 실제 위치데이터(위도와 경도)를 AWS 람다함수를 사용하는 것이다. 람다 함수는 Amazon 위치 서비스를 활용하여 사용자의 위치를 리버스 지오코딩하고 리디렉션을 위한 URL을 보낸다. 사용자의 위치에 따라 오류 페이지로 라우팅 되거나 실제 실행되는 웹 페이지로 전달되는 방법이다.

그림 3. AWS WAF를 사용하여 지역 차단을 하는 방법(출처: AWS)

AWS는 최근 국제 표준화 기구(ISO) 3166 국가 및 지역 번호를 기반으로 정확한 지리적 규칙을 구축하는 데 사용할 수 있는 새로운 기능을 출시함으로 이제 ISO 3166 지역 수준에서 액세스를 관리할 수 있게 되었다.[2] 지리적 일치 규칙을 적용하면 모든 요청에 지역 및 국가 레이블을 추가하여 고객이 차단하거나 허용하려는 지역에 따라 레이블 일치 문을 작성할 수 있도록 한다. 지리적 일치 규칙 문은 다른 AWS WAF 규칙과 결합하여 특정 지역을 차단하면서 해당 지역의 특정 개발자 IP 주소는 허용하는 것과 같은 정교한 필터링 정책을 구축할 수 있다. 


마이크로소프트 애저

애저 역시 웹 애플리케이션 방화벽(WAF)에 사전 설정 및 사용자 지정 규칙을 사용하여 웹 트래픽을 필터링, 모니터링 및 차단한다. WAF가 수신하는 모든 요청에 대해 검사하는 자체 규칙을 만들면, 사용자 지정 규칙은 관리되는 규칙보다 우선순위가 높으며 먼저 확인된다.

애저 WAF의 지오매치(Geomatch) 사용자 지정 규칙을 사용하면 웹 요청이 발생한 지리적 위치를 일치시킬 수 있다. 지오매치 사용자 지정 규칙은 웹 애플리케이션을 사용하는 사람들의 위치를 기반으로 웹 애플리케이션에 대한 액세스를 제한함으로써 데이터 주권 및 개인정보 보호법을 준수하기 위해 제공되는 기능이다. 

그림 4. 마이크로소프트 애저 WAF의 설정화면 (출처: 마이크로소프트)

애저 WAF의 지역 차단 동작은 AWS WAF와 매우 흡사하다. 애저 역시 지역 차단 설정에서 사용자 지정 규칙을 지원하는데, 규칙 추가에서 일치 유형으로 지리적 위치를 선택한 다음 애플리케이션에서 허용/차단할 국가/지역을 하나 또는 여러 국가/지역을 선택하면 된다.

그림 5. 애저 WAF에서 사용자 지정 규칙을 설정하는 방법


구글 클라우드 플랫폼

구글 역시 지역 차단 기능은 방화벽을 통해 서비스를 제공하고 있다.[3]   그러나 지역 차단 기능은 기본 기능인 에센셜에서는 지원하지 않고 규칙 기능을 확장하는 스탠다드 패키지에서만 지원한다. 이 말은 클라우드 콘솔, 명령줄 인터페이스 및 API를 통해서도 활성화할 수 있다는 뜻이다.

그림 6.구글 클라우드 파이어월 기능 지원 구분

구글의 지역 차단 접근 방법도 위의 두 제공자와 같다. 지리적 위치 개체를 사용하여 특정 지리적 위치 또는 지역을 기준으로 외부 IPv4 및 외부 IPv6 트래픽을 필터링한다. 지리적 위치 개체가 포함된 규칙을 인그레스(ingress) 및 이그레스(egress) 트래픽에 적용할 수 있다. 트래픽의 방향에 따라 국가 코드와 연결된 IP 주소를 일치시키는 방법이다. 예를 들어 미국에서 들어오는 트래픽만 허용하려면 소스 국가 코드를 미국으로 설정하고 작업을 허용으로 설정한 인그레스 방화벽 정책 규칙을 만들면 된다.

이것은 구글이 인수한 API 관리 플랫폼인 에이피지(Apigee)를 이용하여 방화벽인 클라우드 아머(Cloud Armor)에서 규칙에 따라 필터링하는 방법이다.

그림 7. Cloud Armor를 사용하여 지역 차단을 하는 구글 클라우드

지역차단 방법은 합법이며, 콘텐츠에 액세스 하는 국가와 방법에 따라 지역 차단을 우회하려는 시도는 불법일 수 있다. 라이선스 계약과 연결되어 구현해야 하는 필요성이 있을 수도 있고, 인터넷 검열이나 보안 필요성이 있을 수도 있다.  올바른 서비스를 구현하는 것은 그것의 개발에서 완성이 되는 것이 아닌 올바른 배포가 반드시 따라줘야 한다. 권한이 없는 자가 접근하는 것은 막는 것은 보안을 넘어 콘텐츠 주권을 갖는데 매우 중요한 요소이다. 클라우드 플랫폼이 제공하는 지역 차단 서비스를 사용하는 것은 효율성과 일관성 있는 콘텐츠 관리를 위해서 필요하다는 생각이다.


참고 (References)

[1] SAP, “Export Control and Sanctions Compliance

[2] AWS, “AWS WAF Now Supports Granular Geographic Match”, Nov 02, 2022

[3] Google, “Announcing general availability of Cloud Firewall threat intelligence and geo-location features”, Jun 10, 2023

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari