이 문서에서는 Google의 기본 암호화에 의존하는 대신 Cloud KMS (Cloud Key Management Service)에서 Memorystore for Valkey 인스턴스에 고객 관리 암호화 키 (CMEK)를 사용하는 방법을 설명합니다. 또한 영구 스토리지에서 암호화되는 데이터와 키 수명 주기 이벤트 중에 인스턴스가 작동하는 방식을 간략하게 설명합니다.
CMEK를 사용하면 저장된 데이터를 보호하는 암호화 키를 제어할 수 있습니다. Cloud KMS에서 자체 키를 관리하면 키 액세스, 순환, 사용을 더 효과적으로 제어할 수 있으므로 엄격한 규정 준수 및 규제 요구사항을 충족하는 데 도움이 됩니다.
CMEK를 구현하면 백업 및 지속성 파일과 같은 영구 데이터에 대한 보안 및 제어 레이어가 추가됩니다. CMEK는 새 인스턴스에서만 사용 설정할 수 있습니다. 기존 인스턴스에는 CMEK를 적용할 수 없습니다.
CMEK를 사용해야 하는 사용자
CMEK는 민감한 정보 또는 규제 대상 데이터가 있고 자체 암호화 키를 제어해야 하는 조직을 위한 것입니다. 이 데이터를 암호화하기 위해 CMEK를 사용할지 여부에 대한 자세한 내용은 CMEK 사용 여부 결정을 참조하세요.
고객 관리 암호화
CMEK를 사용하면 암호화 키를 사용하여 Memorystore for Valkey 인스턴스에 저장된 데이터를 보호할 수 있습니다. 이 데이터를 암호화하기 위해 Memorystore for Valkey는 Google 관리 데이터 암호화 키 (DEK)와 고객 관리 키 암호화 키 (KEK)를 사용합니다.
다음과 같은 암호화 수준을 사용할 수 있습니다.
- DEK 암호화: DEK는 Memorystore for Valkey의 데이터를 암호화합니다.
- KEK 암호화: KEK는 DEK를 암호화합니다.
Memorystore for Valkey는 KEK를 사용하여 DEK를 암호화하고 DEK를 사용하여 저장된 데이터를 암호화합니다. CMEK를 사용하는 경우 인스턴스의 DEK를 암호화하는 KEK를 관리할 수 있습니다.
다음 다이어그램은 인스턴스가 CMEK를 사용하여 데이터를 암호화하는 방법을 보여줍니다. Google의 스토리지 인프라에 업로드된 데이터는 청크로 분할되고 각 청크는 자체 DEK로 암호화됩니다. Cloud KMS는 DEK를 암호화하는 KEK를 제공하고 Google의 스토리지 인프라는 암호화된 데이터 청크와 암호화된 DEK를 모두 시스템 전체에 배포합니다.
다음 다이어그램은 Memorystore for Valkey가 CMEK로 암호화된 데이터를 복호화하는 방법을 보여줍니다. 이 암호화된 데이터에 액세스하기 위해 Memorystore for Valkey는 KEK를 관리하는 Cloud KMS에 DEK를 복호화하도록 요청합니다. 그러면 Cloud KMS는 복호화된 DEK를 반환하고 인스턴스는 이를 사용하여 저장된 데이터를 복호화합니다.

CMEK를 사용하여 암호화되는 데이터
CMEK는 영구 스토리지에 저장된 다음 유형의 고객 데이터를 암호화합니다.
- 백업: 백업을 사용하면 데이터를 특정 시점으로 복구하고 데이터를 내보내 분석할 수 있습니다. 백업은 재해 복구, 데이터 마이그레이션, 데이터 공유, 규정 준수 시나리오에도 유용합니다.
- 지속성:
Memorystore for Valkey는 두 가지 유형의 지속성을 지원합니다.
- RDB 지속성: 내구성 있는 스토리지에 데이터 스냅샷을 저장합니다.
- AOF 지속성: 모든 쓰기 명령어를 추가 전용 파일 (AOF)이라는 로그 파일에 기록하여 데이터를 내구성 있게 저장합니다. 시스템 장애나 재시작이 발생하면 서버가 AOF 파일 명령어를 순차적으로 재생하여 데이터를 복원합니다.
CMEK 구성요소
다음 섹션에서는 CMEK 아키텍처를 구성하는 서비스 계정, 암호화 키, 키 버전, 조직 정책의 요구사항과 동작을 설명합니다.
서비스 계정
CMEK가 사용 설정된 인스턴스를 만들려면 다음 형식을 사용하는 Memorystore for Valkey 서비스 계정에 roles/cloudkms.cryptoKeyEncrypterDecrypter 역할을 부여해야 합니다.
service-PROJECT_NUMBER@gcp-sa-memorystore.iam.gserviceaccount.com
이 권한을 부여하면 서비스 계정이 Cloud KMS에서 키 액세스를 요청할 수 있습니다.
열쇠
Cloud KMS에서는 키링을 만든 다음 대칭 암호화 알고리즘을 사용하는 암호화 키를 만들어야 합니다. Memorystore for Valkey 인스턴스를 만들 때 이 키를 선택하여 인스턴스를 암호화합니다. 키와 인스턴스 모두에 하나의 프로젝트를 만들거나 각각에 다른 프로젝트를 만들 수 있습니다.
CMEK는 모든 Memorystore for Valkey 인스턴스 위치에서 사용할 수 있습니다. 인스턴스를 만들려는 동일한 리전에 키링과 키를 만들어야 합니다. 다중 리전 인스턴스의 경우 키링과 키를 인스턴스와 동일한 위치로 설정해야 합니다. 리전 또는 위치가 일치하지 않으면 인스턴스 생성 요청이 실패합니다.
키의 리소스 ID에 CMEK는 다음 형식을 사용합니다.
projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
기존 키의 리소스 ID를 찾는 방법에 대한 자세한 내용은 Cloud KMS 리소스 ID 가져오기를 참조하세요.
외부 키
CMEK 전략의 일부로 외부 키를 사용할 수 있습니다. 이렇게 하려면 Cloud External Key Manager (Cloud EKM)를 사용하여 관리하는 외부 키를 통해 Google Cloud 내 데이터를 암호화합니다.
Cloud EKM 키를 사용하는 경우 Google은 외부 관리 키의 가용성을 제어할 수 없습니다. 인스턴스를 만들 때 키를 사용할 수 없는 경우 Memorystore for Valkey는 인스턴스를 만들지 않습니다.
키 버전
Cloud KMS는 데이터를 암호화하고 복호화하는 데 사용하는 암호화 키 자료를 키 버전에 저장합니다. 단일 키에 여러 키 버전이 포함될 수 있습니다. 키를 순환할 때마다 키 버전이 생성됩니다.
다음 섹션에서는 키 버전 사용 중지, 폐기, 순환, 사용 설정, 복원과 같은 키 수명 주기 이벤트 중에 인스턴스와 보호된 데이터가 작동하는 방식을 설명합니다. 또한 Cloud KMS 키에 대한 액세스 권한을 취소하거나 키를 교체할 때의 영향과 데이터를 수동으로 다시 암호화하는 방법에 대한 안내를 제공합니다.
CMEK 키 버전 사용 중지 또는 폐기
데이터 유출을 해결할 때와 같이 CMEK로 암호화된 데이터에 영구적으로 액세스할 수 없도록 하려는 경우가 있을 수 있습니다. 이러한 높은 보증 데이터 폐기 (암호화 삭제 라고도 함)를 달성하려면 키 버전을 폐기합니다. 키 버전을 폐기하는 방법에 대한 자세한 내용은 키 버전 폐기 및 복원을 참조하세요.
CMEK의 기본 키 버전을 사용 중지하거나 폐기하면 백업 및 지속성에 다음 조건이 적용됩니다.
백업
CMEK의 기본 키 버전을 폐기하면 인스턴스의 백업에 다음 제한사항이 적용됩니다.
- 주문형 또는 자동 백업을 만들 수 없습니다. 하지만 이전 키 버전을 사용 설정하면 이 키 버전을 사용하여 만든 백업에 액세스할 수 있습니다.
- 기본 키 버전을 사용 설정하거나 복원할 때까지 자동 백업을 업데이트하거나 다시 사용 설정할 수 없습니다. 자세한 내용은 기본 CMEK 키 버전 사용 설정 또는 복원을 참조하세요.
지속성
CMEK의 기본 키 버전을 폐기하면 인스턴스의 지속성에 다음 제한사항이 적용됩니다.
- 지속성을 사용하도록 인스턴스를 구성하면 키 버전을 사용할 수 없게 될 때 Memorystore for Valkey가 지속성을 비활성화합니다. 지속성 사용에 대한 요금이 더 이상 청구되지 않습니다.
- Memorystore for Valkey는 CMEK를 사용하여 새 데이터를 영구 스토리지로 플러시하지 않습니다.
- Memorystore for Valkey는 영구 스토리지에 있는 기존 데이터를 읽을 수 없습니다.
- 기본 키 버전을 사용 설정하거나 복원할 때까지 지속성을 업데이트하거나 다시 사용 설정할 수 없습니다.
CMEK의 기본 키 버전을 사용 설정했지만 이전 키 버전을 사용 중지하거나 폐기하면 백업 및 지속성에 다음 조건이 적용됩니다.
- 백업을 만들 수 있습니다. 하지만 백업이 사용 중지되거나 폐기된 이전 키 버전으로 암호화된 경우 백업에 액세스할 수 없습니다.
- 지속성을 사용 설정하면 사용 설정된 상태로 유지됩니다. 지속성에 사용되는 이전 키 버전이 사용 중지되거나 폐기되면 Memorystore for Valkey는 유지보수에 사용되는 업데이트와 유사한 업데이트를 실행하고 기본 키 버전으로 데이터를 다시 암호화합니다.
Cloud KMS 키에 대한 액세스 권한 취소
키를 사용 중지하거나 키의 IAM 권한을 삭제하여 활성 Cloud KMS 키에 대한 액세스 권한을 취소하면 Memorystore for Valkey는 기본 캐시의 가용성을 우선시합니다. 일반적인 인메모리 캐싱 작업은 계속 트래픽을 처리합니다.
하지만 백업 및 지속성은 비활성화됩니다. Memorystore for Valkey는 즉시 디스크에 새 데이터 쓰기를 중지하고 고객 암호화 디스크에서 메모리로 데이터를 읽지 않습니다.
기본 CMEK 키 버전 순환
CMEK의 기본 키 버전을 순환하고 새 기본 키 버전을 만들면 백업 및 지속성에 다음 조건이 적용됩니다.
- CMEK의 최신 기본 키 버전은 새 백업을 암호화합니다.
- 기존 백업의 경우 다시 암호화가 실행되지 않습니다.
- 지속성의 경우 노드는 아무 작업도 실행하지 않습니다. 노드는 다음 유지보수 이벤트까지 이전 키 버전을 계속 사용합니다.
CMEK로 보호된 데이터 수동으로 다시 암호화
Memorystore for Valkey는 저장된 데이터의 주문형 다시 암호화를 지원하지 않습니다. 새 키 버전을 사용하여 기존 백업 또는 활성 지속성 파일을 다시 암호화하는 프로세스를 수동으로 트리거할 수 없습니다. 하지만 새 키 버전을 사용하여 새로 작성된 데이터를 암호화할 수 있습니다.
키를 순환하고 인스턴스에서 새 키 버전을 강제로 사용해야 하는 경우 백업 및 지속성에 다음 조건이 적용됩니다.
백업
기존 백업을 다시 암호화할 수 없습니다. 규정 준수를 위해 모든 데이터를 최신 키로 암호화해야 하는 경우 이 키를 사용하는 백업을 만든 다음 기존 백업을 수동으로 삭제합니다. Cloud Storage 암호화 키가 사용되도록 이 백업을 Cloud Storage 버킷으로 내보낼 수도 있습니다.
지속성
인스턴스에서 새 Cloud KMS 키를 강제로 사용하도록 하려면 인스턴스에서 시뮬레이션된 유지보수를 실행하면 됩니다. 이 작업을 완료하면 Memorystore for Valkey는 업데이트된 기본 키 버전을 사용하여 지속성 데이터를 쓸 수 있습니다.
보호된 Cloud KMS 키 교체
보호된 Cloud KMS 키를 다른 키 또는 새 기본 키 버전으로 교체하면 Memorystore for Valkey는 이 변경사항을 향후 작업에만 적용합니다.
보호된 키를 교체하면 다음과 같은 방식으로 리소스에 영향을 미칩니다.
- 백업: 이후의 모든 백업은 새 키를 사용하여 암호화됩니다. 기존 백업은 원래 키를 유지합니다.
- 지속성: 다음에 인스턴스가 다시 시작되거나 유지보수 이벤트가 발생하면 새 키가 사용됩니다.
- 기본 캐시: 이 키를 교체해도 영향을 미치지 않습니다. CMEK는 인메모리 데이터를 저장된 데이터로 간주하지 않으므로 암호화하지 않습니다.
기본 CMEK 키 버전 사용 설정 또는 복원
CMEK의 기본 키 버전을 사용 설정하거나 복원하면 백업 및 지속성에 다음 조건이 적용됩니다.
- 주문형 및 자동 백업을 다시 만들 수 있습니다.
- Memorystore for Valkey는 유지보수에 사용되는 업데이트와 유사한 업데이트를 실행하고 지속성을 다시 사용 설정합니다.
조직 정책 제약조건
Memorystore for Valkey는 CMEK의 조직 정책 제약조건을 지원합니다. 이러한 제약조건을 사용하면 인스턴스에 CMEK 보호를 적용하고 이 보호에 사용할 수 있는 Cloud KMS 키를 제한할 수 있습니다.
다음 조직 정책 제약조건을 구성할 수 있습니다.
constraints/gcp.restrictNonCmekServices: 이 제약조건을 사용하여 인스턴스에 CMEK 보호를 적용합니다. Memorystore for Valkey API 가 이 제약조건의 서비스에 대한Deny정책 목록에 있으면 CMEK로 보호되지 않는 인스턴스를 만들 수 없습니다.constraints/gcp.restrictCmekCryptoKeyProjects: 이 제약조건을 사용하여 CMEK 보호에 사용할 수 있는 Cloud KMS 키를 제한합니다. 이 제약조건을 구성하면 CMEK 암호화를 사용하는 인스턴스는 허용된 프로젝트, 폴더 또는 조직의 키를 사용해야 합니다.
Google에서 Memorystore for Valkey를 위해 관리하는 CMEK 관련 조직 정책 제약조건에 대한 자세한 내용은 조직 정책 제약조건을 참조하세요.
가격 책정
Memorystore for Valkey는 다른 인스턴스와 마찬가지로 CMEK가 사용 설정된 인스턴스에 대한 요금을 청구합니다. 추가 비용은 없습니다. 자세한 내용은 Memorystore for Valkey 가격 책정을 참조하세요.
Cloud KMS API를 사용하여 CMEK를 관리합니다. CMEK를 사용하여 Memorystore for Valkey 인스턴스를 만들면 Memorystore는 키를 주기적으로 사용하여 데이터를 암호화합니다.
Memorystore for Valkey가 키를 사용하면 키 비용과 암호화 및 복호화 작업에 대해 Cloud KMS에서 비용이 청구됩니다. 자세한 내용은 Cloud KMS 가격 책정을 참조하세요.
제한사항
Memorystore for Valkey에서 CMEK를 사용할 때는 다음 제한사항이 적용됩니다.
- 기존 Memorystore for Valkey 인스턴스에는 CMEK를 사용 설정할 수 없습니다.
- 키, 키링, 인스턴스는 동일한 리전에 있어야 합니다.
- 키에 대칭 암호화 알고리즘을 사용해야 합니다.
- Cloud KMS 암호화 및 복호화 비율에는 할당량이 적용됩니다.
다음 단계
- CMEK 자세히 알아보기
- CMEK를 사용하여 데이터 보안을 강화하는 방법 알아보기
- 백업에 대해 자세히 알아보기
- 지속성에 대해 자세히 알아보기