고객 제공 암호화 키

이 콘텐츠는 2025년 2월에 마지막으로 업데이트되었으며 작성 당시의 상황을 나타냅니다. Google이 지속적으로 고객 보호를 개선함에 따라 Google의 보안 정책 및 시스템은 향후 변경될 수 있습니다.

고객 제공 암호화 키(CSEK)는 Cloud StorageCompute Engine의 기능입니다. 자체 암호화 키를 제공할 경우 Google은 이 키를 사용하여 데이터를 암호화 및 복호화하는 Google 생성 키를 보호합니다.

이 문서에서는 CSEK의 작동 방법과Google Cloud에서 이를 보호하는 방법을 설명합니다.

Cloud Storage에서 CSEK의 작동 방법

Cloud Storage에서 CSEK를 사용할 때 래핑 프로세스에 포함되는 키는 다음과 같습니다.

  • 원시 CSEK: API 호출 중에 원시 CSEK를 제공합니다. 원시 CSEK 키는 Google 프런트엔드(GFE)에서 스토리지 시스템의 메모리로 전달됩니다. 이 키는 Cloud Storage에서 고객 데이터에 사용되는 키 암호화 키(KEK)입니다.
  • 래핑된 청크 키: 원시 CSEK는 래핑된 청크 키를 래핑하는 데 사용됩니다.
  • 원시 청크 키: 래핑된 청크 키는 메모리에서 원시 청크 키를 래핑합니다. 원시 청크 키는 스토리지 시스템에 저장된 데이터 청크를 암호화하는 데 사용됩니다. 이러한 키는 Cloud Storage에서 고객 데이터에 대한 데이터 암호화 키(DEK)로 사용됩니다.

다음 다이어그램은 키 래핑 프로세스를 보여줍니다.

Cloud Storage CSEK

다음 표에서는 키에 대해 설명합니다.

저장 위치 목적 다음 시점까지 액세스 가능

원시 CSEK

스토리지 시스템 메모리

래핑된 청크 키를 보호합니다.

고객 요청 작업(예: insertObject 또는 getObject) 완료

래핑된 청크 키

스토리지 기기

저장 상태의 원시 청크 키를 보호합니다.

스토리지 객체 삭제

원시 청크 키

스토리지 기기의 메모리

디스크에서 읽기 또는 쓰기를 수행하는 데이터를 보호합니다.

고객 요청 작업 완료

Compute Engine에서 CSEK 작동 방법

Compute Engine에서 CSEK를 사용할 때 래핑 프로세스에 포함되는 키는 다음과 같습니다.

  • 원시 CSEK: API 호출 중에 원시 CSEK 또는 RSA 래핑 키를 제공합니다. CSEK는 GFE에서 내부 클러스터 관리자의 프런트엔드로 전송됩니다. 클러스터 관리자는 디스크 및 VM 인스턴스와 같은 Compute Engine 리소스 관리 논리를 구현하는 Google 프로덕션 인프라에서 클러스터 관리자 ID로 실행되는 프로세스 모음입니다.
  • Google 소유 비대칭 래핑 키: RSA 래핑 키가 CSEK로 제공된 경우 Google 소유의 비대칭 래핑 키를 사용하여 키가 래핑 해제됩니다.
  • CSEK 파생 키: 원시 CSEK는 영구 디스크별 암호화 난스와 결합되어 CSEK 파생 키를 생성합니다. 이 키는 Compute Engine에서 고객 데이터에 대한 KEK로 사용됩니다. 클러스터 관리자 프런트 엔드에서 CSEK와 CSEK 파생 키는 모두 클러스터 관리자 메모리에만 유지됩니다. CSEK 파생 키는 클러스터 관리자 인스턴스 메타데이터와 인스턴스 관리자 메타데이터에 저장되어 있는 래핑된 디스크 키를 래핑 해제하기 위해 클러스터 관리자 메모리에서 사용되며, 이러한 메타데이터에서 자동 재시작이 활성화됩니다(이 메타데이터는 인스턴스 메타데이터와 다름).

  • 원시 디스크 키: CSEK 파생 키는 디스크를 만들 때 원시 디스크 키를 래핑하고 디스크에 액세스할 때 원시 디스크 키를 래핑 해제하는 데 사용됩니다. 다음 이벤트가 발생합니다.

    • 자동 재시작이 사용 설정되었으면 비정상 종료 발생 시 VM을 다시 시작할 수 있도록 VM의 수명이 끝날 때까지 클러스터 관리자가 래핑된 디스크 키를 영구적으로 저장합니다. 래핑된 디스크 키는 Google 소유의 대칭 래핑 키로 래핑됩니다. 래핑 키의 권한에 따라 Compute Engine만 이 키를 사용할 수 있습니다. 자동 재시작이 해제되었으면 Google Cloud에서 데이터 삭제에 설명된 삭제 프로세스를 사용하여 래핑된 디스크 키가 삭제됩니다.
    • 실시간 이전이 사용되는 경우 이전 VM 인스턴스 메모리에서 새 VM 인스턴스 메모리로 원시 디스크 키가 전달되며 키 복사에 인스턴스 관리자 또는 클러스터 관리자가 관여하지 않습니다.

원시 디스크는 클러스터 관리자(CM), 인스턴스 관리자, VM의 메모리로 전달됩니다. 이러한 키는 Compute Engine에서 고객 데이터에 대한 DEK로 사용됩니다.

다음 다이어그램은 키 래핑의 작동 방법을 보여줍니다.

Compute Engine CSEK

보유자 목적 다음 시점까지 액세스 가능

원시 CSEK

클러스터 관리자 프런트엔드

암호화 난스를 추가하여 CSEK 파생 키를 파생합니다.

고객 요청 작업(예: instances.insert, instances.attachDisk) 완료

공개 키 래핑 CSEK

(RSA 키 래핑 사용 시)

클러스터 관리자 프런트엔드

Google 소유 비대칭 키를 사용하여 최초 래핑 해제하여 CSEK 파생 키를 파생합니다.

고객 요청 작업 완료

Google 소유 비대칭 키

(RSA 키 래핑 사용 시)

키 저장소

RSA 래핑 키를 래핑 해제합니다.

무기한

CSEK 파생 키

클러스터 관리자 프런트엔드

디스크 키를 래핑합니다.

키 래핑 또는 래핑 해제 작업 완료

Google 래핑 디스크 키

(자동 재시작 사용 시)

클러스터 관리자 프런트엔드

실행 중인 인스턴스에 연결된 디스크의 경우 저장된 후 미사용 상태의 디스크 키를 보호합니다.

호스트 비정상 종료와 같이 VM 메모리가 손실된 경우 인스턴스를 다시 시작합니다.

VM 중지 또는 삭제

원시 디스크 키

가상 머신 모니터(VMM) 메모리, 클러스터 관리자 메모리

디스크에 대해 데이터 읽기 또는 쓰기를 수행하고 VM을 라이브 마이그레이션하고 인플레이스 업그레이드를 수행합니다.

VM 중지 또는 삭제

Google 래핑 CSEK 파생 키

클러스터 관리자 데이터베이스

장애가 발생할 경우 작업을 다시 시작합니다.

고객 요청 작업 완료

CSEK 보호 방법

이 섹션에서는 Google Cloud 인프라 및 메모리에서 키를 이동할 때 디스크에서 CSEK를 보호하는 방법을 설명합니다.

원시 CSEK, CSEK 파생 키, 원시 디스크 키는 어떤 경우에도 디스크에 암호화되지 않은 상태로 저장되지 않습니다. 원시 디스크 키는 자동 재시작이 사용될 때 CSEK 파생 키 및 Google 키로 래핑되어 저장됩니다. Google은 키를 서버에 영구적으로 저장하지 않습니다.

각 서비스는 인프라에서 제공하는 액세스 관리 기능을 사용하여 통신 가능한 다른 서비스를 정확히 지정합니다. 서비스는 허용된 서비스 계정 ID의 허용 목록으로 구성되며, 이러한 액세스 제한은 이후 Google Cloud인프라에서 자동으로 적용됩니다. 자세한 내용은 서비스 ID, 무결성, 격리를 참조하세요.

또한 이 인프라는 네트워크에서 RPC 데이터에 대한 암호화 개인 정보 보호 및 무결성을 제공합니다. 서비스는 각 인프라 RPC에 필요한 암호화 보호 수준을 구성할 수 있으며, 이러한 구성은 CSEK에 대해 사용 설정됩니다. 자세한 내용은 워크로드 간 통신 암호화를 참조하세요.

키 자료는 클러스터 관리자 메모리와 VMM 메모리를 포함하여 다양한 시스템 메모리에 상주합니다. 이러한 시스템 메모리에 대한 액세스는 사고 조사와 같은 예외적인 경우에만 허용되며 액세스 제어 목록에 따라 관리됩니다. 이러한 시스템은 메모리 덤프를 사용 중지하거나 메모리 덤프에 있는 키 자료를 자동으로 검색합니다. 이러한 작업의 보호에 대한 자세한 내용은 Google의 프로덕션 서비스 보호 방법을 참조하세요.

다음 단계