Dataproc サーバーレスで CMEK を使用する

Dataproc サーバーレスを使用する場合、データは基盤となるサーバーレス インフラストラクチャ上のディスクと Cloud Storage ステージング バケットに保存されます。このデータは、Google によって生成されるデータ暗号鍵(DEK)と鍵暗号鍵(KEK)を使用して暗号化されます。顧客管理の暗号鍵(CMEK)を使用して、鍵暗号鍵(KEK)の作成、使用、取り消しを行うことができます。データ暗号鍵(DEK)は Google が管理します。Google データ暗号鍵の詳細については、デフォルトの保存データの暗号化をご覧ください。

CMEK の使用

このセクションの手順に沿って、CMEK を使用し、Dataproc サーバーレスにより永続ディスクと 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 暗号鍵の暗号化/復号ロールを Compute Engine サービス エージェントのサービス アカウントに割り当てるには、[Cloud KMS 鍵を使用してリソースを保護する] > [必要なロール] をご覧ください。このサービス アカウントが Google Cloud コンソールの IAM ページの一覧に含まれていない場合は、[Google 提供のロール付与を含める] をクリックして含めます。
    2. Cloud KMS 暗号鍵の暗号化 / 復号ロールを Dataproc サービス エージェント サービス アカウントに割り当てます。ロールの割り当てには、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 サービス エージェントのロールが Dataproc サービス エージェント サービス アカウントに関連付けられていない場合は、Dataproc サービス エージェント サービス アカウントに関連付けられたカスタムロールに serviceusage.services.use 権限を追加します。Dataproc サービス エージェントのロールが Dataproc サービス エージェント サービス アカウントに関連付けられている場合は、この手順をスキップできます。

    4. 手順に沿ってバケットに鍵を追加します。

  4. バッチ ワークロードを送信する場合:

    1. Batch kmsKey パラメータで鍵を指定します。
    2. Batch stagingBucket パラメータで Cloud Storage バケットの名称を指定します。