API Gateway를 활용한 데이터 주권 및 데이터 규정 준수
November 28, 2022
배경 및 도전 과제
스마트폰, IoT, 고속 모바일 네트워크의 인기가 높아짐에 따라 사진, 금융 거래, 지리적 위치, DNA 시퀀싱, 의료 기록, 임상 시험 등과 같은 대량의 민감한 데이터가 생성되었습니다. 이러한 민감한 데이터를 기반으로 한 통계 분석은 개인, 기업 또는 특정 그룹의 정체성을 정확하게 묘사할 수 있으며, 이는 개인 정보 보호와 국가 안보를 위협할 수 있습니다.
점점 더 많은 국가의 입법 기관들이 이 문제의 심각성과 긴급성을 인식하고 있습니다. 그들은 데이터 수집 및 국경 간 전송을 규제하기 위해 많은 법률과 규정을 도입했습니다. 유럽의 일반 데이터 보호 규정(GDPR)과 미국의 건강 보험 이동성 및 책임법(HIPAA)은 이러한 법률의 선구자입니다. 많은 개발도상국들도 이를 따라가고 있습니다:
- 말레이시아: 개인 데이터 보호법 2010(PDPA), 2013년 11월 발효.
- 중국: 중화인민공화국 사이버 보안법, 중화인민공화국 데이터 보안법, 중화인민공화국 개인 정보 보호법이 2017년부터 2021년까지 차례로 공포됨.
- 브라질: 브라질 일반 데이터 보호법(BGDP), 2020년 9월 발효.
- 태국: 태국 개인 데이터 보호법(PDPA), 2022년 6월 발효.
따라서 단말기와 사용자에 의해 생성되고 제조업체에 의해 저장 및 보관되는 데이터는 여러 법 집행 기관의 감독을 받습니다. 이에 따라 기업, 특히 대형 다국적 기업들은 다음과 같은 많은 긴급한 새로운 문제에 직면하고 있습니다:
- 어떤 데이터를 수집할 수 있는가? 어떤 데이터를 수집할 수 없는가?
- 데이터는 어떻게, 어디에 저장되는가?
- 데이터를 국경 간 전송할 수 있는가?
이 모든 문제를 정리하고 해결책을 마련하는 것은 거대한 프로젝트가 될 것입니다. 여기서는 주로 한 가지 문제에 초점을 맞출 것입니다:
API를 통해 전송되는 클라이언트 데이터에 대해, API 게이트웨이 수준에서 데이터 주권을 어떻게 결정하여 데이터가 합법적으로 처리 및 저장되도록 할 것인가?
예를 들어, 유럽 출장 중인 미국 사용자가 휴대폰으로 은행 송금을 하는 경우, 이 거래 데이터는 가까운 유럽 서버가 아닌 미국에 있는 더 먼 서버에서 처리 및 저장되어야 합니다.
이 글의 후반부에서는 이 예시에 대한 구체적인 기술적 해결책을 제시할 것입니다. 그 전에 먼저 데이터 주권과 데이터 준수에 대해 살펴보겠습니다.
데이터 주권과 데이터 준수란 무엇인가?
데이터 주권
한 국가는 영토, 영공, 영해와 같은 물리적 공간에 대한 주권뿐만 아니라 데이터와 국가 사이버 공간에 대한 주권도 가지고 있습니다.
*일반 데이터 보호 규정(GDPR)*을 예로 들어보겠습니다. 이는 EU의 개인 데이터 프라이버시 및 보호를 위한 규정입니다. GDPR에는 가장 기본적인 요구 사항 중 하나가 있습니다. "모든 사용자 데이터 수집 행위는 사용자의 동의를 필요로 하며, 사용자는 언제든지 저장된 개인 데이터를 명확히 하고 삭제할 권리가 있습니다."
따라서 기업이 유럽 데이터를 다른 지역으로 전송하려면, 제3국의 데이터 주권 요구 사항이 EU의 요구 사항을 충족해야 합니다. 데이터가 현지 법률을 준수해야 한다는 필요성에 대해, 다국적 비즈니스에서는 실제로 많은 우려가 있습니다.
또 다른 우려는 미국의 패트리어트 법입니다. 이 법은 미국에 저장된 모든 데이터 또는 미국 기업이 저장한 데이터가 미국의 감독 하에 있어야 한다고 요구합니다. 미국 법무부와 중앙정보국(CIA)은 기업에 데이터를 제공하도록 요청할 권리가 있습니다. 2013년, 미국 법무부는 마이크로소프트에 아일랜드 서버에 저장된 일부 이메일 정보를 공개하도록 요청했습니다. 마이크로소프트는 이 요청이 EU 규정 요구 사항을 위반할 것이라며 미국 법무부의 요청을 거부했습니다. 이후 미국 법무부는 마이크로소프트를 법원에 제소했지만, 마이크로소프트가 승소했습니다. 이후 데이터 주권 위험을 피하기 위해, 많은 미국 기업들이 데이터 센터를 유럽에 직접 두는 것이 안전할 것이라고 생각했습니다. 그러나 최근 몇 건의 사례에서 판사들은 미국이 유럽에 있는 미국 기업의 데이터를 요청할 권한이 있다고 판결했습니다. 이것이 바로 미국의 장거리 관할권입니다.
데이터 주권은 실제로 기업의 글로벌 비즈니스에 큰 도전을 가져왔으며, 기업 내에서 데이터 주권 문제를 적절히 처리하는 방법이 특히 중요해졌습니다.
데이터 준수
다국적 기업의 경우, 데이터 주권에 대한 요구 사항이 없다면 데이터 동기화는 상대적으로 간단합니다. 미국 사용자의 데이터는 쉽게 아시아와 영국의 서버로 동기화될 수 있습니다. 아래 그림과 같이, 미국인이 아시아를 여행할 때도 미국에 있을 때 생성된 다양한 데이터에 접근할 수 있습니다.
데이터 주권의 준수 요구 사항에 따라, 많은 데이터는 국가 간에 동기화 및 접근할 수 없습니다. 기업은 사용자를 구분하고 관련 데이터를 격리해야 합니다. 일반적인 방법은 지역을 기준으로 사용자를 분류하는 것입니다.
아마존의 킨들을 예로 들면, 미국 사용자가 구매한 전자책은 중국 계정으로는 다운로드할 수 없습니다. 이는 다른 국가(지역) 간의 데이터가 완전히 격리되어 있기 때문입니다. 시스템의 아키텍처는 다음과 같습니다:
그렇다면 영국에 있는 사용자가 미국 계정으로 아마존 영국에 접근하려면 기술적으로 어떻게 해야 할까요? 아래 아키텍처 다이어그램을 살펴보겠습니다. 대부분의 기존 API 게이트웨이 제품들은 유사한 해결책을 제안합니다.
기존 API 게이트웨이 수준의 해결책
이 해결책의 핵심을 한 문장으로 요약할 수 있습니다:
영국의 API 게이트웨이는 사용자를 식별합니다. API가 사용자가 미국에 등록된 것을 확인하면, 미국 서버로 요청을 라우팅하여 처리합니다.
그러나 이 뒤에는 몇 가지 기술적 도전과 준수 위험도 숨어 있습니다:
-
API 게이트웨이는 세분화된 라우트 스케줄링 기능이 필요하며, HTTP 헤더, 요청 인자, 요청 본문에서 데이터를 가져와 외부 데이터베이스 쿼리와 협력하여 어떤 서버가 사용자를 처리할지 결정해야 합니다.
-
지역 간 네트워크가 연결되어 요청을 전달해야 합니다. 영국 서버실과 미국 서버실이 연결되어야 합니다.
-
영국 서버의 API 게이트웨이는 이미 SSL 인증서를 해제하고 API의 내용을 읽어 로컬 디스크나 다른 서비스에 접근 로그, 감사 로그, 관찰 가능성 시스템 등을 통해 데이터를 기록했을 수 있습니다.
이러한 문제를 해결할 방법이 있을까요?
다층 네트워크: API 데이터 전송의 준수 및 보안을 보장하는 Apache APISIX의 해결책
여기서는 APISIX의 "다층 네트워크" 개념을 소개하여 API 게이트웨이 수준에서 API로 전송되는 데이터의 준수 및 보안을 보장합니다. 다층 네트워크는 이름에서 알 수 있듯이 API 게이트웨이를 두 층, 즉 Layer 1과 Layer 2로 나눕니다. 아래 그림과 같습니다:
- Layer 1 API 게이트웨이: SSL 인증서 해제, 세분화된 라우트 스케줄링을 담당하며, 어떤 Layer 2 API 게이트웨이가 API 요청을 처리해야 하는지 결정합니다.
- Layer 2 API 게이트웨이: 이는 원래의 API 게이트웨이로, 데이터 준수에 대해 걱정할 필요가 없습니다.
글의 처음으로 돌아가서: 미국에 등록된 사용자가 거래 위치에 관계없이 API 데이터 준수를 어떻게 보장할 수 있는가?
먼저, API 요청은 Layer 1 API 게이트웨이로 전송됩니다. 이는 기본적으로 Apache APISIX이지만 multi-layer network
객체를 추가한 것으로, 여기에 사용자 정의 플러그인을 바인딩할 수 있습니다:
- Layer 1 API 게이트웨이는 Layer 2 API 게이트웨이 클러스터의 주소, 가중치 및 기타 정보를 정의합니다. 여기서는 미국 클러스터와 영국 클러스터를 설정합니다:
http://Layer-1-API-Gateway-IP/apisix/admin/multilayer_network/clusters/cluster-US
{
"desc": "description",
"http_port": 80,
"https_port": 443,
"gateways": [
{"host": "IP1", "weight": 1},
{"host": "IP2", "weight": 2}
]
}
http://Layer-1-API-Gateway-IP/apisix/admin/multilayer_network/clusters/cluster-UK
{
"desc": "description",
"http_port": 80,
"https_port": 443,
"gateways": [
{"host": "IP1", "weight": 1},
{"host": "IP2", "weight": 2}
]
}
- 다층 네트워크에서 라우팅 규칙을 정의하고
bar
플러그인과 바인딩합니다:
http://Layer-1-API-Gateway-IP/apisix/admin/multilayer_network/routes/bank-foo
{
"desc": "bank API",
"hosts": ["foo.com"],
"uris": ["/*"],
"plugin_id": "bar"
}
- 사용자 정의 플러그인을 정의합니다:
http://***/apisix/admin/multilayer_network/plugins/bar
{
"desc": "plugin",
"plugins": {
"jwt-auth": {
... ...
},
"foo-upstream-selector": {
"scheme": "HTTPS"
... ...
},
... ...
}
}
여기서는 두 가지 플러그인을 바인딩했습니다. jwt-auth 플러그인은 요청의 신원 인증을 완료하는 데 사용됩니다. foo-upstream-selector는 데이터베이스에서 사용자 ID, 국가/지역, 사용자가 속한 클러스터 등의 정보를 읽어 어떤 Layer 2 API 게이트웨이 클러스터로 라우팅할지 지정합니다.
이 다층 아키텍처는 다른 국가 간의 데이터 준수를 보장합니다.
결론
요약하면, API 게이트웨이의 다층 아키텍처를 통해 가능한 세분화된 라우트 스케줄링은 기업이 데이터 준수 요구 사항을 보장하면서 API 데이터를 빠르고 안전하게 처리할 수 있도록 도와줍니다. 우리는 API7 Cloud와 API7 Enterprise에서 이 기능을 즉시 사용할 수 있도록 제공합니다. 문의 양식을 작성하여 문의해 주세요.