Dataproc 서버리스에서 CMEK 사용

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

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

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

CMEK 사용

이 섹션의 단계에 따라 CMEK를 사용하여 Dataproc Serverless가 영구 디스크 및 Dataproc 스테이징 버킷에 작성하는 데이터를 암호화합니다.

  1. Cloud Key Management Service(Cloud KMS)를 사용하여 키를 만듭니다.

  2. 리소스 이름을 복사합니다.

    리소스 이름을 복사합니다.
    리소스 이름은 다음과 같이 구성됩니다.
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. Compute Engine, Dataproc, Cloud Storage 서비스 에이전트 서비스 계정에서 키를 사용하도록 설정합니다.

    1. Cloud KMS 키를 사용하여 리소스 보호 > 필요한 역할을 참고하여 Cloud KMS CryptoKey 암호화/복호화 역할을 Compute Engine 서비스 에이전트 서비스 계정에 할당합니다. 이 서비스 계정이 Google Cloud 콘솔의 IAM 페이지에 나열되지 않은 경우 Google 제공 역할 부여 포함을 클릭하여 나열합니다.
    2. Dataproc 서비스 에이전트 서비스 계정Cloud KMS CryptoKey 암호화/복호화 역할을 할당합니다. Google Cloud CLI를 사용하여 역할을 할당할 수 있습니다.

       gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
       --member serviceAccount:service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
       --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      다음을 바꿉니다.

      KMS_PROJECT_ID: Cloud KMS를 실행하는 Google Cloud 프로젝트의 ID입니다. 이 프로젝트는 Dataproc 리소스를 실행하는 프로젝트일 수도 있습니다.

      PROJECT_NUMBER: Dataproc 리소스를 실행하는 Google Cloud 프로젝트의 프로젝트 번호(프로젝트 ID 아님)입니다.

    3. Dataproc Serverless 리소스를 실행하는 프로젝트에서 Cloud KMS API를 사용 설정합니다.

    4. Dataproc 서비스 에이전트 역할Dataproc 서비스 에이전트 서비스 계정에 연결되어 있지 않은 경우 Dataproc 서비스 에이전트 서비스 계정에 연결된 커스텀 역할에 serviceusage.services.use 권한을 추가합니다. Dataproc 서비스 에이전트 역할이 Dataproc 서비스 에이전트 서비스 계정에 연결되어 있으면 이 단계를 건너뜁니다.

    5. 단계에 따라 버킷에 키를 추가합니다.

  4. 배치 워크로드를 제출하는 경우에는 다음 단계를 따릅니다.

    1. Batch kmsKey 매개변수에 키를 지정합니다.
    2. Batch stagingBucket 매개변수에 Cloud Storage 버킷 이름을 지정합니다.