顧客管理の暗号鍵(CMEK)

デフォルトでは、MongoDB と互換性のある Firestore に保存されているすべてのデータは、Google のデフォルトの暗号化を使用して暗号化されます。MongoDB 互換の Firestore はこの暗号化を自動的に処理および管理するため、ユーザー側での作業は必要ありません。

データを保護する鍵について特定のコンプライアンス要件や規制要件がある場合は、MongoDB 互換の Firestore で顧客管理の暗号鍵(CMEK)を使用できます。Google がデータを保護する暗号鍵を管理するのではなく、ユーザーが Cloud Key Management Service(Cloud KMS)で制御、管理する鍵を使用して、Firestore データベースを保護します。

このページでは、MongoDB 互換の Firestore の CMEK について説明します。CMEK の一般的な用途や使用する理由などの詳細については、Cloud KMS のドキュメントをご覧ください。

MongoDB 互換の Firestore で CMEK 関連のタスクを実行する手順については、CMEK を使用するをご覧ください。

機能

  • データ管理: CMEK を使用すると、KMS 鍵を管理できます。Firestore データベースの保存データの暗号化に使用する鍵をローテーション、無効化、破棄できます。
  • パフォーマンス: CMEK は Firestore SLA に影響しません。
  • 監査可能性: Cloud KMS の監査ロギングを有効にすると、鍵に対するすべてのオペレーションは Cloud Logging で記録され、表示されます。
  • 組織のポリシーの制約: CMEK の組織のポリシーの制約を使用して、組織内の Firestore データベースの暗号化コンプライアンス要件を指定できます。

料金

Cloud KMS では、鍵と、その鍵を使用して実行される暗号オペレーションの費用について課金されます。詳細については、Cloud KMS の料金をご覧ください。

MongoDB 互換の Firestore で暗号化または復号オペレーションを実行するように Cloud KMS 鍵に要求した場合、そのオペレーションに対して課金されます。顧客管理の鍵による暗号化または復号オペレーションは 5 分ごとに行われ、データベース リクエストと同期されません。MongoDB 互換の Firestore によって生成される暗号化オペレーションの想定数を考慮すると、通常は費用は低くなります。Cloud Audit Logs の費用は追加の出費ですが、暗号オペレーションの数を考慮すると、通常は低くなると予想されます。

CMEK で保護されたデータベースの使用に対して、MongoDB 互換の Firestore に追加費用はかからず、MongoDB 互換の Firestore の料金は引き続き適用されます。

データベースへの鍵を取り消した場合、ストレージ料金は、鍵が使用可能だった最終日のサイズに基づいて課金されます。データベースが削除されるか、鍵が再び使用可能になるまで、そのデータベース サイズでストレージ費用が引き続き発生します。

CMEK による保護対象

MongoDB 互換の CMEK で保護された Firestore データベースを作成すると、Cloud KMS 鍵が保存データを保護するために使用されます。これには、インデックスやバックアップなど、ディスクまたはフラッシュ ドライブに保存するデータが含まれます。以下の例外が適用されます。次のデータ型は、CMEK 鍵ではなく、Google のデフォルトの暗号化で暗号化されます。

  • 転送中のデータやメモリ内データ
  • データベースのメタデータ

使用できない鍵のステータスの処理方法

暗号化と復号のオペレーションは、すべてのデータ リクエストで発行されるわけではありません。代わりに、MongoDB 互換の Firestore システムは 5 分ごとに Cloud KMS をポーリングして鍵がまだ使用可能かどうかを確認し、鍵が使用可能であれば暗号化と復号のオペレーションを行います。

鍵が使用できないことをシステムが検出すると、10 分以内に、読み取り、書き込み、クエリなど、Firestore データベースに対する後続の呼び出しは、The customer-managed encryption key required by the requested resource is not accessible メッセージを含む INVALID_ARGUMENT エラーを返します。

データベースに有効期間(TTL)ポリシーがあり、鍵が使用できない間に有効期限を超過した場合は、TTL によるデータ削除 は、鍵が復元されるまで遅延します。データベースで長時間実行オペレーションが進行中の場合、そのオペレーションは次のように影響を受けます。

MongoDB 互換の Firestore が鍵にアクセスすることを意図的に禁止している状況では、鍵は使用できないとみなされます。以下に例を示します。

鍵が復元されると、ポーリング オペレーションは鍵が再び使用可能であることを検出します。アクセスは通常は数分以内に再び有効になりますが、まれに数時間かかる場合があります。鍵の無効化や破棄など、Cloud KMS 鍵に対するオペレーションでは、伝搬に最大 3 時間かかる可能性がありことに留意してください。MongoDB 互換の Firestore では、Cloud KMS で変更が有効になるまで変更は検出されません。

鍵の復元では、状況に応じて次のことを伴います。

  • 無効になっている鍵バージョンの再有効化
  • 破棄した鍵バージョンの復元。永久に破棄される前に、鍵バージョンの破棄がスケジュールされています。鍵を復元できるのは、鍵バージョンの破棄がスケジュールされている期間のみです。すでに永久に破棄された鍵は復元できません。
  • Firestore サービス エージェントへの鍵にアクセスするための権限の再付与

鍵のローテーションに関する考慮事項

CMEK 鍵をローテーションすると、MongoDB 互換の Firestore は、最新のプライマリ バージョンの CMEK 鍵でデータベースを再暗号化します。再暗号化プロセス中は、以前の鍵バージョンと新しい鍵バージョンの両方を使用できるようにしてください。再暗号化が完了すると、データベースは新しいプライマリ キー バージョンで暗号化されるため、以前のバージョンの CMEK 鍵を無効にしたり削除したりしても、データベースへのアクセスが無効になることはありません。

データベースの保護に使用されている鍵のバージョンも表示できます。詳細については、使用中の鍵を表示するをご覧ください。

外部の主な考慮事項

Cloud EKM 鍵を使用する場合、Google は外部の鍵管理パートナー システム内の外部管理鍵の可用性をコントロールできません。

外部で管理されている鍵が使用できない場合、MongoDB 互換の Firestore は、鍵のキャッシュに保存されたバージョンを使用した完全なデータベース オペレーションを最大 1 時間サポートし続けます。

1 時間経過しても MongoDB 互換の Firestore が Cloud KMS に接続できない場合、MongoDB 互換の Firestore は保護対策としてデータベースをオフラインにする操作を開始します。データベースの呼び出しは、追加の詳細を含む INVALID_ARGUMENT エラーで失敗します。

外部鍵を使用する場合の考慮事項については、Cloud External Key Manager のドキュメントをご覧ください。

バックアップと復元

バックアップでは、作成元のデータベースと同じ暗号化メカニズムを使用します。CMEK で保護された Firestore データベースがバックアップを作成すると、バックアップの作成時に使用された主キー バージョンでバックアップが暗号化されます。

MongoDB 互換の Firestore では、バックアップ スケジュールを有効にした後 24 時間経過すると、CMEK データベースの最初のバックアップが作成されます。

MongoDB 互換の Firestore のバックアップの詳細については、データのバックアップと復元をご覧ください。

バックアップから復元されたデータベースは、デフォルトでバックアップと同じ暗号化メカニズムを使用します。データベースを復元するときに、次のいずれかの方法で別の暗号化タイプを指定できます。

  • 新しく指定した鍵を使用して CMEK データベースに復元します。
  • Google のデフォルトの暗号化を使用する CMEK 以外のデータベースに復元します。
  • バックアップと同じ暗号化を使用するデータベースに復元します。

バックアップから Firestore データベースを復元する方法の詳細については、データベースのバックアップからデータを復元するをご覧ください。バックアップから CMEK で保護された Firestore データベースを復元する方法の詳細については、CMEK で保護されたデータベースを復元するをご覧ください。

鍵のトラッキング

鍵のトラッキングを使用すると、鍵が保護するリソース(Firestore データベースなど)を表示できます。鍵のトラッキングの詳細については、鍵の使用状況を表示するをご覧ください。

CMEK と鍵の可用性

鍵が使用できない場合や無効になっている場合は、CMEK 対応データベースで発生する可能性のある次の動作に注意してください。

  • 使用できない鍵がある CMEK データベースは削除できます。
  • CMEK 対応データベースを作成する場合、無効な鍵は、 Google Cloud コンソールの使用可能な鍵のリストに表示されません。無効な鍵を手動で入力すると、データベースの作成プロセスが失敗し、INVALID_ARGUMENT エラー 400 が発生します。

制限事項

  • CMEK で保護されたデータベースの鍵を変更することはできません。キーのローテーション、有効化、無効化を行うことができます。

  • 既存のデータベースで CMEK を有効にできません。CMEK は新しいデータベースでのみ有効にできます。また、データベースの作成時に有効にする必要があります。既存の CMEK 以外のデータベースのデータを CMEK で保護されたデータベースに移行するには、データをエクスポートしてから、新しい CMEK で保護されたデータベースにデータをインポートします。CMEK 以外のデータベースから CMEK データベースにデータを復元することもできます。

  • Firestore は、CMEK で保護されたデータベースを限定数だけサポートします。

次のステップ