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