Azure DocumentDB によって管理されるすべてのデータは、常に保存時に暗号化されます。 そのデータには、システムとユーザーのすべてのデータベース、一時ファイル、ログ、バックアップが含まれます。
サービスマネージド キー (SMK) またはカスタマー マネージド キー (CMK) を使用した保存時の暗号化
Azure DocumentDB では、保存時のデータ暗号化の 2 つのモード ( サービスマネージド キー (SMK) と カスタマー マネージド キー (CMK) がサポートされています。 サービスマネージド キーを使用したデータ暗号化は、Azure DocumentDB の既定のモードです。 このモードでは、データの暗号化に使用される暗号化キーがサービスによって自動的に管理されます。 このモードで暗号化を有効または管理するためのアクションを実行する必要はありません。
カスタマー マネージド キー モードでは、ユーザー独自の暗号化キーを使ってデータを暗号化できます。 カスタマー マネージド キーを指定すると、そのキーは、データを暗号化するキーへのアクセスを保護および制御するために使用されます。 カスタマー マネージド キーを使用すると、アクセス制御をより柔軟に管理できます。 独自の Azure Key Vault をデプロイし、Azure DocumentDB クラスターで使用される暗号化キーを格納するように構成する必要があります。
構成モードは、クラスターの作成時にのみ選択できます。 クラスターの有効期間中は、モードを別のものに変更することはできません。
データの暗号化を実現するために、Azure DocumentDB は 保存データに Azure Storage のサーバー側暗号化を使用します。 CMK の使用時は、Azure Storage サービスでのデータの暗号化と復号化のためのキーを、ユーザーが提供する必要があります。 これらのキーは、Azure Key Vault に格納する必要があります。
各モード (SMK または CMK) によって提供される利点
Azure DocumentDB の サービスマネージド キー を使用したデータ暗号化には、次の利点があります。
- このサービスは、データ アクセスを自動的かつ完全に制御します。
- このサービスは、キーのローテーションなど、キーのライフサイクルを自動的かつ完全に制御します。
- データ暗号化キーの管理を心配する必要はありません。
- サービスマネージド キーに基づくデータ暗号化は、ワークロードのパフォーマンスに悪影響を与えません。
- これにより、暗号化キーの管理 (通常のローテーションを含む) と、それらのキーへのアクセスに使用される ID の管理が簡素化されます。
Azure DocumentDB の カスタマー マネージド キー を使用したデータ暗号化には、次の利点があります。
- データ アクセスを完全に制御します。 キーを取り消して、データベースにアクセスできないようにすることができます。
- キーのライフ サイクルは、ユーザーが会社のポリシーに合わせて完全に制御します。
- すべての暗号キーを Azure Key Vault の独自のインスタンスで一元管理し、整理できます。
- カスタマー マネージド キーに基づくデータ暗号化は、ワークロードのパフォーマンスに悪影響を与えません。
- セキュリティ責任者、データベース管理者、およびシステム管理者の間での職務の分離を実装できます。
CMK の要件
カスタマー マネージド暗号化キーの使用時は、CMK が機能するために必要な適切に構成されたコンポーネントを維持する責任をユーザーがすべて負います。 そのため、ユーザーが独自の Azure Key Vault をデプロイして、ユーザー割り当てマネージド ID を提供する必要があります。 独自のキーを生成またはインポートする必要があります。 Azure DocumentDB がキーに対して必要なアクションを実行できるように、Key Vault に必要なアクセス許可を付与する必要があります。 Azure DocumentDB インスタンスがキーにアクセスできるように、キーを保持する Azure Key Vault のすべてのネットワークの側面を構成する必要があります。 キーへのアクセスを監査することもユーザーの責任です。
MonogDB クラスター用の Azure DocumentDB のカスタマー マネージド キーを構成すると、Azure Storage はアカウントのルート データ暗号化キー (DEK) を関連付けられたキー コンテナー内のカスタマー マネージド キーと共にラップします。 ルート暗号化キーの保護は変わりますが、Azure ストレージ アカウント内のデータは常に暗号化された状態を維持します。 データが暗号化されたままであることを保証するために、お客様側で必要となる追加のアクションはありません。 カスタマー マネージド キーによる保護はすぐに有効になります。
Azure Key Vault は、クラウドベースの外部キー管理システムです。 これは高可用性を備え、RSA 暗号化キーのためのスケーラブルで安全なストレージを提供します。 格納されているキーに直接アクセスすることはできませんが、認可されたエンティティに対する暗号化と解読のサービスが提供されます。 Key Vault では、キーの生成、インポート、またはオンプレミス HSM デバイスからの転送を行うことができます。
Azure DocumentDB のデータ暗号化構成の要件と推奨事項の一覧を次に示します。
キーボールト (Key Vault)
CMK のセットアップに使用されるキー コンテナーは、次の要件を満たしている必要があります。
- Key Vault と Azure DocumentDB は、同じ Microsoft Entra テナントに属している必要があります。
- 推奨事項: Key Vault の設定 [削除されたコンテナーを保持する日数] を "90 日" に設定します。 この構成設定は、キー コンテナーの作成時にのみ定義できます。 インスタンスの作成後、この設定を変更することはできません。
- キー コンテナーで
soft-delete機能を有効にすると、キーまたはキー コンテナー インスタンスが誤って削除された場合にデータ損失から保護するのに役立ちます。 キー コンテナーは、論理的に削除されたリソースを 90 日間保持します (その間にユーザーがそれを復旧または消去した場合を除きます)。 回復アクションと消去アクションには、キー コンテナー、ロールベースのアクセス制御 (RBAC) ロール、またはアクセス ポリシーのアクセス許可に関連付けられた独自のアクセス許可があります。 論理削除機能は、既定では有効です。 デプロイされてから長い時間が経っているキー コンテナーの場合、論理的な削除がまだ無効になっている可能性があります。 その場合は、オンにすることができます。 - 消去保護を有効にして、削除されたコンテナーとコンテナー オブジェクトに必須の保持期間を適用します。
- クラスターがキー コンテナー内の暗号化キーにアクセスできるようにネットワーク アクセスを構成します。 次のいずれかの構成オプションを使用します。
- [すべてのネットワークからのパブリック アクセスを許可する] により、インターネット上のすべてのホストがキー コンテナーにアクセスできるようになります。
- [パブリック アクセスを無効にする] と [信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する] を選択して、すべてのパブリック アクセスを無効にするが、クラスターがキー コンテナーにアクセスできるようにします。
暗号化キー
CMK 構成に選択された暗号化キーは、次の要件を満たしている必要があります。
- データ暗号化キーの暗号化に使用されるキーは、非対称の RSA または RSA-HSM のみです。 サポートされているキー サイズは、2,048、3,072、4,096 です。
- 推奨事項: セキュリティを強化するために 4,096 ビット キーを使います。
- キーのアクティブ化の日付と時刻 (設定する場合) は、過去の日付と時刻にする必要があります。 有効期限の日付と時刻 (設定する場合) は、後で指定する必要があります。
- キーは、"有効" 状態になっている必要があります。
- Azure Key Vault に既存のキーをインポートする場合は、サポートされているファイル形式 (
.pfx、.byok、または.backup) で提供します。
Permissions
Azure DocumentDB のユーザー割り当てマネージド ID に暗号化キーへのアクセス権を付与します。
- 推奨: Azure Key Vault は、RBAC アクセス許可モデルで構成し、マネージド ID に Key Vault Crypto Service Encryption User ロールを割り当てる必要があります。
-
レガシ: Azure Key Vault がアクセス ポリシーのアクセス許可モデルで構成されている場合は、マネージド ID に次のアクセス許可を付与します。
- get: キー コンテナー内のキーのプロパティと公開部分を取得します。
- list: キー コンテナーに格納されているキーの一覧を取得して反復処理します。
- wrapKey: データ暗号化キーを暗号化します。
- unwrapKey: データ暗号化キーを復号化します。
CMK キーバージョンの更新
Azure DocumentDB の CMK では、自動キー バージョン更新 (バージョンレス キーとも呼ばれます) がサポートされています。 Azure DocumentDB サービスは、新しいキー バージョンを自動的に取得し、データ暗号化キーを再暗号化します。 この機能は、Azure Key Vault の自動ローテーション機能と組み合わせることができます。
考慮事項
データ暗号化にカスタマー マネージド キーをお使いの場合は、以下の推奨事項に従って Key Vault を構成します。
- この不可欠なリソースが誤ってまたは許可なく削除されるのを防ぐには、キー コンテナーに Azure リソース ロックを設定します。
- Azure Key Vault の可用性と冗長性のオプションを確認して有効にします。
- キーの格納に使われる Azure Key Vault インスタンスでログとアラートを有効にします。 キー コンテナーが提供するログは、他のセキュリティ情報イベント管理 (SIEM) ツールに簡単に挿入できます。 Azure Monitor Logs は、既に統合されているサービスの一例です。
- キーの自動ローテーションを有効にします。 Azure DocumentDB サービスでは、選択したキーの最新バージョンが常に取得されます。
- [パブリック アクセスを無効にする] と [信頼された Microsoft サービスがこのファイアウォールをバイパスできるようにする] を選択して、Key Vault へのパブリック ネットワーク アクセスをロック ダウンします。
注
[パブリック アクセスを無効にする] と [信頼された Microsoft サービスがこのファイアウォールをバイパスできるようにする] を選択した後、ポータル経由でパブリック アクセスを使用して Key Vault を管理しようとすると、次のようなエラーが表示される場合があります: "ネットワーク アクセス制御が有効になりました。 このキー コンテナーにアクセスできるのは、許可されたネットワークだけです。" このエラーにより、カスタマー マネージド キーのセットアップ中にキーを提供したり、クラスター操作中に Key Vault からキーをフェッチしたりする機能が妨げられることはありません。
- 顧客が管理するキーのコピーを安全な場所に保管するか、第三者預託サービスに預託します。
- Key Vault でキーが生成される場合は、初めてキーを使う前にキーのバックアップを作成します。 バックアップは Key Vault にのみ復元できます。