デフォルトでは、Dataproc Metastore はお客様のコンテンツを 保存時に暗号化します。暗号化は Dataproc Metastore が行うため、お客様が 操作する必要はありません。このオプションは、Google のデフォルトの暗号化と呼ばれます。
暗号鍵をコントロールする場合は、Cloud KMS の顧客管理の暗号鍵 (CMEK)を、Cloud KMS の Dataproc Metastore などの CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護 レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。 Cloud KMS を使用すると、監査ログを表示し、鍵のライフサイクルを管理することもできます。データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵の制御と管理を行います。
CMEK を使用してリソースを設定した後は、 Dataproc Metastore リソースへのアクセスは、Google のデフォルトの暗号化を使用する場合と同様です。 暗号化 オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。
始める前に
考慮事項
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: キーリングを作成するプロジェクトの ID。 Google CloudLOCATION: キーリングを作成するリージョン。
鍵を作成する
キーリング内に保存される鍵を作成するには、次の
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 サービス エージェントのサービス アカウントに権限を付与します。
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 暗号化を構成する手順は次のとおりです。
コンソール
コンソールで、Dataproc Metastore ページに移動します。 Google Cloud
[Dataproc Metastore] ページの上部にある [作成] をクリックします。
[Create service] ページが開きます。
必要に応じてサービスを構成します。
[暗号化] で [顧客管理の暗号鍵(CMEK)] をクリックします。
顧客管理の鍵を選択します。
[送信] をクリックします。
サービスの暗号化構成を確認します。
コンソールで、Dataproc Metastore ページに移動します。 Google Cloud
[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 対応サービスとの間でデータのインポートとエクスポートを行う
顧客管理の暗号鍵を使用してデータをインポート時に暗号化されたままにする場合は、データのインポート前に Cloud Storage バケットで CMEK を設定する必要があります。
CMEK で保護されていない Cloud Storage バケットからインポートできます。インポート後、Dataproc Metastore に保存されたデータは、宛先サービスの CMEK 設定に従って保護されます。
エクスポート時に、エクスポートされたデータベース ダンプは、エクスポート先のストレージ バケットの CMEK 設定に従って保護されます。