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

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

시작하기 전에

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

    IAM 페이지로 이동

CMEK를 사용하는 인스턴스를 만드는 워크플로

  1. Memorystore for Valkey 인스턴스를 배치할 위치에 키링를 만듭니다.

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

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

  4. 프로젝트로 이동하여 키링 및 키와 동일한 리전에 CMEK가 사용 설정된 Memorystore for Valkey 인스턴스를 만듭니다.

이제 Memorystore for Valkey 인스턴스가 CMEK로 사용 설정되었습니다.

키링 및 키 만들기

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

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

Valkey용 Memorystore 서비스 계정에 키에 대한 액세스 권한 부여

CMEK를 사용하는 Memorystore for Valkey 인스턴스를 만들려면 먼저 키에 특정 Memorystore for Valkey 서비스 계정 액세스를 부여해야 합니다.

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

service-PROJECT_NUMBER@gcp-sa-memorystore.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@gcp-sa-memorystore.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

다음을 바꿉니다.

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

CMEK를 사용하는 Memorystore for Valkey 인스턴스 만들기

gcloud CLI를 사용하여 CMEK를 사용하는 인스턴스를 만들 수 있습니다.

gcloud

CMEK를 사용하는 인스턴스를 만들려면 gcloud memorystore instances create 명령어를 사용합니다.

gcloud memorystore instances create INSTANCE_ID \
--project=PROJECT_NAME \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_NAME/global/networks/NETWORK_ID", "projectId": "PROJECT_NAME"}}]}]' \
--kms-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--shard-count=SHARD_NUMBER \
--persistence-config-mode=PERSISTENCE_CONFIG_MODE

다음을 바꿉니다.

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

CMEK가 사용 설정된 인스턴스의 키 정보 보기

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

gcloud

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

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_NAME \
--location=REGION_ID

다음을 바꿉니다.

  • INSTANCE_ID: 정보를 확인할 인스턴스의 ID입니다.
  • PROJECT_NAME: 인스턴스가 포함된 프로젝트 이름
  • REGION_ID: 인스턴스가 있는 리전의 ID입니다.

키 버전 관리

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

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

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

다음 단계

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