デフォルトでは、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 設定に従って保護されます。