고객 관리 암호화 키(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 서비스 계정에 키에 대한 액세스 권한을 부여합니다.

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

이제 Redis용 Memorystore 인스턴스가 CMEK에 사용 설정됩니다.

키링 및 키 만들기

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

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

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

CMEK를 사용하는 Redis용 Memorystore 인스턴스를 만들려면 먼저 키에 특정 Redis용 Memorystore 서비스 계정 액세스를 부여해야 합니다. Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 서비스 계정에 키 액세스 권한을 부여할 수 있습니다.

서비스 계정에 액세스 권한을 부여하려면 다음 형식을 사용하세요.

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

콘솔

CMEK를 사용하는 Redis용 Memorystore 인스턴스 만들기 단계의 일환으로 키에 서비스 계정 액세스 권한을 부여합니다.

gcloud

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

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

다음을 바꿉니다.

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

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

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

콘솔

  1. 인스턴스를 만들려는 동일한 리전에 키링과 키를 만들어야 합니다.

  2. CMEK를 사용 설정하는 단계까지 VPC 네트워크에서 Redis 인스턴스 만들기의 안내를 따릅니다. 그런 다음 이 안내로 돌아옵니다.

  3. 고객 관리 암호화 키(CMEK) 사용을 선택합니다.

  4. 키를 선택하려면 메뉴를 사용하세요.

  5. 인스턴스의 나머지 구성을 선택한 후 만들기를 클릭합니다.

gcloud

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

gcloud redis instances create INSTANCE_ID \
--size=SIZE \
--region=REGION_ID \
--customer-managed-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME

다음을 바꿉니다.

  • INSTANCE_ID: 만들려는 인스턴스의 ID
  • SIZE: 만들려는 인스턴스의 크기 (기비바이트)
  • REGION_ID: 인스턴스를 배치할 리전의 ID
  • PROJECT_NAME: 인스턴스를 만들 프로젝트의 이름
  • KEY_RING: 키가 포함된 키링의 이름
  • KEY_NAME: 키의 이름

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

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

콘솔

  1. Google Cloud 콘솔에서 인스턴스 페이지로 이동합니다.

    Memorystore for Redis

  2. 인스턴스 ID를 클릭합니다.

  3. 왼쪽 창에서 보안 탭을 클릭합니다. 보안 페이지에는 활성 키에 대한 링크가 포함되고 키 참조 경로가 표시됩니다. 이 정보가 표시되지 않으면 인스턴스에 CMEK가 사용 설정되지 않은 것입니다.

gcloud

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

gcloud redis instances describe INSTANCE_ID \
--project=PROJECT_NAME \
--region=REGION_ID

다음을 바꿉니다.

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

키 버전 관리

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

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

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

다음 단계