顧客管理暗号鍵(CMEK)

Cloud Dataproc を使用する場合、クラスタとジョブのデータは、クラスタ内の Compute Engine VM に関連付けられた永続ディスク(PD)と Cloud Storage ステージング バケットに保存されます。PD とバケットに保存されるデータは、Google によって生成されるデータ暗号鍵(DEK)と鍵暗号鍵(KEK)を使用して暗号化されます。CMEK 機能によって、ユーザー側で鍵暗号鍵(KEK)の作成、使用、取り消しを行うことができます。データ暗号鍵(DEK)は引き続き、Google が管理します。Google データ暗号鍵の詳細については、保存データの暗号化をご覧ください。

CMEK の使用

CMEK を使用して次のデータを暗号化できます。Cloud Dataproc クラスタ内の VM に関連付けられた PD や、Cloud Dataproc ステージング バケットに書き込まれたクラスタ メタデータとジョブドライバ出力。手順 1 と 2 を行った後に、CMEK をクラスタの PD に使用する場合は手順 3 を、Cloud Storage バケットに使用する場合は手順 4 を、その両方に使用する場合は手順 5 を行ってください。

  1. Cloud Key Management Service(Cloud KMS)を使用して鍵を作成します。以降の手順で使用するため、リソース名をコピーします。リソース名は次のように構成されています。
    projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name
    
  2. Compute Engine と Cloud Storage のサービス アカウントで鍵を使用できるようにします。
    1. Compute Engine → Cloud KMS 鍵によるリソースの保護 → 始める前にの項目 5 に従って、Cloud KMS の CryptoKey Encrypter/Decrypter の役割を Compute Engine のサービス アカウントに割り当てます。
    2. Cloud KMS の CryptoKey Encrypter/Decrypter の役割を Cloud Storage のサービス アカウントに割り当てます
  3. gcloud コマンドライン ツールまたは Cloud Dataproc API を使用して、手順 1 で作成した鍵を Cloud Dataproc クラスタ内の VM に関連付けられた PD に対して設定します。

    gcloud コマンド

    gcloud dataproc clusters create コマンドでクラスタを作成するときに、手順 1 で取得した Cloud KMS リソース ID を --gce-pd-kms-key フラグに渡します。

    例:

    gcloud dataproc clusters create my-cluster-name \
        --gce-pd-kms-key='projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name' \
        other args ...
    

    鍵の設定を gcloud コマンドライン ツールから確認できます。

    gcloud dataproc clusters describe cluster-name
    
    ...
    configBucket: dataproc- ...
    encryptionConfig:
    gcePdKmsKeyName: projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name
    ...
    

    REST API

    ClusterConfig.EncryptionConfig.gcePdKmsKeyNamecluster.create リクエストの一部として使用します。

    鍵の設定を確認するには、clusters.get リクエストを発行します。次のように、レスポンスとして返される JSON に gcePdKmsKeyName が含まれています。

    ...
    {
    "projectId": "project-id",
    "clusterName": "cluster-name",
    "config": {
       "encryptionConfig": {
      "gcePdKmsKeyName": "projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name"
    }
    },
    
  4. Cloud Dataproc によって使用される Cloud Storage バケットで CMEK を使用して、クラスタとジョブのデータの読み取りや書き込みを行うには、CMEK を使用してバケットを作成します。注: バケットで鍵を追加するには、手順 1 で作成した鍵を使用します。このバケットの名前を、gcloud beta dataproc clusters create コマンドでクラスタを作成するときに渡します。

    :

    gcloud dataproc clusters create my-cluster \
        --bucket name-of-CMEK-bucket \
        other args ...
    

    ジョブがバケット引数を受け取る場合には、CMEK を有効化したバケットを gcloud dataproc jobs submit コマンドに渡すこともできます。次の例では、...cmek-bucket... バケット引数を PySpark ジョブ送信時に渡しています。

    :
    gcloud dataproc jobs submit pyspark gs://cmek-bucket/wordcount.py \
        --cluster clustername \
        -- gs://cmek-bucket/shakespeare.txt gs://cmek-bucket/counts
    
  5. CMEK をクラスタ内の PD に使用し、Cloud Dataproc で使用される Cloud Storage バケットにも使用するには、手順 3 と 4 で説明した --gce-pd-kms-key フラグと --bucket フラグの両方を gcloud dataproc clusters create コマンドに渡します。PD データとバケットデータには、それぞれ異なる鍵を作成して使用できます。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Dataproc ドキュメント
ご不明な点がありましたら、Google のサポートページをご覧ください。