고객 관리 암호화 키(CMEK) 사용

고객 관리 암호화 키 (CMEK)를 사용하면 키를 제어할 수 있습니다. 이렇게 하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키 (KEK)를 소유하고 관리하는 대신 사용자가 Cloud Key Management Service (KMS)에서 이러한 키를 제어하고 관리할 수 있습니다.

시작하기 전에

  1. 사용자 계정에 Redis 관리자 역할이 있는지 확인합니다.

    IAM 페이지로 이동

CMEK를 사용하는 클러스터를 만드는 워크플로

  1. Memorystore for Redis 클러스터의 클러스터를 배치할 위치에 키링를 만듭니다.

  2. 키 이름 (KEY_NAME), 키의 위치, 키링 이름 (KEY_RING)을 복사하거나 기록해 둡니다. 서비스 계정에 키에 대한 액세스 권한을 부여할 때 이 정보가 필요합니다.

  3. Redis용 Memorystore Cluster 서비스 계정에 키에 대한 액세스 권한을 부여합니다.

  4. 프로젝트로 이동하여 키링 및 키와 동일한 리전에 CMEK가 사용 설정된 Redis용 Memorystore 클러스터의 클러스터를 만듭니다.

이제 CMEK로 클러스터가 사용 설정되었습니다.

키링 및 키 만들기

키링를 만듭니다. 둘 다 Redis용 Memorystore 클러스터의 클러스터와 동일한 리전에 있어야 합니다. 키가 동일한 리전에 있는 한 키는 다른 프로젝트의 키일 수 있습니다. 또한 키는 대칭 암호화 알고리즘을 사용해야 합니다.

키링과 키를 만든 후 KEY_NAME, 키 위치, KEY_RING를 복사하거나 기록해 둡니다. 서비스 계정에 키에 대한 액세스 권한을 부여할 때 이 정보가 필요합니다.

Redis용 Memorystore 클러스터 서비스 계정에 키에 대한 액세스 권한 부여

CMEK를 사용하는 Redis용 Memorystore 클러스터를 만들려면 먼저 키에 특정 Redis용 Memorystore 클러스터 서비스 계정 액세스를 부여해야 합니다.

gcloud CLI를 사용하여 서비스 계정에 키 액세스 권한을 부여할 수 있습니다. 서비스 계정에 액세스 권한을 부여하려면 다음 형식을 사용하세요.

  service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
  

gcloud

키에 대한 서비스 계정 액세스 권한을 부여하려면 gcloud kms keys add-iam-policy-binding 명령어를 사용합니다.

gcloud kms keys add-iam-policy-binding  \
projects/PROJECT_ID/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

다음을 바꿉니다.

  • PROJECT_ID: 키링이 포함된 프로젝트의 ID 또는 번호
  • REGION_ID: 키링이 있는 리전
  • KEY_RING: 키가 포함된 키링의 이름
  • KEY_NAME: 서비스 계정에 액세스 권한을 부여할 키의 이름
  • PROJECT_NUMBER: 서비스 계정이 포함된 프로젝트의 ID 또는 번호

CMEK를 사용하는 클러스터 만들기

gcloud CLI를 사용하여 CMEK를 사용하는 클러스터를 만들 수 있습니다.

gcloud

CMEK를 사용하는 클러스터를 만들려면 gcloud redis clusters create 명령어를 사용합니다.

gcloud redis clusters create CLUSTER_ID \
--project=PROJECT_NAME \
--region=REGION_ID \
--network=NETWORK_ID \
--kms-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--shard-count=SHARD_NUMBER \
--persistence-mode=PERSISTENCE_MODE

다음을 바꿉니다.

  • CLUSTER_ID: 만들려는 클러스터의 ID입니다.
  • PROJECT_NAME: 클러스터를 만들려는 프로젝트의 이름입니다.
  • REGION_ID: 클러스터를 배치할 리전의 ID입니다.
  • NETWORK_ID: 클러스터를 만드는 데 사용할 네트워크의 ID입니다.
  • KEY_RING: 키가 포함된 키링의 이름입니다.
  • KEY_NAME: 키의 이름입니다.
  • SHARD_NUMBER: 클러스터에 원하는 샤드 수입니다.
  • PERSISTENCE_MODE: 클러스터의 지속성 모드입니다. 이 모드를 다음 값 중 하나로 설정할 수 있습니다.
    • aof: 클러스터에 AOF 기반 지속성을 사용 설정합니다.
    • disabled: 클러스터의 지속성을 비활성화합니다.
    • rdb: 클러스터에 Redis 데이터베이스 (RDB) 기반 지속성을 사용 설정합니다.

CMEK가 사용 설정된 클러스터의 키 정보 보기

gcloud CLI를 사용하여 CMEK 지원 클러스터에 관한 정보를 볼 수 있습니다. 이 정보에는 클러스터에 CMEK가 사용 설정되어 있는지 여부와 활성 키가 포함됩니다.

gcloud

CMEK가 사용 설정되었는지 확인하고 키 참조를 확인하려면 gcloud redis clusters describe 명령어를 사용하여 encryptionInfokmsKey 필드를 확인합니다.

gcloud redis clusters describe CLUSTER_ID \
--project=PROJECT_NAME \
--region=REGION_ID

다음을 바꿉니다.

  • CLUSTER_ID: 정보를 보려는 클러스터의 ID입니다.
  • PROJECT_NAME: 클러스터가 포함된 프로젝트 이름
  • REGION_ID: 클러스터가 있는 리전의 ID입니다.

키 버전 관리

키 버전을 사용 중지, 폐기, 순환, 사용 설정 및 복원할 때 발생하는 결과에 대한 자세한 내용은 CMEK 키 버전의 동작을 참고하세요.

키 버전을 사용 중지하고 다시 사용 설정하는 방법은 키 버전 사용 설정 및 사용 중지를 참고하세요.

키 버전을 폐기하고 복원하는 방법은 키 버전 폐기 및 복원을 참고하세요.

다음 단계

  • 백업에 대해 자세히 알아보기
  • 지속성에 대해 자세히 알아보세요.