顧客管理の暗号鍵でデータを暗号化する

デフォルトでは、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 鍵の権限を付与します。

  1. 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

  1. Cloud Storage サービス アカウントに権限を付与します。

      gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

CMEK 鍵を使用して単一リージョン サービスを作成する

単一リージョンの Dataproc Metastore サービスに CMEK 暗号化を構成するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで、Dataproc Metastore ページに移動します。

    Dataproc Metastore に移動

  2. [Dataproc Metastore] ページの上部にある [作成] をクリックします。

    [Create service] ページが開きます。

  3. 必要に応じてサービスを構成します。

  4. [暗号化] で、[顧客管理の暗号鍵(CMEK)] をクリックします。

  5. 顧客管理の暗号鍵を選択します。

  6. [送信] をクリックします。

サービスの暗号化構成を確認します。

  1. Google Cloud コンソールで、Dataproc Metastore ページに移動します。

    Google Cloud コンソールに移動

  2. [Dataproc Metastore] ページで、表示するサービスの名前をクリックします。

    サービスの詳細ページが開きます。

  3. [構成] タブで、詳細に CMEK が有効になっていることが表示されていることを確認します。

gcloud

  1. 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 暗号化を構成するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで、Dataproc Metastore ページに移動します。

    Dataproc Metastore に移動

  2. [Dataproc Metastore] ページの上部にある [作成] をクリックします。

    [Create service] ページが開きます。

  3. [Dataproc Metastore 2] を選択します。

  4. [料金と容量] セクションで、[Enterprise Plus - デュアルリージョン] を選択します。

  5. [エンドポイント プロトコル] で、適切なエンドポイントを選択します。

  6. [暗号化] で、[Cloud KMS 鍵] を選択します。

  7. 各リージョンで使用するキー(Spanner 監視リージョンや大陸など)を選択します。

  8. 必要に応じて、残りのサービス オプションを構成します。

  9. [送信] をクリックします。

サービスの暗号化構成を確認します。

  1. Google Cloud コンソールで、Dataproc Metastore ページに移動します。

    Dataproc Metastore に移動

  2. [Dataproc Metastore] ページで、表示するサービスの名前をクリックします。

    [サービスの詳細] が開きます。

  3. [構成] タブで、CMEK が有効になっていることを確認します。

gcloud

  1. 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 設定に従って保護されます。

次のステップ