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

기본적으로 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를 사용할 때는 다음 사항을 고려하세요.

  • 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 서비스 에이전트 서비스 계정에 권한 부여:

      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 사용 서비스로 데이터 가져오기 및 내보내기

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

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

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

다음 단계