고객 관리 암호화 키(CMEK)

기본적으로 Datastore 모드의 Firestore에서 모든 저장 데이터는 Google의 기본 암호화를 사용하여 암호화됩니다. Datastore 모드는 사용자의 추가 작업 없이 이러한 암호화를 처리하고 관리합니다.

데이터를 보호하는 키와 관련된 특정 규정 준수 또는 규제 요구사항이 있으면 Datastore 모드에 고객 관리 암호화 키(CMEK)를 사용할 수 있습니다. 이렇게 하면 Google이 데이터를 보호하는 암호화 키를 관리하는 것이 아니라 Cloud Key Management Service(Cloud KMS)에서 사용자가 제어하고 관리하는 키를 사용해 Datastore 모드 데이터베이스가 보호됩니다.

이 페이지에서는 Datastore 모드의 CMEK를 설명합니다. CMEK를 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 다음 Cloud KMS 문서를 참조하세요.

Datastore 모드로 CMEK 관련 작업을 수행하는 방법은 CMEK 사용을 참조하세요.

기능

  • 데이터 컨트롤: CMEK를 사용하면 KMS 키를 관리할 수 있습니다. Datastore 모드 데이터베이스에서 저장 데이터를 암호화하는 데 사용되는 키를 순환, 사용 중지, 폐기할 수 있습니다.
  • 성능: CMEK는 Firestore SLA에 영향을 미치지 않습니다.
  • 감사 가능성: Cloud KMS에 감사 로깅을 사용 설정하면 키에 대한 모든 작업이 Cloud Logging에서 로깅되고 표시됩니다.
  • 조직 정책 제약조건: CMEK 조직 정책 제약조건을 사용하면 조직이 보유한 Datastore 모드 데이터베이스에 대한 암호화 규정 준수 요구사항을 지정할 수 있습니다.

가격 책정

Cloud KMS는 키 및 해당 키를 사용하여 수행된 암호화 작업에 대한 비용을 청구합니다. 자세한 내용은 Cloud KMS 가격 책정을 참조하세요.

Datastore 모드가 암호화 또는 복호화 작업을 수행할 때 Cloud KMS 키를 요청하면 작업 비용이 청구됩니다. 고객 관리 키의 암호화/복호화 작업은 5분마다 실행되며 데이터베이스 요청과 동기화되지 않습니다. Datastore 모드가 생성할 것으로 예상되는 암호화 작업의 수를 고려하면 비용이 일반적으로 낮습니다. Cloud 감사 로그의 비용이 추가로 지출되지만, 예상되는 암호화 작업 수를 고려하면 일반적으로 낮을 것으로 예측됩니다.

CMEK로 보호되는 데이터베이스를 사용하는 데 따른 추가적인 Datastore 모드 비용은 없으며 Datastore 모드 가격 책정이 계속 적용됩니다.

데이터베이스의 키를 취소하면 키를 사용할 수 있었던 마지막 날짜의 크기를 기준으로 스토리지 비용이 청구됩니다. 데이터베이스가 삭제되거나 키를 다시 사용할 수 있을 때까지 해당 데이터베이스 크기의 스토리지 비용이 계속 발생합니다.

CMEK로 보호되는 대상

Datastore 모드 CMEK 보호 데이터베이스를 만들면 Cloud KMS 키가 저장 데이터를 보호하는 데 사용됩니다. 여기에는 색인 및 백업을 비롯하여 디스크나 플래시 드라이브에 저장하는 데이터가 포함됩니다. 일부 예외가 적용됩니다. 다음 데이터 유형은 CMEK 키가 아닌 Google 기본 암호화로 암호화됩니다.

  • 전송 중 데이터 또는 메모리에 있는 데이터
  • 데이터베이스 메타데이터

사용할 수 없는 키 상태의 처리 방법

모든 데이터 요청에 암호화 및 복호화 작업이 실행되는 것은 아닙니다. 대신, Firestore 시스템은 5분마다 Cloud KMS를 폴링하여 키를 아직 사용할 수 있는지 확인한 다음 키를 사용할 수 있으면 암호화 및 복호화 작업을 수행합니다.

시스템에서 키를 사용할 수 없음을 감지하면 10분 이내에 읽기, 쓰기, 쿼리를 포함해 Firestore 데이터베이스에 대한 모든 후속 호출에 The customer-managed encryption key required by the requested resource is not accessible 메시지와 함께 FAILED_PRECONDITION 오류가 반환됩니다.

데이터베이스에 TTL(수명) 정책이 있고 키를 사용할 수 없을 때 만료 시간이 초과되면 키가 복구될 때까지 TTL을 통한 데이터 삭제가 지연됩니다. 데이터베이스에 진행 중인 장기 실행 작업이 있으면 다음과 같은 영향을 받습니다.

  • 데이터 import 또는 내보내기 작업이 진행되지 않고 Failed로 표시됩니다. 키가 복구되어도 실패한 작업은 재시도되지 않습니다.
  • 색인 빌드 작업 및 새 TTL 정책을 사용 설정하는 작업이 진행되지 않습니다. 키가 복구되면 중지된 작업이 재시도됩니다.

Firestore가 키에 액세스할 수 없도록 의도적으로 조치된 경우 키를 사용할 수 없는 것으로 간주됩니다. 여기에는 다음이 포함됩니다.

키가 복구되면 폴링 작업이 키를 다시 사용할 수 있음을 감지합니다. 액세스는 일반적으로 몇 분 이내에 다시 사용 설정되지만 드물게 몇 시간까지 걸릴 수 있습니다. 키 사용 중지 또는 폐기와 같은 Cloud KMS 키에 대한 일부 작업은 전파되는 데 최대 3시간이 걸릴 수 있습니다. Firestore는 변경사항이 Cloud KMS에 적용될 때까지 변경사항을 감지하지 않습니다.

키 복구에는 상황에 따라 다음 단계가 포함됩니다.

  • 사용 중지된 키 버전을 다시 사용 설정합니다.
  • 폐기된 키 버전을 복원합니다. 키 버전은 영구적으로 폐기되기 전에 우선 폐기가 예약됩니다. 키 버전의 폐기가 예약된 기간 동안에만 키를 복원할 수 있습니다. 이미 영구적으로 삭제된 키는 복원할 수 없습니다.
  • 키에 액세스할 수 있는 Firestore 서비스 에이전트 권한을 다시 부여합니다.

키 순환 고려사항

CMEK 키를 순환하면 Datastore 모드에서 CMEK 키의 최신 기본 버전을 사용하여 데이터베이스를 다시 암호화합니다. 재암호화 프로세스 중에 이전 키 버전과 새 키 버전을 모두 사용할 수 있도록 합니다. 다시 암호화가 완료되면 이전 버전의 CMEK 키를 사용 중지하거나 삭제해도 데이터베이스에 대한 액세스가 사용 중지되지 않습니다. 새 기본 키 버전으로 암호화되어 있기 때문입니다.

또한 데이터베이스 보호를 위해 사용되는 키 버전도 확인할 수 있습니다. 자세한 내용은 사용 중인 키 보기를 참조하세요.

외부 키 고려사항

Cloud EKM 키를 사용하는 경우 Google은 외부 키 관리 파트너 시스템에서 외부 관리 키의 가용성을 제어 할 수 없습니다.

외부 관리 키를 사용할 수 없는 경우 Datastore 모드는 계속해서 최대 1시간 동안 캐시된 버전의 키를 사용하여 전체 데이터베이스 작업을 지원합니다.

1시간 후에도 Datastore 모드가 Cloud KMS에 연결할 수 없으면 Datastore 모드가 보호 조치로 데이터베이스를 오프라인으로 전환하기 시작합니다. 데이터베이스를 호출하면 추가 세부정보가 포함된 FAILED_PRECONDITION 오류가 발생하여 실패합니다.

외부 키를 사용할 때 추가로 고려할 사항은 Cloud 외부 키 관리자 문서를 참조하세요.

백업 및 복원

백업은 백업을 생성한 데이터베이스와 동일한 암호화 메커니즘을 사용합니다. CMEK로 보호되는 Datastore 모드 데이터베이스에서 백업을 만들면 백업을 만들 때 사용된 기본 키 버전으로 백업을 암호화합니다.

Datastore 모드는 백업 일정을 사용 설정한 시점으로부터 24시간이 지난 후에 CMEK 데이터베이스의 첫 번째 백업을 만듭니다.

Datastore 모드 백업에 대한 자세한 내용은 데이터 백업 및 복원을 참조하세요.

백업에서 복원된 데이터베이스는 기본적으로 백업과 동일한 암호화 메커니즘을 사용합니다. 데이터베이스를 복원할 때 다음 방법 중 하나로 다른 암호화 유형을 지정할 수 있습니다.

  • 새로 지정된 키로 CMEK 데이터베이스에 복원합니다.
  • Google의 기본 암호화를 사용하는 CMEK가 아닌 데이터베이스로 복원합니다.
  • 백업과 동일한 암호화를 사용하는 데이터베이스로 복원합니다.

백업에서 Datastore 모드 데이터베이스를 복원하는 방법에 대한 자세한 내용은 데이터베이스 백업에서 데이터 복원을 참조하세요. 백업에서 CMEK 보호 Datastore 모드 데이터베이스를 복원하는 방법에 대한 자세한 내용은 CMEK 보호 데이터베이스 복원을 참조하세요.

키 추적

키 추적을 사용하여 키가 보호하는 리소스(예: Datastore 모드 데이터베이스)를 볼 수 있습니다. 키 추적에 대한 자세한 내용은 키 사용량 보기를 참조하세요.

CMEK 및 키 가용성

키를 사용할 수 없거나 키가 사용 중지된 경우 CMEK 지원 데이터베이스에서 발생할 수 있는 다음 동작에 유의하세요.

  • PITR 설정은 CMEK로 암호화되지 않은 데이터베이스 메타데이터이므로 키를 사용할 수 없는 경우에도 CMEK 지원 데이터베이스에서 Datastore 모드 PITR 설정을 변경할 수 있습니다.
  • 사용할 수 없는 키가 있는 CMEK 데이터베이스는 삭제할 수 있습니다.
  • CMEK 지원 데이터베이스를 만들 때 사용 중지된 키는 Google Cloud 콘솔의 사용 가능한 키 목록에 표시되지 않습니다. 사용 중지된 키를 수동으로 입력하면 데이터베이스 생성 프로세스가 FAILED_PRECONDITION 오류 400과 함께 실패합니다.

제한사항

  • CMEK로 보호되는 데이터베이스의 키는 변경할 수 없습니다. 키를 순환, 사용 설정, 사용 중지할 수 있습니다.
  • CMEK로 보호되는 데이터베이스는 색인 데이터가 아닌 항목 및 문서 데이터에 대해서만 Key Visualizer를 지원합니다.
  • 기존 데이터베이스에서는 CMEK를 사용 설정할 수 없습니다. CMEK는 새 데이터베이스에서만 사용 설정할 수 있으며 데이터베이스를 만들 때 사용 설정해야 합니다. 기존의 CMEK가 아닌 데이터베이스에 있는 데이터를 CMEK로 보호되는 데이터베이스로 마이그레이션하려면 데이터를 내보낸 후 새 CMEK로 보호되는 데이터베이스로 데이터를 가져오세요. CMEK가 아닌 데이터베이스에서 CMEK 데이터베이스로 데이터를 복원할 수도 있습니다.
  • Firestore는 CMEK로 보호되는 데이터베이스 중 일부만 지원합니다.
  • Cloud Functions(1세대) 통합에서는 CMEK 보호가 지원되지 않습니다. CMEK 보호를 사용하려면 Cloud Run Functions Firestore 트리거(2세대)를 사용하세요.

다음 단계