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