이 페이지에서는 Memorystore for Redis에서 고객 관리 암호화 키(CMEK)가 작동하는 방식을 설명합니다. 이 기능을 사용하려면 고객 관리 암호화 키 (CMEK) 사용을 참고하세요.
기본적으로 Memorystore for Redis는 저장된 고객 콘텐츠를 암호화합니다. Memorystore for Redis는 사용자의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 합니다.
암호화 키를 제어하려면 Memorystore for Redis를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키(CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.
CMEK로 리소스를 설정한 후 Redis용 Memorystore 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키(CMEK)를 참조하세요.
CMEK는 누가 사용해야 하나요?
CMEK는 암호화해야 하는 민감한 데이터 또는 규제 대상 데이터가 있는 조직을 위한 것입니다. 이 데이터를 암호화하는 데 CMEK를 사용할지 여부에 대한 자세한 내용은 CMEK 사용 여부 결정을 참고하세요.
Google 관리 암호화와 고객 관리 암호화 비교
CMEK 기능을 사용하면 Memorystore for Redis의 저장 데이터에 자체 암호화 키를 사용할 수 있습니다. CMEK가 사용 설정된 Redis용 Memorystore 인스턴스의 경우 Google은 사용자의 키를 사용하여 모든 저장 데이터에 액세스합니다.
Memorystore는 Google 관리 데이터 암호화 키 (DEK)와 키 암호화 키 (KEK)를 사용하여 Memorystore for Redis의 데이터를 암호화합니다. 암호화에는 두 가지 수준이 있습니다.
- DEK 암호화: Memorystore는 DEK를 사용하여 Memorystore for Redis의 데이터를 암호화합니다.
- KEK 암호화: Memorystore는 KEK를 사용하여 DEK를 암호화합니다.
Redis용 Memorystore 인스턴스는 암호화된 데이터와 함께 암호화된 DEK를 영구 디스크에 저장하고 Google은 Google KEK를 관리합니다. CMEK는 DEK를 래핑하는 KEK입니다. CMEK를 사용하면 KEK를 만들고, 사용 중지하거나 폐기하고, 사용 설정하거나 복원할 수 있습니다.
Cloud Key Management Service API를 사용하여 CMEK를 관리합니다.
다음 다이어그램은 기본 Google 관리 암호화를 사용하는 경우와 CMEK를 사용하는 경우에 Memorystore for Redis 인스턴스 내부에서 저장 데이터 암호화가 작동하는 방식을 비교해서 보여줍니다.
CMEK를 사용하지 않는 경우
CMEK를 사용하는 경우
CMEK로 래핑된 데이터를 복호화할 때 Memorystore는 Cloud Key Management Service의 KEK를 사용하여 DEK를 복호화하고 암호화되지 않은 DEK를 사용하여 저장 데이터를 복호화합니다.

가격 책정
Redis용 Memorystore는 다른 인스턴스와 같은 방식으로 CMEK가 사용 설정된 인스턴스 비용을 청구합니다. 추가 비용은 없습니다. 자세한 내용은 Memorystore for Redis 가격 책정을 참고하세요.
Cloud KMS API를 사용하여 CMEK를 관리합니다. CMEK를 사용하여 Memorystore for Redis 인스턴스를 만들면 Memorystore에서 주기적으로 키를 사용하여 데이터를 암호화합니다.
Memorystore for Redis가 키를 사용하면 키 비용과 암호화 및 복호화 작업에 대해 Cloud KMS에서 비용이 청구됩니다. 자세한 내용은 Cloud KMS 가격 책정을 참조하세요.
Memorystore가 CMEK와 상호작용하는 경우는 언제인가요?
| 작업 | 설명 |
|---|---|
| 인스턴스 생성 | 인스턴스를 만들 때 CMEK를 사용하도록 구성합니다. |
| 인스턴스 업데이트 | CMEK 사용 인스턴스가 업데이트될 때 Redis용 Memorystore는 CMEK를 확인합니다. |
CMEK를 사용하여 어떤 데이터를 암호화하나요?
CMEK는 다음 유형의 데이터를 암호화합니다.
서비스 계정 정보
CMEK로 인스턴스를 만들 때 다음 형식의 Memorystore for Redis 서비스 계정에 cloudkms.cryptoKeyEncrypterDecrypter 역할을 부여해야 합니다.
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
이 권한을 부여하면 서비스 계정이 Cloud KMS에서 키 액세스를 요청할 수 있습니다.
서비스 계정에 이 권한을 부여하는 방법은 Redis용 Memorystore 서비스 계정에 키에 대한 액세스 권한 부여를 참고하세요.
키 정보
Cloud KMS에서는 대칭 암호화 알고리즘을 사용하는 암호화 키로 키링을 만들어야 합니다. Redis용 Memorystore 인스턴스를 만들 때 이 키를 선택하여 인스턴스를 암호화합니다. 키와 인스턴스 모두에 대해 하나의 프로젝트를 만들거나 각각에 대해 서로 다른 프로젝트를 만들 수 있습니다.
CMEK는 모든 Redis용 Memorystore 인스턴스 위치에서 사용할 수 있습니다. 인스턴스를 만들려는 리전과 동일한 리전에 키링과 키를 만들어야 합니다. 멀티 리전 또는 전역 리전의 키는 작동하지 않습니다. 리전 또는 위치가 일치하지 않으면 인스턴스 생성 요청이 실패합니다.
키의 리소스 ID에 CMEK는 다음 형식을 사용합니다.
projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Redis용 Memorystore가 사용 중인 키 버전에 액세스할 수 없는 경우 (예: 모든 키 버전을 사용 중지한 경우) Redis용 Memorystore는 인스턴스를 종료합니다. Google Cloud 콘솔에서 일시정지된 인스턴스는 인스턴스 페이지에 빨간색 느낌표 도움말을 표시합니다. 도움말 위로 마우스를 가져가면 No state 상태가 표시됩니다. 키에 액세스할 수 있게 되면 Redis용 Memorystore가 인스턴스를 자동으로 다시 시작합니다.
외부 키
Cloud 외부 키 관리자(Cloud EKM)를 사용하여 관리하는 외부 키를 통해Google Cloud 내 데이터를 암호화할 수 있습니다.
Cloud EKM 키를 사용하는 경우 Google은 외부 관리 키의 가용성을 제어할 수 없습니다. 인스턴스를 만들 때 키를 사용할 수 없으면 인스턴스가 생성되지 않습니다.
외부 키 사용 시 고려사항은 Cloud External Key Manager를 참조하세요.
CMEK로 암호화된 데이터에 영구적으로 액세스할 수 없도록 하려면 어떻게 해야 하나요?
CMEK로 암호화된 데이터에 영구적으로 액세스할 수 없도록 하려는 경우가 있을 수 있습니다. 이렇게 하려면 키 버전을 삭제합니다. 키 버전을 폐기하는 방법에 대한 자세한 내용은 키 버전 폐기 및 복원을 참고하세요.
CMEK가 사용 설정된 인스턴스의 데이터를 가져오거나 내보내려면 어떻게 해야 하나요?
데이터를 내보낼 때 데이터를 CMEK로 암호화된 상태로 유지하려면 데이터를 내보내기 전에 Cloud Storage 버킷에 CMEK를 설정해야 합니다.
데이터가 CMEK 지원 인스턴스에 저장된 경우 새 인스턴스로 데이터를 가져오기 위한 특별한 요구사항이나 제한사항은 없습니다.
CMEK 키 버전의 동작
이 섹션에서는 키 버전을 사용 중지, 폐기, 순환, 사용 설정, 복원할 때 발생하는 상황에 관한 정보를 제공합니다.
CMEK 키 버전 사용 중지 또는 폐기
인스턴스에 대한 데이터 액세스를 방지하려면 CMEK의 기본 키 버전을 사용 중지하세요. 이렇게 하면 인스턴스가 종료됩니다. 또한 사용 중인 CMEK가 사용 중지되거나 삭제되면 Redis용 Memorystore에서 인스턴스를 종료합니다. 여기에는 인스턴스에서 사용하는 이전 키 버전이 포함됩니다.
Redis용 Memorystore에서 인스턴스를 일시중지하는지 확인하려면 다음 인터페이스 중 하나를 사용하세요.
- Google Cloud 콘솔: 인스턴스 페이지에서 인스턴스 옆에 빨간색 느낌표 도움말이 표시됩니다. 도움말 위로 마우스를 가져가면
No state상태가 표시됩니다. - gcloud CLI:
gcloud redis instances describe명령어를 사용합니다. 인스턴스 메타데이터에state: READY,state: REPAIRING또는 기타 상태가 표시되지 않는지 확인합니다.
기본 CMEK 키 버전 사용 설정 또는 복원
CMEK의 기본 키 버전을 사용 설정하거나 복원하면 Redis용 Memorystore에서 더 이상 인스턴스를 숨기지 않습니다.
제한사항
Redis용 Memorystore와 함께 CMEK를 사용할 때는 다음 제한사항이 적용됩니다.
- 기존 Redis용 Memorystore 인스턴스에는 CMEK를 사용 설정할 수 없습니다.
- 키, 키링, 인스턴스의 리전은 모두 동일해야 합니다.
- 키에 대칭 암호화 알고리즘을 사용해야 합니다.
- Cloud KMS 암호화 및 복호화 비율에는 할당량이 적용됩니다.
CMEK 조직 정책
Redis용 Memorystore는 CMEK 보호에 사용할 수 있는 조직 정책 제약조건을 지원합니다.
정책에서 CMEK 보호에 사용될 수 있는 Cloud KMS 키를 제한할 수 있습니다.
Redis용 Memorystore API가
constraints/gcp.restrictNonCmekServices제약 조건의 서비스Deny정책 목록에 있으면 CMEK로 보호되지 않는 인스턴스를 만들 수 없습니다.constraints/gcp.restrictCmekCryptoKeyProjects제약 조건을 구성하면 Redis용 Memorystore는 허용된 프로젝트, 폴더 또는 조직의 키를 사용하여 암호화된 CMEK로 보호되는 인스턴스를 만듭니다.
CMEK 조직 정책 구성에 대한 자세한 내용은 CMEK 조직 정책을 참고하세요.