참고: 이 내용은 2022. 4. 27에 게시된 컨텐츠(GDPR: What It Is, Why It Matters, and How Snowflake Enables Your Organization to Stay Compliant)에서 번역되었습니다.

일반 데이터 보호 규정(GDPR)은 다른 요구사항 중에서 개인 데이터를 수집, 처리 및 삭제하는 방법을 관리합니다. 다음은 Snowflake에서 지원되는 일반적인 ‘잊힐 권리’ 옵션, 일반적인 참조 아키텍처 패턴, 그리고 Snowflake의 강력하고 사용하기 쉬운 기능을 사용하여 조직에서 GDPR 준수 의무를 지원할 수 있는 아키텍처를 구현하는 모범 사례에 대한 소개입니다.

GDPR이 왜 중요한가?

GDPR은 EU 개인 데이터의 보호 및 처리를 관리하는 유럽 연합(EU) 규정입니다. GDPR은 항상 데이터 주체의 권한을 최우선으로 고려하여 개인 데이터 보호, 데이터 처리 방법 규제 및 데이터를 처리하는 독립체에서 이를 어떻게 준수하고 있는지 모니터링하는 데 중점을 둡니다.

그러나 이러한 규정을 따라야 하는 것은 유럽 국가만이 아닙니다. EU 회원국 시민에게 상품이나 서비스를 제공하고 의도 기반 마케팅 전략, 데이터 공유 또는 기타 데이터 처리를 추적하여 어떠한 용량으로든 EU 회원국 데이터를 사용한다면 GDPR의 요구사항을 충족할 법적 의무가 있습니다. 이를 준수하지 않는 기업에는 최대 2,000만 유로 또는 전년도 전 세계 연간 수익의 4%에 해당하는 벌금이 부과될 수 있습니다.

누가 GDPR 프로젝트를 수행하나요?

GDPR은 EU 회원국 내의 자연인(즉, 단체가 아닌 개인)을 보호합니다. GDPR은 직간접적으로 개인을 식별하는 데 사용될 수 있는 모든 개인 데이터 또는 정보를 대상으로 합니다. 익명 데이터(토큰화 또는 암호화된 데이터)는 익명화가 반전될 수 있기 때문에 여전히 개인 데이터로 간주됩니다.

EU 회원국 이외 지역에 거주하는 EU 회원국 시민들도 GDPR의 범위하에 보호됩니다. 

GDPR 핵심 용어

데이터 주체: EU 회원국 또는 영국에 거주하고 있고 신원을 확인할 수 있는 사람으로 사업체, 조직 또는 서비스 공급자에서 이들의 개인 데이터를 보유하고 있음

처리자 : 제어자의 명령에 따라 데이터를 처리하는 주체(예: Snowflake)

제어자: 개인 데이터를 처리하는 목적 및 수단을 결정하는 주체(예: Snowflake 고객)

처리자와 제어자의 책임 비교

조직은 GDPR을 사후 검토가 아닌 참조 아키텍처 설계 프로세스의 일부로 고려해야 합니다. 처리자로서 Snowflake는 조직의 GDPR 준수를 지원하는 몇 가지 기능을 제공하지만, 궁극적으로 기업의 GDPR 준수 의무를 지원하는 아키텍처를 설계하는 것은 조직의 책임입니다. 

Snowflake 고객은 Snowflake와 독립적으로 GDPR을 준수할 책임이 있습니다. Snowflake는 고객에게 개인 데이터를 검색, 수정, 삭제 또는 제한하기 위해 배치할 수 있는 여러 가지 제어 기능을 제공합니다. 이를 통해 고객은 Snowflake의 데이터와 관련하여 데이터 주체 또는 해당 데이터 보호 당국으로부터 전송된 요청에 응답해야 하는 의무를 포함하여 GDPR 내의 규정 준수 의무를 충족할 수 있습니다. 기술적 기능 외에도 고객과 Snowflake는 또한 Snowflake가 처리자로서 데이터를 사용하는 것에 대한 제한, 보안 의무 및 사고 대응, 서비스의 하위 프로세서 목록 및 해당 목록에 대한 업데이트, 데이터 주제 요청 완료 지원 등 GDPR에 따른 각 당사자의 의무를 개괄적으로 설명하는 데이터 보호 조건에 동의합니다.  

높은 수준의 기능 

Snowflake GDPR 준수를 보다 효과적으로 지원하는 데 일반적으로 사용되는 기능에는 타임 트래블, 복제, 데이터 분류, 교환, 행 액세스 정책, 동적 마스킹 정책, 안전한 뷰, 익명화 기법 및 엔터프라이즈 SIEM 통합이 포함됩니다.

이러한 개별 기능을 구성 요소라고 생각해 보십시오. 조직의 요구사항에 따라 기업은 하나 또는 여러 개의 요구사항을 활용하여 필요한 솔루션을 구축할 수 있습니다.

일반적인 참조 아키텍처 패턴 및 솔루션

잘 고안된 데이터베이스 아키텍처 없이는 GDPR 준수가 매우 어려울 수 있습니다. 특히 ‘삭제할 권리(잊힐 권리)’를 처리할 때 그렇습니다. 어떤 사람의 개인 데이터가 요청되면, 조직에서는 일반적으로 30일(일부 경우 최대 90일)까지 해당인의 개인 데이터를 데이터베이스에서 삭제할 수 있습니다.

조직은 데이터를 잊혀지게 하고, 플래깅, 익명화, 삭제시킬 방법을 결정해야 하며, 데이터 감사를 위한 명확한 지침을 마련해야 합니다.

준비 작업의 기초는 민감한 데이터, 민감하지 않은 데이터, 개인 데이터 등 모든 데이터에 태그를 지정하는 것부터 시작해야 합니다. Snowflake의 객체 태그 지정 및 데이터 분류 기능을 통해 중요한 데이터를 쉽게 확인하고 그에 따라 태그를 지정할 수 있습니다. 여러 데이터 레이크에 걸쳐 방대한 양의 데이터를 보유한 대규모 조직에서는 상황이 발생했을 때 개인 데이터를 쉽게 식별할 수 있는 효과적인 카탈로그 구축 전략이 필요합니다.

모든 데이터 아키텍처는 개인 데이터를 쉽게 식별할 수 있어야 합니다. 이것은 여러 가지 방법으로 수행할 수 있습니다. 가장 일반적인 접근 방식은 개인 데이터를 별도의 계정, 데이터베이스, 스키마 또는 테이블 수준으로 구성하는 것입니다. 

예를 들어, Snowflake 고객의 테이블에 300개의 열이 있고 그 중 50개의 열이 개인 데이터로 식별된 데이터를 포함하는 경우, 고객은 두 개의 다른 테이블(Customer_personal_data and Customer_Non_personal_data)을 생성하고 비지능형 키를 사용하여 이들을 연결할 수 있습니다. 이런 방식으로 Customer_Non_personal_데이터를 훼손하지 않고 Customer_personal_data 테이블을 삭제하고 모든 개인 데이터를 삭제할 수 있습니다. 이러한 매개 변수를 미리 설정하면 데이터 테이블 전체를 업데이트하지 않아도 되므로 비용이 절약됩니다.  

이에 대한 전체 데이터 모델링은 이 블로그 게시물의 범위를 벗어납니다. 이 개요는 가능한 기술에 대한 개념을 제공하기 위한 것이며 대부분 그린필드 구현에 적용됩니다.

데이터 삭제

데이터 삭제는 ETL 프로세스 중에 온라인 테이블에서 데이터 웨어하우스의 레코드 삭제를 요구하는 법적인 해석입니다. 요구 사항에 따라 타임 트래블/데이터 보존 시간 설정을 테이블 수준에서 설정하고 GDPR에 따른 의무를 이행하는 기간 내에 데이터를 삭제하기만 하면 됩니다. 

Snowflake에는 세 가지 유형의 테이블이 있습니다. 

  • 영구적인 테이블: 데이터 보존 시간을 32일로 설정(그리고 페일 세이프 7일)
  • 일시적인 테이블: 데이터 보존 시간을 1일로 설정(페일 세이프 없음)
  • 임시적인 테이블:데이터 보존 시간을 1일로 설정(페일 세이프 없음)

삭제해야 할 데이터를 표시하는 일부 감사 테이블의 도움을 받아 한 달에 한 번 일괄 삭제를 수행하는 것을 고려하십시오.

감사를 위해 데이터 보존

감사 목적을 위해 별도의 ‘잊혀진’ 데이터 버전을 유지하면서 ETL 프로세스 중에 데이터 웨어하우스에서 레코드를 삭제해야 하는 데이터 삭제 방법이 있습니다.

  • 일시적인 테이블을 만들고(예: cust_phi_clone), 개인 데이터가 들어 있는 프로덕션 테이블 복제(예: customer_phi)합니다. 타임 트래블을 0으로 설정할 수 있습니다.
  • 보관해야 하는 데이터의 복사본을 만듭니다(Snowflake 내부 또는 외부).
  • 두 테이블 모두에서 조사 중인 데이터를 모두 제거합니다. 이 데이터는 남지 않습니다. 이 방법을 사용하면 타임 트래블에서도 데이터가 제거됩니다. 이 데이터를 복구할 수 있는 유일한 곳은 감사 목적을 위한 백업 스냅샷입니다.
  • 두 테이블을 모두 교환합니다. 교환하면 프로덕션 테이블에서 타임 트래블이 기본적으로 제거됩니다.
  • cust_phi_clone에 대한 액세스를 관리자로만 제한합니다.

안전한 뷰 및 행 액세스 정책을 사용하여 논리적 삭제 패턴 또는 환자 수신 거부를 처리할 수 있습니다. 환자가 자신의 정보를 공유하는 것을 원치 않거나, 처방자가 정보를 공개하기를 원하지 않거나, 18세 미만 환자에 대한 정보를 공유할 수 없는 경우, 이것이 처리할 수 있는 한 가지 방법입니다.

규정의 일부일 수 있는 개인 데이터 익명화 요구 사항을 충족할 수 있도록 고객은 사용자 로그인 역할에 따라 특정 행에 대한 액세스를 제한하는 행 액세스 정책을 구현할 수 있습니다. 예를 들어, 마케팅 부서의 누군가가 판매 데이터를 볼 수 없을 것입니다.

또한 동적 데이터 마스킹 정책을 선택할 수도 있습니다. 사용자가 로그인하는 역할에 따라 데이터를 마스킹하거나 수정할 수 있습니다. 예를 들어, 어떤 인사 담당자는 급여 세부 정보만 볼 수 있습니다.

감사 제어 프레임워크 설정: 

또한 데이터 주제 요청(누가 요청했는지, 언제 어떤 데이터가 삭제되었는지, 롤백되었는지 등)을 추적하는 감사 제어 프레임워크를 유지할 수 있습니다. 이 기능은 감사 요청에 도움이 될 수 있으며 실수로 롤백된 경우 개인 데이터를 삭제하는 데도 도움이 됩니다. 또한 Snowflake의 액세스 기록이라는 새로운 기능은 누가 언제 어떤 데이터에 액세스했는지를 쉽게 확인할 수 있게 해줍니다(높은 수준의 데이터 계통을 사용). 이 기능을 통해 조직은 감사 요청에 신속하고 안전하게 응답할 수 있습니다.

데이터베이스의 백업

어떤 고객들은 감사 목적으로 데이터 백업을 유지하기를 원했습니다. 예를 들어, 주 고객 데이터의 타임 트래블을 32일로 유지하십시오.

예약된 작업을 사용하여 다음과 같이 월별 백업을 생성합니다.

CREATE OR REPLACE TRANSIENT DATABASE prd_ent_presentation_db_bu_2020_01 
CLONE prd_ent_presentation_db AT (TIMESTAMP => 
to_timestamp_tz('01/01/2020 00:00:00', 'mm/dd/yyyy hh24:mi:ss')) 
DATA_RETENTION_TIME_IN_DAYS = 0;
  • 백업 데이터베이스에 대한 액세스를 관리자/대표 집합으로만 제한합니다.
  • 조직의 정책/GDPR 제한에 따라 이전 데이터베이스를 정리하는 자동 프로세스를 개발합니다.
DROP DATABASE prd_ent_presentation_db_bu_2020_01; --This data is 
instantly and irrevocably removed from Snowflake.

참고: 이러한 예 중 일부는 사용자의 데이터를 삭제하지 않습니다(예: 물리적 삭제). 그 대신, ‘잊지 않는’ 정보 등의 감사를 허용하기 위해 논리적 삭제가 사용되었습니다. 각 회사의 법률 부서는 각 회사의 해당 법률 및 규정 요건을 고려할 때 이것이 충분한지 여부를 결정해야 합니다.

안전한 데이터 공유로 GDPR 위험 완화

안전한 데이터 공유는 액세스를 허용하기 위해 비즈니스 생태계의 계정 간에 데이터를 복사하거나 전송할 필요가 없도록 보장합니다. 대신, 모든 사람이 고도로 통제된 실시간 데이터 세트에 액세스할 수 있습니다. 

보안 데이터 공유를 통해 국가 또는 지역 내외에서 데이터 세트에 액세스할 수 있습니다. 또한 ‘이 주제 영역 데이터는 해당 국가/지역을 벗어날 수 없습니다’ 등의 시나리오를 처리하는 아키텍처도 있습니다.

지역 데이터 공유 지역 간 데이터 공유

 

위에 설명된 패턴은 고객이 GDPR을 준수할 수 있도록 Snowflake가 제공하는 옵션입니다. 이것은 법률상의 조언이 아닙니다. 이 문서의 어떤 내용도 GDPR을 포함하여 특정 방법이 규정을 준수함을 증명하지 않으며 다른 방법으로 보증하지 않습니다. 각 고객은 해당되는 개인 정보 보호 요구 사항을 검토하고 내부 개인 정보 보호 및 법률 부서의 검토를 바탕으로 수용 가능한 데이터 솔루션을 결정해야 합니다. Snowflake는 계약 전, 계약 중 또는 계약 후에 상관없이 특정 솔루션이 관련 법적 또는 규제 요건을 충족한다는 보장을 하지 않습니다.