顧客管理の暗号鍵を有効にする

このドキュメントでは、顧客管理の暗号鍵(CMEK)を使用して Dataplex Universal Catalog データを暗号化する方法について説明します。

概要

デフォルトでは、Dataplex Universal Catalog はお客様のコンテンツを保存時に暗号化します。暗号化は Dataplex Universal Catalog が行うため、ユーザー側での操作は必要ありません。このオプションは、Google のデフォルトの暗号化と呼ばれます。

暗号鍵をコントロールする場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Dataplex Universal Catalog などの CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。Cloud KMS を使用すると、鍵の使用状況を追跡すること、監査ログを表示すること、鍵のライフサイクルを管理することが可能です。データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵を制御および管理します。

CMEK を使用してリソースを設定した後は、Dataplex Universal Catalog リソースへのアクセスは、Google のデフォルトの暗号化を使用する場合と同様です。暗号化オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。

Dataplex Universal Catalog は、すべての Dataplex Universal Catalog リソースにロケーションごとに 1 つの CMEK を使用します。

CMEK 鍵は、Dataplex Universal Catalog の組織レベルで構成できます。

CMEK の一般的な用途(有効にするタイミングと理由など)の詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。

CMEK のメリット

CMEK を使用すると、次のことができます。

  • 鍵のライフサイクル オペレーションとアクセス権限を管理する。
  • Cloud KMS の Key Inventory API と Key Usage ダッシュボードを使用して鍵の使用状況を追跡する。これにより、どの鍵がどのリソースを保護しているかを確認できます。Cloud Logging には、キーにアクセスした日時とアクセスしたユーザーが表示されます。
  • 暗号鍵を管理することにより特定の規制要件を満たす。

Dataplex Universal Catalog での CMEK の機能

Google Cloud プロジェクトの Dataplex Universal Catalog 暗号化管理者は、Cloud KMS 鍵を指定して Dataplex Universal Catalog の CMEK を構成できます。次に、Dataplex Universal Catalog は指定された Cloud KMS 鍵を使用して、既存のデータや Dataplex Universal Catalog 内で作成された新しいリソースなど、すべてのデータを暗号化します。

サポートされている機能

  • Dataplex Universal Catalog では、次の機能で CMEK 暗号化がサポートされています。
  • Data Lineage はお客様のコア コンテンツや機密データを保存しないため、CMEK 暗号化は必要ありません。
  • Assured Workloads のお客様は、CMEK 暗号化がサポートされていないため、他の Dataplex Universal Catalog 機能を使用できません。
  • Assured Workloads を使用しない場合は、他の機能も使用できますが、データは Google のデフォルトの暗号化を使用して暗号化されます。

考慮事項

  • デフォルトでは、各組織は Google のデフォルトの暗号化を使用してプロビジョニングされます。
  • 組織管理者は、任意のロケーションで Dataplex Universal Catalog で CMEK に切り替えることができます。
  • Dataplex Universal Catalog は、Cloud KMS 鍵、Cloud HSM 鍵、Cloud External Key Manager 鍵をサポートしています。
  • 鍵のローテーションがサポートされており、ローテーションが利用可能になると、新しい鍵バージョンがデータ暗号化に自動的に使用されます。既存のデータもこの新しいバージョンで暗号化されます。
  • Dataplex Universal Catalog では、データのバックアップは最長 15 日間保持されます。CMEK を有効にした後に作成されたバックアップは、指定された KMS 鍵を使用して暗号化されます。CMEK を有効にする前にバックアップされたデータは、Google のデフォルトの暗号化で最大 15 日間暗号化されたままになります。

制限事項

  • CMEK への切り替えは元に戻せません。CMEK を選択した後、Google のデフォルトの暗号化に戻すことはできません。
  • Dataplex Universal Catalog 用に Cloud KMS 鍵を構成した後、その鍵を更新または変更することはできません。
  • Dataplex Universal Catalog は組織レベルの暗号化のみをサポートしています。そのため、暗号化構成は特定のロケーションの組織レベルで設定され、その組織とロケーション内のすべてのプロジェクトの Dataplex Universal Catalog データを暗号化するために使用されます。CMEK 暗号化は、組織またはフォルダ内の特定のプロジェクトではサポートされていません。CMEK 関連の組織のポリシーを設定するには、慎重な検討が必要です。
  • Dataplex Universal Catalog は、グローバル リージョンで CMEK をサポートしていません。
  • アスペクト用語集でキャプチャされたメタデータには CMEK 保護を使用できません。

暗号鍵を保護する

CMEK で暗号化されたデータに継続的にアクセスするには、次のベスト プラクティスをご覧ください。

  • CMEK 鍵が有効でアクセス可能であることを確認します。鍵が無効化または破棄されると、Dataplex Universal Catalog データにアクセスできなくなります。鍵が 30 日間以上使用できない場合、その鍵で暗号化されたデータは自動的に削除され、復元できなくなります。
  • Cloud KMS 鍵が破棄され、復元できない場合、関連する Dataplex Universal Catalog データはすべて完全に失われます。
  • Cloud KMS が一時的に使用できない場合、Dataplex Universal Catalog は最大 1 時間、ベスト エフォートで完全なオペレーションを引き続きサポートします。この期間がすぎると、保護対策としてデータに一時的にアクセスできなくなります。
  • Cloud EKM を使用する場合、Google は外部管理鍵の可用性を制御しません。鍵が一時的に使用できなくなると、データに一時的にアクセスできなくなります。鍵が 30 日間使用できないと、データが完全に失われます。
  • CMEK を有効にした後、プロジェクトを組織間で移動しないでください。この操作を行うとデータが失われます。

Dataplex Universal Catalog の可用性

以降のセクションでは、Dataplex Universal Catalog 組織で CMEK を有効にする際のプロセスと運用への影響について説明します。

初期インフラストラクチャのプロビジョニング

暗号化構成を保存すると、Dataplex Universal Catalog は必要なインフラストラクチャを設定します。この処理には通常 6~8 時間かかります。このプロビジョニング フェーズでは、すべての Dataplex Universal Catalog の機能に完全にアクセスできます。データは Google マネージド暗号化によって暗号化されたままになります。組織のポリシー constraints/gcp.restrictNonCmekServices が設定されている場合、プロビジョニング フェーズが完了するまでリソース作成リクエストは失敗します。

データの暗号化と API の可用性

インフラストラクチャのプロビジョニング後、Dataplex Universal Catalog は組織内に保存されている既存のデータを暗号化し始めます。データの整合性を確保し、この暗号化プロセス中に不整合が発生しないようにするため、Dataplex Universal Catalog API メソッドは一時的に使用できません。この制限により、データ更新オペレーションがブロックされます。Dataplex Universal Catalog で CMEK を最初に有効にすると、既存のデータはすべて暗号化されます。この 1 回限りのオペレーションには最長で 2 時間ほどかかると見込まれます。

暗号化後のオペレーション

既存のデータ暗号化が正常に完了すると、Dataplex Universal Catalog API メソッドを完全に使用できるようになります。Dataplex Universal Catalog 内でのデータの作成または変更は、構成された CMEK を使用して自動的に暗号化されます。運用の中断や API の制限はありません。

鍵を作成し、CEMK を有効にする

次の手順では、鍵を作成し、Dataplex Universal Catalog で CMEK を有効にする方法について説明します。Cloud KMS で直接作成された鍵または Cloud EKM で利用できる外部管理鍵を使用できます。

  1. 鍵を管理する Google Cloud プロジェクトで、次の操作を行います。

    1. Cloud Key Management Service API を有効にします

    2. 使用するロケーションに Cloud KMS キーリングを作成します。

    3. 次のいずれかのオプションを使用して鍵を作成します。

  2. Google マネージド サービス アカウントを作成して表示します。

    gcloud beta services identity create \
        --service=dataplex.googleapis.com \
        --organization=ORG_ID
    

    ORG_ID は、キーを含む組織の ID に置き換えます。

    Google Cloud CLI ベータ版コマンド コンポーネントのインストールを求められたら、「Y」と入力します。

    gcloud CLI の services identity コマンドは、Dataplex Universal Catalog が Cloud KMS 鍵にアクセスするために使用できる特定の Google マネージド サービス アカウントを作成または取得します。

    サービス アカウント ID の形式は service-org-ORG_ID@gcp-sa-dataplex.iam.gserviceaccount.com です。

  3. Dataplex Universal Catalog サービス アカウントに CryptoKey の暗号化 / 復号 IAM ロールroles/cloudkms.cryptoKeyEncrypterDecrypter)を付与します。作成した鍵にこの権限を付与します。

    コンソール

    1. [鍵管理] ページに移動します。

      [鍵管理] に移動

    2. キーリングをクリックします。

    3. 使用可能な鍵のリストで、作成した鍵をクリックします。

    4. [権限] タブをクリックします。

    5. [アクセス権を付与] をクリックします。

    6. 表示された [アクセス権を付与] ペインで、次の手順に沿って Dataplex Universal Catalog サービス アカウントへのアクセス権を付与します。

      1. [プリンシパルを追加] に、サービス アカウント service-org-ORG_ID@gcp-sa-dataplex.iam.gserviceaccount.com を入力します。
      2. [ロールを割り当てる] で、Cloud KMS CryptoKey Encrypter/Decrypter ロールを選択します。
      3. [保存] をクリックします。

    gcloud

    サービス アカウントに cloudkms.cryptoKeyEncrypterDecrypter ロールを付与します。

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location=LOCATION \
        --keyring KEY_RING \
        --project=KEY_PROJECT_ID \
        --member serviceAccount:service-org-ORG_ID@gcp-sa-dataplex.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    次のように置き換えます。

    • KEY_NAME: 鍵名
    • LOCATION: ロケーション
    • KEY_RING: キーリング
    • KEY_PROJECT_ID: 鍵プロジェクト ID。
  4. 自分に Dataplex 暗号化管理者ロールを割り当てます。

    コンソール

    手順に沿ってIAM ロールを付与します。

    gcloud

    gcloud organizations add-iam-policy-binding ORG_ID \
        --member='user:USER_EMAIL' \
        --role='roles/dataplex.encryptionAdmin'
    

    次のように置き換えます。

    • ORG_ID: 鍵が含まれているプロジェクトの ID。
    • USER_EMAIL: ユーザーのメールアドレス。
  5. CMEK 鍵を使用するように Dataplex Universal Catalog を構成します。

    コンソール

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

      Dataplex に移動

    2. [設定] をクリックします。

    3. [CMEK のリージョンを選択] でリージョンを選択します。選択するリージョンは、Cloud KMS 鍵のロケーションと一致する必要があります。

    4. [暗号鍵を選択] で作成した鍵を選択します。

    5. [保存] をクリックします。

      データ暗号化プロセスが完了するまでに時間がかかります。プロセスが完了すると、Data Encryption is complete. Your selected CMEK key is now protecting your data. というメッセージが表示されます。

    gcloud

    1. Dataplex Universal Catalog で暗号化構成を設定します。

      gcloud dataplex encryption-config create default \
          --location=LOCATION \
          --organization=ORG_ID \
          --key=KEY_RESOURCE_ID
      

      次のように置き換えます。

      • ORG_ID: 鍵が含まれているプロジェクトの ID。
      • KEY_RESOURCE_ID: 鍵リソース ID(例: projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME)。PROJECT_ID は、鍵プロジェクト ID に置き換えます。

    2. 暗号化プロセスが完了していることを確認します。

      gcloud dataplex encryption-config describe default \
          --location=LOCATION \
          --organization=ORG_ID
      

    データ暗号化プロセスが完了するまでに時間がかかります。プロセスが完了すると、encryptionState: COMPLETED というメッセージが表示されます。

ロギングとモニタリング

Cloud KMS API の監査ロギングを有効にして、Cloud KMS への Dataplex Universal Catalog リクエストを監査します。

CMEK の組織のポリシー

Google Cloud には、CMEK の使用を適用し、組織内で許可される Cloud KMS 鍵を制御する組織のポリシーの制約があります。これらの制約により、Dataplex Universal Catalog 内のデータを CMEK で常に保護できます。

  • constraints/gcp.restrictNonCmekServices は、Dataplex Universal Catalog リソースに CMEK の使用を必須にします。

    • Google Cloud サービス名のリストに dataplex.googleapis.com を追加し、制約を Deny に設定すると、CMEK 保護のない Dataplex Universal Catalog リソースの作成が禁止されます。

    • CMEK 暗号化設定でリクエストされたロケーションに Cloud KMS 鍵が指定されていない場合、Dataplex Universal Catalog 内でリソースを作成するリクエストは失敗します。

    • このポリシーは、個々のリソース プロジェクト レベルで検証されます。

  • constraints/gcp.restrictCmekCryptoKeyProjects は、CMEK の Cloud KMS 鍵の選択を指定されたリソース階層に制限します。

    • リソース階層インジケーター(プロジェクト、フォルダ、組織)のリストを構成し、制約を Allow に設定すると、Dataplex Universal Catalog は指定されたロケーションの CMEK 鍵のみを使用できるようになります。

    • 許可されていないプロジェクトの Cloud KMS 鍵が指定されている場合、Dataplex Universal Catalog で CMEK で保護されたリソースを作成するリクエストは失敗します。

    • このポリシーは、リソースの作成時にリソース プロジェクト レベルで検証されます。

    • このポリシーは、CMEK 暗号化設定を構成するときに組織レベルで検証されます。

    • 不整合を防ぐには、プロジェクト レベルの構成が組織全体のポリシーと一致していることを確認してください。

組織のポリシーの構成について詳しくは、CMEK の組織のポリシーをご覧ください。

次のステップ

  • CMEK の詳細を学習する。