このドキュメントでは、顧客管理の暗号鍵(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 で利用できる外部管理鍵を使用できます。
鍵を管理する Google Cloud プロジェクトで、次の操作を行います。
使用するロケーションに Cloud KMS キーリングを作成します。
次のいずれかのオプションを使用して鍵を作成します。
- Cloud KMS 鍵を作成します。
- 外部鍵を作成します。
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
です。Dataplex Universal Catalog サービス アカウントに CryptoKey の暗号化 / 復号 IAM ロール(
roles/cloudkms.cryptoKeyEncrypterDecrypter
)を付与します。作成した鍵にこの権限を付与します。コンソール
[鍵管理] ページに移動します。
キーリングをクリックします。
使用可能な鍵のリストで、作成した鍵をクリックします。
[権限] タブをクリックします。
[アクセス権を付与] をクリックします。
表示された [アクセス権を付与] ペインで、次の手順に沿って Dataplex Universal Catalog サービス アカウントへのアクセス権を付与します。
- [プリンシパルを追加] に、サービス アカウント
service-org-ORG_ID@gcp-sa-dataplex.iam.gserviceaccount.com
を入力します。 - [ロールを割り当てる] で、Cloud KMS CryptoKey Encrypter/Decrypter ロールを選択します。
- [保存] をクリックします。
- [プリンシパルを追加] に、サービス アカウント
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。
自分に Dataplex 暗号化管理者ロールを割り当てます。
コンソール
手順に沿ってIAM ロールを付与します。
gcloud
gcloud organizations add-iam-policy-binding ORG_ID \ --member='user:USER_EMAIL' \ --role='roles/dataplex.encryptionAdmin'
次のように置き換えます。
- ORG_ID: 鍵が含まれているプロジェクトの ID。
- USER_EMAIL: ユーザーのメールアドレス。
CMEK 鍵を使用するように Dataplex Universal Catalog を構成します。
コンソール
Google Cloud コンソールで Dataplex ページに移動します。
[設定] をクリックします。
[CMEK のリージョンを選択] でリージョンを選択します。選択するリージョンは、Cloud KMS 鍵のロケーションと一致する必要があります。
[暗号鍵を選択] で作成した鍵を選択します。
[保存] をクリックします。
データ暗号化プロセスが完了するまでに時間がかかります。プロセスが完了すると、
Data Encryption is complete. Your selected CMEK key is now protecting your data.
というメッセージが表示されます。
gcloud
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 に置き換えます。
暗号化プロセスが完了していることを確認します。
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 の詳細を学習する。