고객 관리 암호화 키로 데이터 암호화

기본적으로 Dataproc Metastore는 저장 중 고객 콘텐츠를 암호화합니다. Dataproc Metastore는 사용자의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 합니다.

암호화 키를 제어하려면 Dataproc Metastore를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키(CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.

CMEK로 리소스를 설정한 후 Dataproc Metastore 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키(CMEK)를 참조하세요.

시작하기 전에

고려사항

CMEK와 함께 Dataproc Metastore를 사용할 때는 다음 사항을 고려하세요.

  • CMEK는 단일 리전 및 멀티 리전 Dataproc Metastore 서비스 (미리보기) 모두에서 지원됩니다.

  • Cloud Monitoring 데이터베이스는 CMEK 암호화를 지원하지 않습니다. 대신Google Cloud 에서는 Google 암호화 키를 사용하여 Dataproc Metastore 서비스의 이름과 서비스 구성을 보호합니다.

  • Dataproc Metastore 서비스를 VPC 서비스 제어 경계 내에서 실행하려면 Cloud Key Management Service(Cloud KMS) API를 경계에 추가해야 합니다.

  • Cloud External Key Manager 키를 사용하는 경우 Google은 외부 관리 키의 가용성을 제어할 수 없습니다. Dataproc Metastore 서비스 생성 기간에 키를 사용할 수 없게 되면 서비스 생성이 실패합니다. Dataproc Metastore 서비스를 만든 후에 키를 사용할 수 없게 되면 키를 다시 사용할 수 있을 때까지 서비스를 사용할 수 없게 됩니다. 외부 키 사용 시 고려사항은 Cloud EKM 고려사항을 참고하세요.

제한사항

CMEK와 함께 Dataproc Metastore를 사용할 때는 다음 제한사항을 고려하세요.

  • 기존 서비스에서는 CMEK를 사용 설정할 수 없습니다.

  • CMEK 사용 서비스에서 사용하는 CMEK를 순환할 수 없습니다.

  • CMEK를 사용하여 사용자 쿼리 및 응답과 같은 전송 중인 사용자 데이터를 암호화할 수 없습니다.

Dataproc Metastore의 CMEK 구성

아직 Cloud KMS 키가 없는 경우 Dataproc Metastore 서비스를 위한 키를 만들 수 있습니다. 그렇지 않으면 이 단계를 건너뛰고 기존 키를 사용해도 됩니다.

선택사항: 새 Cloud KMS 키 만들기

Cloud KMS 키를 만들려면 먼저 키링을 만든 다음 키링 내부에 저장된 키를 만듭니다.

키링을 만들려면 다음 단계를 따르세요.

키링을 만들려면 다음 gcloud kms keyrings create 명령어를 실행합니다.

gcloud kms keyrings create KEY_RING \
  --project=PROJECT_ID \
  --location=LOCATION

다음을 바꿉니다.

  • KEY_RING: 키링의 이름입니다.
  • PROJECT_ID: 키링을 만들 Google Cloud 프로젝트의 ID입니다.
  • LOCATION: 키링을 만들려는 리전입니다.

키를 만들려면 다음 단계를 따르세요.

키링 내부에 저장된 키를 만들려면 다음 gcloud kms keys create 명령어를 실행합니다.

gcloud kms keys create KEY_NAME \
  --project=PROJECT_ID \
  --location=LOCATION \
  --keyring=KEY_RING \
  --purpose=encryption

다음을 바꿉니다.

  • KEY_NAME: 키의 이름입니다.
  • KEY_RING: 이전 단계에서 만든 키링의 이름입니다.

Cloud KMS 키 권한 부여

다음 명령어를 사용하여 Dataproc Metastore의 Cloud KMS 키 권한을 부여하세요.

  1. Dataproc Metastore 서비스 에이전트 서비스 계정에 권한 부여:

    다중 리전 Dataproc Metastore 서비스에 CMEK를 구성하는 경우 Dataproc Metastore 및 Cloud Storage 서비스 계정 모두에 필요한 Cloud KMS 권한을 키에 부여해야 합니다.

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member=serviceAccount:$(gcloud beta services identity create \
        --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

  1. Cloud Storage 서비스 계정에 권한을 부여합니다.

      gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

CMEK 키로 단일 리전 서비스 만들기

단일 리전 Dataproc Metastore 서비스의 CMEK 암호화를 구성하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Dataproc Metastore 페이지로 이동합니다.

    Dataproc Metastore로 이동

  2. Dataproc Metastore 페이지 상단에서 만들기를 클릭합니다.

    서비스 만들기 페이지가 열립니다.

  3. 필요에 따라 서비스를 구성합니다.

  4. 암호화에서 고객 관리 암호화 키(CMEK)를 클릭합니다.

  5. 고객 관리 키를 선택합니다.

  6. 제출을 클릭합니다.

서비스의 암호화 구성을 확인합니다.

  1. Google Cloud 콘솔에서 Dataproc Metastore 페이지로 이동합니다.

    Google Cloud 콘솔로 이동

  2. Dataproc Metastore 페이지에서 보려는 서비스 이름을 클릭합니다.

    서비스 세부정보 페이지가 열립니다.

  3. 구성 탭에서 세부정보에 CMEK가 사용 설정된 것으로 표시되는지 확인합니다.

gcloud

  1. CMEK 암호화로 단일 리전 서비스를 만들려면Google Cloud gcloud metastore services create 명령어를 실행합니다.

    gcloud metastore services create SERVICE \
       --encryption-kms-key=KMS_KEY
    

    다음을 바꿉니다.

    • SERVICE: 새 서비스의 이름입니다.
    • KMS_KEY: 키 리소스 ID입니다.

CMEK 키로 멀티 리전 서비스 만들기

멀티 리전 Dataproc Metastore CMEK 서비스의 경우 여러 암호화 키를 제공해야 합니다. 여기에는 멀티 리전 Dataproc Metastore 서비스의 구성 리전별 키가 포함됩니다. Spanner 감시 리전용 키 하나와 대륙용 키 하나가 있습니다.

멀티 리전 서비스와 구성된 리전에 관한 정보를 가져오려면 다음 명령어를 실행합니다.

gcloud metastore locations describe LOCATION
  • LOCATION을 Dataproc Metastore 서비스를 만든 멀티 리전으로 바꿉니다.

CMEK 키로 멀티 리전 서비스를 만들려면 다음 단계를 따르세요.

다음 단계를 따라 멀티 리전 Dataproc Metastore 서비스의 CMEK 암호화를 구성합니다.

콘솔

  1. Google Cloud 콘솔에서 Dataproc Metastore 페이지로 이동합니다.

    Dataproc Metastore로 이동

  2. Dataproc Metastore 페이지 상단에서 만들기를 클릭합니다.

    서비스 만들기 페이지가 열립니다.

  3. Dataproc Metastore 2를 선택합니다.

  4. '가격 책정 및 용량' 섹션에서 Enterprise Plus - 이중 리전을 선택합니다.

  5. 엔드포인트 프로토콜에서 적절한 엔드포인트를 선택합니다.

  6. 암호화에서 Cloud KMS 키를 선택합니다.

  7. 각 리전(예: Spanner 감시 리전 및 대륙)에 사용할 키를 선택합니다.

  8. 필요에 따라 남은 서비스 옵션을 구성합니다.

  9. 제출을 클릭합니다.

서비스의 암호화 구성을 확인합니다.

  1. Google Cloud 콘솔에서 Dataproc Metastore 페이지로 이동합니다.

    Dataproc Metastore로 이동

  2. Dataproc Metastore 페이지에서 보려는 서비스 이름을 클릭합니다.

    서비스 세부정보가 열립니다.

  3. 구성 탭에서 CMEK가 사용 설정되어 있는지 확인합니다.

gcloud

  1. CMEK 암호화로 멀티 리전 서비스를 만들려면 gcloud beta metastore services create 명령어를 실행합니다.
gcloud beta metastore services create SERVICE \
    --location=LOCATION \
    --instance-size=INSTANCE_SIZE \
    --encryption-kms-keys=KMS_KEY1,KMS_KEY2,KMS_KEY_WITNESS,KMS_KEY_CONTINENT

다음을 바꿉니다.

  • SERVICE: 새 Dataproc Metastore 서비스 이름입니다.
  • LOCATION: Dataproc Metastore 서비스를 만들려는 Google Cloud 멀티 리전입니다. 기본 위치를 설정할 수도 있습니다.
  • INSTANCE_SIZE: 멀티 리전 Dataproc Metastore 서비스의 인스턴스 크기입니다. 예를 들어 소형, 중형, 대형이 있습니다.
  • KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT: 대륙의 키 하나와 Spanner 증인 리전의 키 하나를 포함하여 필요한 각 키의 키 리소스 ID입니다. 키 이름은 프로젝트에 projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME 형식으로 나열됩니다.

CMEK 사용 서비스로 데이터 가져오기 및 내보내기

가져오는 동안 데이터를 고객 관리 키로 암호화된 상태로 유지하려면 데이터를 가져오기 전에 Cloud Storage 버킷에 CMEK를 설정해야 합니다.

CMEK로 보호되지 않는 Cloud Storage 버킷에서 데이터를 가져올 수 있습니다. 가져오기 후 Dataproc Metastore에 저장된 데이터는 대상 서비스의 CMEK 설정에 따라 보호됩니다.

내보낼 경우 내보낸 데이터베이스 덤프는 대상 스토리지 버킷의 CMEK 설정에 따라 보호됩니다.

다음 단계