デフォルトでは、Dataproc Serverless はお客様のコンテンツを保存時に暗号化します。暗号化は Dataproc Serverless が行うため、ユーザー側での操作は必要ありません。このオプションは、Google のデフォルトの暗号化と呼ばれます。
暗号鍵を管理する場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Dataproc Serverless などの CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。Cloud KMS を使用すると、鍵の使用状況を追跡すること、監査ログを表示すること、鍵のライフサイクルを管理することが可能です。データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵を制御および管理します。
CMEK を使用してリソースを設定した後は、Dataproc Serverless リソースへのアクセスは、Google のデフォルトの暗号化を使用する場合と同様です。暗号化オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。
CMEK の使用
このセクションの手順に沿って、CMEK を使用し、Dataproc サーバーレスにより永続ディスクと Dataproc ステージング バケットに書き込まれるデータを暗号化します。
Cloud Key Management Service(Cloud KMS)を使用して鍵を作成します。
リソース名をコピーします。
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Compute Engine、Dataproc、Cloud Storage Service エージェントのサービス アカウントで鍵を使用できるようにします。
- Cloud KMS 暗号鍵の暗号化/復号ロールを Compute Engine サービス エージェントのサービス アカウントに割り当てるには、[Cloud KMS 鍵を使用してリソースを保護する] > [必要なロール] をご覧ください。このサービス アカウントが Google Cloud コンソールの IAM ページの一覧に含まれていない場合は、[Google 提供のロール付与を含める] をクリックして含めます。
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 ではありません)。Dataproc サーバーレス リソースを実行するプロジェクトで Cloud KMS API を有効にします。
Dataproc サービス エージェントのロールが Dataproc サービス エージェント サービス アカウントに関連付けられていない場合は、Dataproc サービス エージェント サービス アカウントに関連付けられたカスタムロールに
serviceusage.services.use
権限を追加します。Dataproc サービス エージェントのロールが Dataproc サービス エージェント サービス アカウントに関連付けられている場合は、この手順をスキップできます。手順に沿ってバケットに鍵を追加します。
-
Batch
kmsKey パラメータで鍵を指定します。Batch
stagingBucket パラメータで Cloud Storage バケットの名称を指定します。