고객 관리 암호화 키(CMEK)

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

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

이 페이지에서는 Datastore 모드의 Firestore용 CMEK를 설명합니다. CMEK와 관련된 일반적인 내용(사용 설정하는 경우와 그 이유 등)을 자세히 알아보려면 Cloud KMS 문서를 참조하세요. Datastore 모드의 Firestore에서 CMEK 관련 작업을 수행하는 방법은 CMEK 사용을 참조하세요.

기능

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

가격 책정

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

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

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

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

CMEK로 보호되는 대상

Firestore CMEK로 보호되는 데이터베이스를 만들 때 Cloud KMS 키는 저장 데이터를 보호하는 데 사용됩니다. 여기에는 디스크 또는 플래시에 저장되는 데이터가 포함됩니다. 일부 예외가 적용됩니다. 다음 데이터 유형은 CMEK 키가 아닌 Google 기본 암호화로 암호화됩니다.

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

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

암호화 및 복호화 작업이 모든 데이터 요청에 대해 실행되지는 않습니다. 대신, Firestore 시스템은 5분마다 Cloud Key Management Service를 폴링하여 키를 아직 사용할 수 있는지 확인한 다음 키를 사용할 수 있으면 암호화 및 복호화 작업을 수행합니다. 시스템에서 키를 사용할 수 없음을 감지하면 10분 이내에 읽기, 쓰기, 쿼리를 포함해 Firestore 데이터베이스에 대한 모든 후속 호출에 The customer-managed encryption key required by the requested resource is not accessible 메시지와 함께 FAILED_PRECONDITION 오류가 반환됩니다. 데이터베이스에 TTL(수명) 정책이 있고 키를 사용할 수 없을 때 만료 시간이 초과되면 키가 복구될 때까지 TTL을 통한 데이터 삭제가 지연됩니다. 데이터베이스에 진행 중인 장기 실행 작업이 있으면 다음과 같은 영향을 받습니다.

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

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

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

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

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

외부 키 고려사항

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

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

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

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

제한사항

  • CMEK로 보호되는 데이터베이스의 키는 변경할 수 없습니다. 키 순환, 사용 설정, 사용 중지는 지원됩니다.
  • CMEK로 보호되는 데이터베이스에는 백업 일정 및 복원 작업이 지원되지 않습니다. 재해 복구를 위해 PITR(point-in-time recovery)을 사용할 수 있습니다.
  • CMEK로 보호되는 데이터베이스는 색인 데이터가 아닌 항목 및 문서 데이터에 대해서만 Key Visualizer를 지원합니다.
  • 기존 데이터베이스에는 CMEK를 사용 설정할 수 없습니다. 새 데이터베이스에서만 CMEK를 사용 설정할 수 있으며 데이터베이스를 만들 때 CMEK를 사용 설정해야 합니다. CMEK가 아닌 기존 데이터베이스의 데이터를 CMEK로 보호되는 데이터베이스로 마이그레이션하려면 데이터를 내보내고 CMEK로 보호되는 새 데이터베이스로 데이터를 가져옵니다.
  • CMEK로 보호되는 데이터베이스에는 키 추적이 지원되지 않습니다.
  • 프리뷰 중에 Firestore는 CMEK로 보호되는 데이터베이스 중 일부만 지원합니다.

다음 단계