デフォルトでは、Dataproc Metastore はお客様のコンテンツを保存時に暗号化します。Dataproc Metastore では、ユーザーが追加で操作を行わなくても、暗号化が行われます。このオプションは、Google のデフォルトの暗号化と呼ばれます。
暗号鍵をコントロールする場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Dataproc Metastore などの CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。Cloud KMS を使用すると、監査ログを表示し、鍵のライフサイクルを管理することもできます。データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵の制御と管理を行います。
CMEK を使用してリソースを設定した後は、Dataproc Metastore リソースへのアクセスは、Google のデフォルトの暗号化を使用する場合と同様です。暗号化オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。
始める前に
考慮事項
CMEK で Dataproc Metastore を使用する場合は、次の点を考慮してください。
- CMEK は、シングルリージョンとマルチリージョンの両方の Dataproc Metastore サービス(プレビュー)でサポートされています。 
- Cloud Monitoring データベースは CMEK 暗号化をサポートしていません。代わりに、Google Cloud は Google の暗号鍵を使用して、Dataproc Metastore サービスの名前とサービス構成を保護します。 
- Dataproc Metastore サービスを VPC Service Controls の境界内で実行する場合は、Cloud Key Management Service(Cloud KMS)API を境界に追加する必要があります。 
- Cloud External Key Manager 鍵を使用する場合、Google は外部管理鍵の可用性をコントロールできません。Dataproc Metastore サービスの作成期間中に鍵が使用不能になると、サービスの作成は失敗します。Dataproc Metastore サービスの作成後に鍵が使用不能になると、鍵が再び使用可能になるまでサービスは使用不能になります。外部鍵を使用する際のその他の考慮事項については、Cloud EKM の考慮事項をご覧ください。 
制限事項
CMEK で Dataproc Metastore を使用する場合は、次の制限事項を考慮してください。
- 既存のサービスで CMEK を有効にすることはできません。 
- CMEK 対応サービスで使用されている CMEK をローテーションすることはできません。 
- CMEK を使用して、ユーザークエリやレスポンスなどの転送中のユーザーデータを暗号化することはできません。 
Dataproc Metastore の CMEK を構成する
Cloud KMS 鍵がまだない場合は、Dataproc Metastore サービス用に作成できます。それ以外の場合は、この手順をスキップして既存の鍵を使用できます。
省略可: 新しい Cloud KMS 鍵を作成する
Cloud KMS 鍵を作成するには、まずキーリングを作成し、次にキーリング内に保存される鍵を作成します。
キーリングを作成するには
キーリングを作成するには、次の gcloud kms keyrings create コマンドを実行します。
gcloud kms keyrings create KEY_RING \ --project=PROJECT_ID \ --location=LOCATION
次のように置き換えます。
- KEY_RING: キーリングの名前。
- PROJECT_ID: キーリングを作成する Google Cloud プロジェクトの ID。
- LOCATION: キーリングを作成するリージョン。
キーを作成するには
キーリング内に保存される鍵を作成するには、次の gcloud kms keys create コマンドを実行します。
gcloud kms keys create KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEY_RING \ --purpose=encryption
次のように置き換えます。
- KEY_NAME: 鍵の名前
- KEY_RING: 前の手順で作成したキーリングの名前。
Cloud KMS 鍵の権限を付与する
次のコマンドを使用して、Dataproc Metastore の Cloud KMS 鍵の権限を付与します。
- Dataproc Metastore サービス エージェントのサービス アカウントに権限を付与します。 - マルチリージョン Dataproc Metastore サービスに CMEK を構成する場合は、Dataproc Metastore と Cloud Storage の両方のサービス アカウントに必要な Cloud KMS 権限を各鍵に付与する必要があります。 - gcloud kms keys add-iam-policy-binding KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --member=serviceAccount:$(gcloud beta services identity create \ --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
- Cloud Storage サービス アカウントに権限を付与します。 - gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME 
CMEK 鍵を使用して単一リージョン サービスを作成する
単一リージョンの Dataproc Metastore サービスに CMEK 暗号化を構成するには、次の操作を行います。
コンソール
- Google Cloud コンソールで、Dataproc Metastore ページに移動します。 
- [Dataproc Metastore] ページの上部にある [作成] をクリックします。 - [Create service] ページが開きます。 
- 必要に応じてサービスを構成します。 
- [暗号化] で、[顧客管理の暗号鍵(CMEK)] をクリックします。 
- 顧客管理の暗号鍵を選択します。 
- [送信] をクリックします。 
サービスの暗号化構成を確認します。
- Google Cloud コンソールで、Dataproc Metastore ページに移動します。 
- [Dataproc Metastore] ページで、表示するサービスの名前をクリックします。 - サービスの詳細ページが開きます。 
- [構成] タブで、詳細に CMEK が有効になっていることが表示されていることを確認します。 
gcloud
- CMEK 暗号化を使用して単一リージョン サービスを作成するには、Google Cloud - gcloud metastore services createコマンドを実行します。- gcloud metastore services create SERVICE \ --encryption-kms-key=KMS_KEY - 次のように置き換えます。 - SERVICE: 新しいサービスの名前。
- KMS_KEY: 鍵のリソース ID。
 
CMEK 鍵を使用してマルチリージョン サービスを作成する
マルチリージョンの Dataproc Metastore CMEK サービスの場合は、複数の暗号鍵を指定する必要があります。これには、マルチリージョンの Dataproc Metastore サービスの構成リージョンごとに 1 つの鍵(Spanner ウィットネス リージョン用の鍵 1 つと、大陸用の鍵 1 つ)が含まれます。
マルチリージョン サービスと、構成されているリージョンに関する情報を取得するには、次のコマンドを実行します。
gcloud metastore locations describe LOCATION
- LOCATION は、Dataproc Metastore サービスを作成したマルチリージョンに置き換えます。
CMEK 鍵を使用してマルチリージョン サービスを作成するには
マルチリージョン Dataproc Metastore サービスに CMEK 暗号化を構成するには、次の操作を行います。
コンソール
- Google Cloud コンソールで、Dataproc Metastore ページに移動します。 
- [Dataproc Metastore] ページの上部にある [作成] をクリックします。 - [Create service] ページが開きます。 
- [Dataproc Metastore 2] を選択します。 
- [料金と容量] セクションで、[Enterprise Plus - デュアルリージョン] を選択します。 
- [エンドポイント プロトコル] で、適切なエンドポイントを選択します。 
- [暗号化] で、[Cloud KMS 鍵] を選択します。 
- 各リージョンで使用するキー(Spanner 監視リージョンや大陸など)を選択します。 
- 必要に応じて、残りのサービス オプションを構成します。 
- [送信] をクリックします。 
サービスの暗号化構成を確認します。
- Google Cloud コンソールで、Dataproc Metastore ページに移動します。 
- [Dataproc Metastore] ページで、表示するサービスの名前をクリックします。 - [サービスの詳細] が開きます。 
- [構成] タブで、CMEK が有効になっていることを確認します。 
gcloud
- CMEK 暗号化を使用してマルチリージョン サービスを作成するには、gcloud beta metastore services createコマンドを実行します。
gcloud beta metastore services create SERVICE \ --location=LOCATION \ --instance-size=INSTANCE_SIZE \ --encryption-kms-keys=KMS_KEY1,KMS_KEY2,KMS_KEY_WITNESS,KMS_KEY_CONTINENT
次のように置き換えます。
- SERVICE: 新しい Dataproc Metastore サービスの名前。
- LOCATION: Dataproc Metastore サービスを作成する Google Cloud マルチリージョン。デフォルトの場所を設定することもできます。
- INSTANCE_SIZE: マルチリージョン Dataproc Metastore サービスのインスタンス サイズ。(小、中、大など)。
- KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT: 大陸の鍵と Spanner 証人リージョンの鍵を含む、必要な各鍵の鍵リソース ID。キー名は、プロジェクトで- projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAMEの形式で一覧表示されます。
CMEK 対応サービスとの間でデータのインポートとエクスポートを行う
顧客管理の暗号鍵を使用してデータをインポート時に暗号化されたままにする場合は、データのインポート前に Cloud Storage バケットで CMEK を設定する必要があります。
CMEK で保護されていない Cloud Storage バケットからインポートできます。インポート後、Dataproc Metastore に保存されたデータは、宛先サービスの CMEK 設定に従って保護されます。
エクスポート時に、エクスポートされたデータベース ダンプは、エクスポート先のストレージ バケットの CMEK 設定に従って保護されます。