개요
CIO 수준 요약
- Google은 고객 데이터의 저장 및 삭제에 대해 원칙적인 조치를 취합니다. Google Cloud는 높은 수준의 속도, 가용성, 내구성, 일관성을 제공하도록 설계되어 있습니다. 이러한 성능에 맞춰 시스템 설계를 최적화한 만큼 시기적절한 데이터 삭제가 필요합니다.
- 고객 데이터를 삭제하면 Google의 삭제 파이프라인이 시작되어 삭제 요청을 확인하고 활성 및 백업 스토리지 시스템의 애플리케이션 및 스토리지 레이어에서 반복적으로 데이터를 삭제합니다. 일반적인 프로세스는 삭제 및 보관에 관한 Google 문서에 설명되어 있습니다.
- 활성 스토리지 시스템에서 즉시 데이터에 삭제 표시를 하고 애플리케이션 레이어의 일반적인 처리에서 데이터를 격리하는 것을 시작으로 논리적 삭제가 단계별로 진행됩니다. 시간이 지나면 Google 저장소 레이어의 연속 압축 및 표시-비우기 삭제 주기를 통해 삭제된 데이터를 덮어쓰게 됩니다. 암호화 삭제도 사용되어 삭제된 데이터를 복구하지 못하도록 만듭니다. 마지막으로 표준 주기에 따라 Google의 활성 시스템 스냅샷이 포함된 백업 시스템이 사용 중지됩니다.
- 데이터 스토리지 구성 방식과 관련 스토리지 레이어 및 데이터 센터에서 진행 중인 삭제 주기의 시기에 따라 애플리케이션 및 스토리지 계층에서 즉시 삭제가 이루어질 수도 있습니다. 활성 시스템에서는 일반적으로 삭제 요청 후 약 2개월 내에 삭제가 완료됩니다. 끝으로 자연 재해와 큰 재난으로부터 데이터를 보호하기 위해 Google 시스템의 스냅샷을 최대 6개월(180일) 동안 보존하는 Google의 장기 백업 시스템에서 고객 데이터가 삭제됩니다.
소개
이 문서에서는 Google Cloud에 저장된 고객 데이터(Google Cloud 서비스 약관 정의 참조)를 삭제할 때 진행되는 보안 프로세스를 간략히 설명합니다. 수명 주기가 끝났을 때 고객 데이터를 안전하게 삭제하는 것은 컴퓨팅 플랫폼의 데이터 작업에 있어 기본적인 사항입니다.
높은 수준의 가용성, 속도, 위치 불문의 접근성, 데이터 손실 또는 재해로부터의 내구성을 보장하는 클라우드 플랫폼이라면 데이터 작업에 즉각적인 대규모 삭제가 가능한 기술 혁신이 필요합니다. 초창기부터 수조 개의 데이터 요소를 처리하는 제품의 저장소 플랫폼을 설계해 온 Google은 이러한 작업을 위한 고성능 저장소 시스템의 최적화와 관련해 십여 년 이상 업계 경험을 쌓아 왔습니다.
이 백서에서는 먼저 고객 데이터가 Google Cloud에 어떻게 저장되는지 간단히 다룬 후 Google의 삭제 파이프라인과 일반적으로 각 단계의 삭제를 완료하는 데 걸리는 기간에 대해 설명합니다. 끝으로 안전한 하드웨어 해제 및 정리 프로세스를 통해 플랫폼에 저장된 데이터의 재구성을 방지하는 방법을 살펴봅니다.
데이터 저장 및 복제
Google Cloud에서 고객 데이터가 어떻게 삭제되는지 이해하려면 Google 인프라의 데이터 저장소 작동 원리부터 알아야 합니다. Google Cloud는 Cloud Bigtable 및 Cloud Spanner와 같은 저장소 서비스를 제공합니다. 대부분의 Google Cloud 애플리케이션과 서비스는 Cloud의 저장소 서비스나 Google에서 사용하는 다른 내부 저장소 서비스를 통해 간접적으로 Google의 저장소 시스템에 액세스합니다.
Google Cloud는 낮은 지연 시간과 우수한 가용성, 확장성, 내구성을 갖춘 솔루션을 제공하도록 설계되었습니다. 데이터 복제는 이러한 주요 성능 목표를 달성하는 데 필수적인 요소입니다. 구성 및 고객 프로젝트의 요건에 따라 고객 데이터의 중복 사본을 로컬, 지역, 전 세계에 저장할 수 있습니다. Google Cloud에서 수행된 데이터 작업은 동시에 여러 데이터 센터에 복제되어 고객 데이터의 가용성을 높입니다. 하드웨어, 소프트웨어 또는 네트워크 환경에서 성능에 영향을 미치는 변경사항이 발생할 경우 고객 데이터가 고객의 구성 설정에 따라 다른 시스템이나 시설로 자동 이전되어 고객 프로젝트가 중단 없이 계속 규모에 맞춰 수행됩니다.
고객 데이터는 물리적 저장소 수준에서 2가지 유형의 시스템(활성 저장소 시스템 및 백업 저장소 시스템)에 안전하게 저장됩니다. 두 유형의 시스템은 데이터를 처리하는 방식이 다릅니다. 활성 저장소 시스템은 Google 애플리케이션과 저장소 레이어를 실행하는 Google Cloud Platform의 프로덕션 서버입니다. 활성 시스템은 새로운 데이터를 쓰고 여러 복사본에 데이터를 저장하고 검색하는 데 사용되는 디스크와 드라이브의 대규모 배열로 이루어집니다. 활성 저장소 시스템은 고객 데이터에 대한 실시간 읽기/쓰기 작업을 빠르게 규모에 맞춰 수행하도록 최적화되어 있습니다.
Google의 백업 저장소 시스템에는 대규모 정전 사태 또는 재해 발생 시 Google에서 데이터 및 시스템을 복구할 수 있도록 정의된 기간 동안 Google 활성 시스템의 전체 복사본과 증분 복사본이 보관됩니다. 활성 시스템과 달리 백업 시스템은 Google 시스템의 주기적인 스냅샷을 받도록 설계되어 있으며 백업 사본은 제한된 기간이 지난 후 새 백업 사본이 생성되면 사용 중지됩니다.
위에 나온 스토리지 시스템 전체에서 저장되는 고객 데이터는 암호화됩니다. Google 암호화 기술에 관한 세부정보는 Google Cloud 보안 백서에 자세히 설명되어 있습니다. 저장 데이터의 암호화는 활성 및 백업 저장소 미디어의 애플리케이션 및 스토리지 레이어에서 이루어집니다.
안전하고 효과적인 데이터 삭제
데이터 삭제 파이프라인
고객 데이터가 Google Cloud에 저장되면 Google의 데이터 삭제 파이프라인 단계를 완료할 때까지 데이터를 안전하게 저장하도록 시스템이 설계되어 있습니다. 이 섹션에서는 이 프로세스에 대해 자세히 설명합니다.
1단계 - 삭제 요청
고객이 삭제 요청을 시작하면 고객 데이터 삭제가 시작됩니다. 일반적으로 삭제 요청은 특정 리소스, Google Cloud 프로젝트 또는 고객의 Google 계정으로 전달됩니다. 고객의 요청 범위에 따라 삭제 요청이 다르게 처리될 수 있습니다.
- 리소스 삭제: Google Cloud Storage 버킷과 같이 고객 데이터가 포함되어 있는 개별 리소스를 Cloud Console에서 또는 API를 통해 여러 가지 방법으로 삭제할 수 있습니다. 예를 들어 고객이 remove bucket 또는 rm -r 명령어를 사용하여 명령줄을 통해 스토리지 버킷을 삭제하거나 직접 스토리지 버킷을 선택하여 Cloud Storage 브라우저에서 삭제할 수 있습니다.
- 프로젝트 삭제: Google Cloud 프로젝트 소유자는 프로젝트를 종료할 수 있습니다. 프로젝트 삭제 시 project_number와 연결된 모든 리소스에 대한 일괄 삭제 요청과 동일한 결과를 얻게 됩니다.
- 계정 삭제: Google 계정을 삭제하면 계정에서 단독으로 소유한 모든 Google Cloud 프로젝트가 삭제됩니다. 참고로 한 프로젝트의 소유자가 여러 명인 경우 모든 소유자가 프로젝트에서 삭제되거나 모든 소유자가 자신의 Google 계정을 삭제할 때까지 프로젝트가 삭제되지 않습니다. 즉, 소유자가 존재하는 한 Google Cloud 프로젝트는 계속 유지됩니다.
삭제 요청은 기본적으로 고객이 데이터 관리를 위해 사용하도록 설계된 것이지만 고객이 Google과의 관계를 종료하는 등의 상황이 발생하면 Google에서 자동으로 삭제 요청을 할 수도 있습니다.
2단계 - 소프트 삭제
소프트 삭제는 삭제 프로세스의 정상적인 절차로서 실수나 오류로 삭제 표시된 데이터를 복구할 수 있도록 짧은 내부 스테이징 및 복구 기간을 제공합니다. Google의 전체 삭제 타임라인에만 맞는다면 개별 Google Cloud Platform 제품마다 기본 저장소 시스템에서 데이터가 삭제되기 전에 정의된 복구 기간을 도입하고 구성할 수 있습니다.
예를 들어 프로젝트 삭제 시 Google Cloud에서는 먼저 고유한 project_number를 식별한 후 App Engine 및 Cloud Bigtable 등 project_number가 포함된 Google Cloud Platform 제품에 정지 신호를 브로드캐스트합니다. 이 경우 App Engine에서는 즉시 project_number와 일치하는 작업을 정지하고 Cloud Bigtable의 관련 테이블에서는 최대 30일의 내부 복구 기간이 시작됩니다. 복구 기간이 끝나면 Google Cloud에서 해당 제품에 신호를 브로드캐스트해 고유 project_number와 연결된 리소스의 논리적 삭제를 시작합니다. 그런 다음 해당 제품에서 확인 신호(ACK)를 수집(그리고 필요에 따라 신호를 다시 브로드캐스트)해 프로젝트 삭제가 완료될 때까지 대기합니다.
Google 계정이 해지되면 과거 계정 활동에 따라 Google Cloud에서 최대 30일간의 내부 복구 기간을 적용할 수도 있습니다. 유예 기간이 만료되면 삭제된 결제 계정의 user_id가 포함된 신호를 Google 제품에 브로드캐스트하며 이 user_id와 단독으로 연결된 Google Cloud 리소스에 삭제 표시를 추가합니다.
3단계 - 활성 시스템에서의 논리적 삭제
데이터가 삭제 표시되고 복구 기간이 만료되면 Google의 활성 및 백업 저장소 시스템에서 데이터가 연속적으로 삭제됩니다. 활성 시스템에서는 데이터가 두 가지 방법으로 삭제됩니다.
Google Cloud Storage를 제외한 Compute, Storage & Databases, 빅데이터에 속한 모든 클라우드 제품에서 삭제된 데이터의 복사본을 사용 가능한 저장소로 표시하고 시간이 지나면서 덮어쓰게 됩니다. Cloud Bigtable과 같은 활성 저장소 시스템에서 삭제된 데이터는 구조화된 거대한 테이블의 항목으로 저장됩니다. 삭제된 데이터를 덮어쓰기 위해 기존 테이블을 압축할 경우 기존(삭제되지 않은) 데이터의 테이블을 다시 써야 하기 때문에 많은 비용이 들 수 있습니다. 따라서 표시-비우기 가비지 컬렉션 및 주요 압축 이벤트를 일정한 간격으로 예약해 저장공간을 재확보하고 삭제된 데이터를 덮어씁니다.
Google Cloud Storage에서는 암호화 삭제를 통해 고객 데이터를 삭제하기도 합니다. 암호화 삭제란 데이터 복호화에 필요한 암호화 키를 삭제해 데이터를 읽지 못하도록 만드는 업계 표준 기술입니다. 암호화 삭제의 이점 중 하나는 Google이든 고객이든 암호화 키를 제공한 출처에 상관없이 Google Cloud의 활성 및 백업 저장소 시스템에서 삭제된 모든 데이터 블록을 덮어쓰기도 전에 논리적 삭제를 완료할 수 있다는 것입니다.
4단계 - 백업 시스템에서의 만료
Google 활성 시스템에서의 삭제와 마찬가지로 백업 시스템에서도 덮어쓰기 및 암호화 기술을 사용해 삭제된 데이터를 제거합니다. 하지만 백업 시스템의 경우, 백업 시스템에서 시스템 전체를 복원하는 데 시간과 비용이 들 수 있는 재해(예: 전체 데이터 센터에 영향을 미치는 정전) 발생 시 비즈니스 연속성을 보장하기 위해 정해진 기간 동안 데이터가 보관되는 활성 시스템의 대규모 집계 스냅샷에 고객 데이터가 저장됩니다. 합당한 비즈니스 연속성 관행에 따라 활성 시스템의 전체 스냅샷 및 증분 스냅샷을 일, 주, 월 주기로 생성하고 사전 정의된 기간이 지나면 사용 중지하여 최신 스냅샷을 위한 공간을 확보합니다.
백업이 사용 중지되면 사용 가능한 공간으로 표시되고 새로운 일/주/월별 백업이 수행됨에 따라 덮어쓰게 됩니다.
합당한 백업 주기에 따라 백업 시스템을 통해 데이터 삭제 요청 전파 시 사전 정의된 지연이 적용됩니다. 활성 시스템에서 삭제된 고객 데이터는 더 이상 백업 시스템에 복사되지 않습니다. 삭제 전에 수행된 백업은 사전 정의된 백업 주기에 따라 정기적으로 만료됩니다.
마지막으로 고객 데이터를 포함한 백업이 만료되기 전에 삭제된 데이터의 암호화 삭제가 이루어질 수 있습니다. 특정 고객 데이터의 암호화에 사용된 암호화 키 없이는 수명이 남았더라도 Google 백업 시스템에서 고객 데이터를 복구할 수 없습니다.
삭제 타임라인
Google Cloud는 높은 수준의 속도, 가용성, 내구성, 일관성을 제공하도록 설계되어 있습니다. 이러한 성능에 맞춰 시스템 설계를 최적화한 만큼 시기적절한 데이터 삭제가 필요합니다. Google Cloud는 늦어도 6개월(180일) 안에는 고객 데이터의 삭제를 보장합니다. 이러한 약속의 일환으로 다음 단계와 함께 위에서 설명한 Google 삭제 파이프라인 단계가 실행됩니다.
2단계 - 삭제 요청이 이루어지면 보통은 그 즉시 데이터를 삭제 표시하며 최대 24시간 내에 이 단계를 수행하는 것을 목표로 합니다. 데이터가 삭제 표시된 후 서비스 또는 삭제 요청에 따라 최대 30일의 내부 복구 기간이 적용될 수 있습니다.
3단계 - 가비지 컬렉션 작업을 완료하고 활성 시스템에서 논리적 삭제를 수행하는 데 필요한 시간입니다. 데이터 복제 수준과 진행 중인 가비지 컬렉션 주기의 시기에 따라 삭제 요청을 받은 직후 이 프로세스가 발생할 수 있습니다. 삭제 요청 후 활성 시스템에서 데이터를 삭제하기까지 일반적으로 약 2개월이 소요됩니다. 2개월은 두 번의 가비지 컬렉션 주기를 완료하고 논리적 삭제를 완료하는 데 충분한 시간입니다.
4단계 - Google 백업 주기는 삭제 요청 후 6개월 내에 데이터 센터 백업에서 삭제된 데이터가 만료되도록 설계되어 있습니다. 데이터 복제 수준과 진행 중인 Google 백업 주기의 시기에 따라 더 일찍 삭제될 수도 있습니다.
그림 1: Google Cloud 삭제 파이프라인의 단계
미디어의 안전한 정리 보장
Google Cloud의 삭제 파이프라인 외에도 엄격한 미디어 정리 프로그램으로 수명 주기를 마친 물리적 저장소 미디어에 대한 포렌식 또는 실험실 공격을 차단하여 삭제 프로세스의 보안을 강화합니다.
Google은 자산 데이터베이스에서 추적되는 바코드와 자산 태그를 통해 획득, 설치, 사용 중지, 폐기를 거치는 데이터 센터 내 모든 저장소 장비의 위치와 상태를 세심하게 추적합니다. 승인 없이는 장비를 데이터 센터에서 옮기지 못하도록 생체 정보 식별, 금속 탐지, 카메라, 차량 방지 장벽, 레이저 기반의 침입 감지 시스템 등의 다양한 기술을 사용합니다. Google 인프라 보안 설계 개요에서 자세히 알아보세요.
물리적 저장소 미디어는 다양한 이유로 해제될 수 있습니다. 수명 주기 중 언제든 성능 테스트를 통과하지 못한 구성요소는 인벤토리에서 삭제되어 사용 중지됩니다. 처리 속도 및 에너지 효율성을 높이거나 저장용량을 늘리기 위해 Google에서 사용되지 않는 하드웨어를 업그레이드하기도 합니다. 장애, 업그레이드 등 하드웨어 해제 이유에 상관없이 적절한 보호 장치를 사용해 저장소 미디어를 해제합니다. Google 하드 드라이브에서는 전체 디스크 암호화(FDE) 및 드라이브 잠금과 같은 기술을 사용해 해제하는 중에도 미사용 데이터를 보호합니다. 하드 드라이브가 사용 중지되면 승인 받은 직원이 해당 드라이브를 0으로 덮어쓰고 드라이브에 포함된 데이터가 없도록 여러 단계의 확인 프로세스를 거쳐 디스크가 삭제되었는지 확인합니다.
이유를 불문하고 저장소 미디어의 삭제가 불가능한 경우 실제로 폐기될 때까지 안전하게 보관합니다. 사용 가능한 장비에 따라 드라이브를 압착 변형하거나 작은 조각으로 파기합니다. 어떻게 폐기하든 사용 중지된 Google 디스크에서 데이터를 읽을 수 없도록 안전한 시설에서 디스크를 재활용합니다. 각 데이터 센터는 엄격한 폐기 정책을 따르며 NIST SP 800-88 Revision 1 'Guidelines for Media Sanitization' 및 DoD 5220.22-M 'National Industrial Security Program Operating Manual'을 준수하는 것으로 알려진 기술을 사용합니다.