顧客管理の暗号鍵(CMEK)
デフォルトでは、MongoDB 互換性のある Firestore に保存されるすべてのデータは Google のデフォルトの暗号化を使用して暗号化されます。MongoDB 互換の Firestore はこの暗号化を自動的に処理および管理するため、ユーザー側での作業は必要ありません。
データを保護する鍵について特定のコンプライアンスや規制の要件がある場合は、MongoDB 互換性のある Firestore に顧客管理の暗号鍵(CMEK)を使用できます。Google がデータを保護する暗号鍵を管理するのではなく、ユーザーが Cloud Key Management Service(Cloud KMS)で制御、管理する鍵を使用して、MongoDB 互換性のある Firestore データベースを保護します。
このページでは、MongoDB 互換の Firestore の CMEK について説明します。CMEK の一般的な用途や使用する理由などの詳細については、Cloud KMS のドキュメントをご覧ください。
MongoDB 互換の Firestore で CMEK 関連のタスクを実行する手順については、CMEK を使用するをご覧ください。
機能
- データ管理: CMEK を使用すると、KMS 鍵を管理できます。MongoDB 互換の Firestore のデータベースの保存データの暗号化に使用する鍵をローテーション、無効化、破棄できます。
- パフォーマンス: CMEK は Firestore SLA に影響しません。
- 監査可能性: Cloud KMS の監査ロギングを有効にすると、鍵に対するすべてのオペレーションは Cloud Logging で記録され、表示されます。
- 組織のポリシーの制約: CMEK の組織のポリシーの制約を使用して、組織内の MongoDB 互換の Firestore のデータベースの暗号化コンプライアンス要件を指定できます。
料金
Cloud KMS では、鍵と、その鍵を使用して実行される暗号オペレーションの費用について課金されます。詳細については、Cloud KMS の料金をご覧ください。
Firestore(MongoDB 互換)で暗号化または復号オペレーションを実行するように Cloud KMS 鍵に要求した場合、そのオペレーションに対して課金されます。顧客管理の鍵による暗号化/復号オペレーションは 5 分ごとに行われ、データベース リクエストと同期されません。MongoDB 互換の Firestore によって生成される暗号化オペレーションの想定数を考慮すると、通常は費用は低くなります。Cloud Audit Logs の費用は追加費用となりますが、暗号オペレーションの想定数を考慮すると、通常は低くなると予想されます。
CMEK で保護されたデータベースの使用に対して、MongoDB 互換の Firestore に追加費用はかからず、MongoDB 互換の Firestore の料金は引き続き適用されます。
データベースへの鍵を取り消した場合、ストレージ費用は、鍵が使用可能だった最終日のサイズに基づいて請求されます。データベースが削除されるか、鍵が再び使用可能になるまで、そのデータベース サイズでストレージ費用が引き続き発生します。
CMEK による保護対象
MongoDB 互換性のある Firestore CMEK で保護されたデータベースを作成すると、Cloud KMS 鍵が保存データを保護するために使用されます。これには、インデックスやバックアップなど、ディスクまたはフラッシュ ドライブに保存するデータが含まれます。以下の例外が適用されます。次のデータ型は、CMEK 鍵ではなく、Google のデフォルトの暗号化によって暗号化されます。
- 転送中のデータやメモリ内データ
- データベースのメタデータ
使用できない鍵のステータスの処理方法
暗号化と復号のオペレーションは、すべてのデータ リクエストで発行されるわけではありません。代わりに、MongoDB 互換の Firestore システムは 5 分ごとに Cloud KMS をポーリングして、鍵がまだ使用可能かどうかを確認し、鍵が使用可能であれば暗号化と復号のオペレーションを行います。
鍵が使用できないことをシステムが検出すると、10 分以内に、読み取り、書き込み、クエリなど、MongoDB 互換の Firestore データベースに対する後続の呼び出しは、次のメッセージを含む INVALID_ARGUMENT
エラーを返します。
The customer-managed encryption key required by the requested
resource is not accessible.
データベースに有効期間(TTL)ポリシーがあり、鍵が使用できない間に有効期限を超過した場合は、TTL によるデータ削除 は、鍵が復元されるまで遅延します。データベースで長時間実行オペレーションが進行中の場合、次のような影響を受けます。
- インデックス作成オペレーションと、新しい TTL ポリシーの有効化オペレーションは、進行を停止します。鍵が復元されると、停止したオペレーションは再試行されます。
MongoDB 互換の Firestore が鍵にアクセスすることを意図的に禁止している状況では、鍵は使用できないとみなされます。以下に例を示します。
- 使用中の鍵バージョンの無効化または破棄。鍵バージョンを破棄する際は、復元できないデータ損失を引き起こす可能性があるため、注意してください。
- Firestore(MongoDB 互換)サービス アカウントから鍵にアクセスするための権限の削除。
鍵が復元されると、ポーリング オペレーションは鍵が再び使用可能になったことを検出します。アクセスは通常は数分以内に再び有効になりますが、まれに数時間かかる場合があります。鍵の無効化や破棄など、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 で保護された MongoDB 互換の Firestore データベースがバックアップを作成すると、バックアップの作成時に使用された主キー バージョンでバックアップが暗号化されます。
MongoDB 互換の Firestore は、バックアップ スケジュールを有効にしてから 24 時間後に CMEK データベースの最初のバックアップを作成します。
MongoDB 互換の Firestore のバックアップの詳細については、データをバックアップして復元するをご覧ください。
バックアップから復元されたデータベースでは、デフォルトでバックアップと同じ暗号化メカニズムが使用されます。データベースを復元するときに、次のいずれかの方法で別の暗号化タイプを指定できます。
- 新しく指定した鍵を使用して CMEK データベースに復元する。
- Google のデフォルトの暗号化を使用する CMEK 以外のデータベースに復元する。
- バックアップと同じ暗号化を使用するデータベースに復元する。
バックアップから MongoDB 互換の Firestore データベースを復元する方法の詳細については、データベースのバックアップからデータを復元するをご覧ください。バックアップから CMEK で保護された MongoDB 互換性データベースを使用して Firestore を復元する方法の詳細については、CMEK で保護されたデータベースを復元するをご覧ください。
クローンを作成
デフォルトでは、別のデータベースからクローン作成されたデータベースは、ソース データベースと同じ暗号化メカニズムを使用します。データベースのクローンを作成するときに、次のいずれかの方法で別の暗号化タイプを指定できます。
- 新しく指定した鍵を使用して CMEK データベースにクローニングする。
- Google のデフォルトの暗号化を使用する CMEK 以外のデータベースにクローニングする。
- (デフォルト)ソース データベースと同じ暗号化を使用するデータベースにクローンを作成する。
MongoDB 互換の Firestore データベースのクローン作成の詳細については、データベースのクローンを作成するをご覧ください。MongoDB 互換性のある CMEK で保護された Firestore データベースのクローン作成の詳細については、CMEK で保護されたデータベースのクローンを作成するをご覧ください。
鍵のトラッキング
鍵のトラッキングを使用すると、鍵が保護するリソース(MongoDB 互換の Firestore データベースなど)を表示できます。鍵のトラッキングの詳細については、鍵の使用状況を表示するをご覧ください。
CMEK と鍵の可用性
鍵が使用できない場合や無効になっている場合は、CMEK 対応データベースで次の動作が発生する可能性があることに注意してください。
使用できない鍵がある CMEK データベースは削除できます。
CMEK 対応データベースを作成すると、無効な鍵は Google Cloud コンソールの使用可能な鍵のリストに表示されません。無効な鍵を手動で入力すると、データベースの作成プロセスが失敗し、
INVALID_ARGUMENT
エラー 400 が表示されます。
制限事項
CMEK で保護されているデータベースの鍵を変更することはできません。キーのローテーション、有効化、無効化を行うことができます。
既存のデータベースでは CMEK を有効にできません。CMEK は新しいデータベースでのみ有効にできます。また、新しいデータベースの作成時に有効にする必要があります。既存の非 CMEK データベースのデータを CMEK で保護されたデータベースに移行するには、データをエクスポートしてから、CMEK で保護された新しいデータベースにデータをインポートします。非 CMEK データベースから CMEK データベースにデータを復元またはクローニングすることもできます。
Firestore は、限られた数の CMEK で保護されたデータベースをサポートします。