Dataproc サーバーレスを使用する場合、データは基盤となるサーバーレス インフラストラクチャ上のディスクと Cloud Storage ステージング バケットに保存されます。このデータは、Google によって生成されるデータ暗号鍵(DEK)と鍵暗号鍵(KEK)を使用して暗号化されます。顧客管理の暗号鍵(CMEK)を使用して、鍵暗号鍵(KEK)の作成、使用、取り消しを行うことができます。データ暗号鍵(DEK)は Google が管理します。Google データ暗号鍵の詳細については、デフォルトの保存データの暗号化をご覧ください。
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 サービス エージェントのサービス アカウントで鍵を使用できるようにします。
- 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 サービス エージェントのロールが Dataproc サービス エージェント サービス アカウントに関連付けられていない場合は、Dataproc サービス エージェント サービス アカウントに関連付けられたカスタムロールに
serviceusage.services.use
権限を追加します。Dataproc サービス エージェントのロールが Dataproc サービス エージェント サービス アカウントに関連付けられている場合は、この手順をスキップできます。手順に沿ってバケットに鍵を追加します。
-
Batch
kmsKey パラメータで鍵を指定します。Batch
stagingBucket パラメータで Cloud Storage バケットの名称を指定します。