Azure Cosmos DB for MongoDB 仮想コアのデータベース セキュリティの概要
適用対象: MongoDB 仮想コア
この記事では、データベースのセキュリティに関するベスト プラクティスと、Azure Cosmos DB for MongoDB 仮想コアによって提供される主な機能について説明します。これは、データベース侵害の防止、検出、対応に役立ちます。
Azure Cosmos DB for MongoDB 仮想コア セキュリティの新機能
保存時の暗号化は、ほとんどの Azure リージョンの Azure Cosmos DB for MongoDB 仮想コアに格納されているドキュメントとバックアップで使用できるようになりました。 保存時の暗号化は、これらのリージョンの新規顧客と既存の顧客の両方に自動的に適用されます。 何も構成する必要はありません。 従来通り、保存時の暗号化によってデータが安全にセキュリティで保護されるメリットと同様にすばらしい待機時間、スループット、可用性、および機能を手に入れることができます。 Azure Cosmos DB for MongoDB 仮想コア クラスターに格納されているデータは、サービス マネージド キーを使用して Microsoft によって管理されるキーで自動的かつシームレスに暗号化されます。
データベースをセキュリティ保護する方法
データのセキュリティは、顧客自身とデータベース プロバイダーの共同責任です。 顧客として選択したデータベース プロバイダーによって、引き受ける責任の範囲は変化する可能性があります。 オンプレミス ソリューションを選択した場合、エンドポイントの保護からハードウェアの物理的なセキュリティに至るまでのすべてを顧客自身が提供する必要がありますが、これは簡単な仕事ではありません。 Azure Cosmos DB などの PaaS クラウド データベース プロバイダーを選択した場合、顧客が関与する範囲は大幅に縮小されます。 マイクロソフトの「Shared Responsibilities for Cloud Computing (クラウドコンピューティングの共同責任)」ホワイト ペーパーから借用した次の図は、Azure Cosmos DB のような PaaS プロバイダーを使用すると、顧客の責任がどのように減少するかを示しています。
上の図は高度なクラウドのセキュリティ コンポーネントを示していますが、具体的には、どのような項目をデータベース ソリューションのために考慮する必要があるでしょうか。 また、ソリューションを相互に比較するにはどうすればよいでしょうか。
次の要件のチェックリストを使用して、データベース システムを比較することをお勧めします。
- ネットワークのセキュリティとファイアウォールの設定
- ユーザー認証ときめ細かいユーザー制御
- 局地的な障害に対応するためにデータをグローバルにレプリケートする能力
- あるデータ センターから別のデータ センターにフェールオーバーする能力
- データ センター内でのローカルなデータのレプリケーション
- データの自動バックアップ
- バックアップから削除されたデータの復元
- 機密データの保護と分離
- 攻撃の監視
- 攻撃への対応
- データ ガバナンス制約に対してデータをジオフェンスで準拠させる能力
- 保護されたデータセンター内でのサーバーの物理的な保護
- 認定
さらに、最近発生した大規模なデータベース侵害は、次の単純ではあるが重要な要件を思い出させてくれます。
- 最新の状態に維持されている、修正プログラムが適用されたサーバー
- 既定/TLS 暗号化による HTTPS
- 強力なパスワードを持つ管理者アカウント
Azure Cosmos DB でデータベースがセキュリティ保護される方法
Azure Cosmos DB for MongoDB 仮想コアは、これらすべてのセキュリティ要件のそれぞれをシームレスに満たします。
各要件を掘り下げてみましょう。
セキュリティ要件 | Azure Cosmos DB のセキュリティ手法 |
---|---|
ネットワークのセキュリティ | 成熟した Private Link テクノロジを用いて実装されたプライベート アクセスを使用すると、Azure 仮想ネットワーク内のリソースのクラスターへのアクセスを提供できるようになります。 パブリック アクセスを使用すると、定義されたパブリック IP アドレスのセットからクラスターにアクセスできるようになります。 プライベートおよびパブリックのアクセスはいつでも、組み合わせて有効または無効にできます。 既定の構成: Azure Cosmos DB for MongoDB 仮想コア クラスターは、既定でロックダウン (厳格なセキュリティが設定) された状態で作成されます。 このクラスターへのアクセスを提供するには、ネットワーク設定を更新し、クラスターの作成中またはその後に、クラスターへのプライベートまたはパブリックのアクセスを有効にする必要があります。 プライベート アクセス: プライベート アクセスが有効になっている場合、Azure 仮想ネットワーク内からプライベートにクラスターへとアクセスするために、プライベート エンドポイントを作成できます。 プライベート エンドポイントは、指定された仮想ネットワークのサブネット内に作成されます。 完了すると、ローカルおよびグローバルの仮想ネットワーク ピアリング、プライベート オンプレミス環境へのアクセス、ネットワーク トラフィックのフィルター処理とルーティングなど、すべての Azure 仮想ネットワーク機能がクラスターに対して使用可能になります。 パブリック アクセス: IP ファイアウォールの使用は、データベースをセキュリティで保護するための最初の保護レイヤーです。 Azure Cosmos DB for MongoDB 仮想コアでは、受信ファイアウォールをサポートするためのポリシーに基づく IP ベースのアクセス制御がサポートされています。 IP ベースのアクセス制御は、従来のデータベース システムで使用されているファイアウォール規則に似ています。 しかし、Azure Cosmos DB for MongoDB 仮想コア クラスターには、承認された一連のマシンまたはクラウド サービスからのみアクセスできるように拡張されています。 この許可リストに含まれていないマシンから送信されたすべての要求は、Azure Cosmos DB for MongoDB 仮想コアによってブロックされます。 承認されたコンピューターとクラウド サービスから送信された要求がリソースへのアクセス権を取得するには、認証プロセスを完了する必要があります。 |
ローカル レプリケーション | Azure Cosmos DB for MongoDB 仮想コアは、1 つの Azure リージョン内であっても、ストレージ レベルにおいてデータをレプリケートし、各物理シャードの同期レプリカを常に透過的に 3 つ維持します。 HA 対応クラスターには、各プライマリおよびスタンバイの物理シャード ペアの間に、別のレプリケーション レイヤーがあります。 高可用性レプリケーションは同期されており、フェールオーバー時のデータ損失はゼロになります。そのため、単一 Azure リージョンのセットアップに対する月単位の可用性 SLA は 99.99% 保証されています。 |
グローバル レプリケーション | Azure Cosmos DB for MongoDB 仮想コアでは Azure リージョン間レプリケーションが提供されており、データを別の Azure リージョンにレプリケートできるようになります。 グローバル レプリケーションでは、グローバルなスケールを行い、全世界のデータに低待機時間でアクセスすることができます。 セキュリティのコンテキストにおいては、グローバル レプリケーションによって、Azure リージョンのまれな停止に対するデータ保護が確保されます。 Azure リージョン間レプリカ クラスターでは、データのコピーが常に別の Azure リージョン内に存在します。 別の Azure リージョン内のレプリカと高可用性を組み合わせることで、複数 Azure リージョンのセットアップに対する月単位の可用性 SLA は 99.995% で提供されています。 |
データベースの分離 | Azure Cosmos DB for MongoDB 仮想コア データベースは、独自の専用リソース上でホストされます。 つまり、各クラスターは、物理シャードと呼ばれる独自の専用ノードを、またはマルチ シャード構成での少数のノードを取得します。 各物理シャードには独自のコンピューティングがあり、リモート ストレージがアタッチされています。 クラスター間でインフラストラクチャは共有されず、データベースに対する物理的および論理的な分離の、追加のレイヤーが提供されます。 |
自動クラスター バックアップ | Azure Cosmos DB for MongoDB 仮想コア クラスターのバックアップは、クラスター作成時に有効になり、完全に自動化されており、無効にすることはできません。 35 日間のバックアップ保持期間内の、任意のタイムスタンプの時点へと復元できます。 |
"削除された" データの復元 | 誤って削除した可能性のあるデータは、その時点から 7 日以内であれば、自動オンライン バックアップを使用してクラスターから復旧できます。 |
HTTPS/SSL/TLS の暗号化 | Azure Cosmos DB for MongoDB 仮想コア クラスターとのすべてのネットワーク通信は暗号化されます。 MongoDB クライアント経由の接続のみが受け入れられ、暗号化は常に適用されます。 データが Azure Cosmos DB for MongoDB 仮想コアに書き込まれるたびに、転送中のデータは暗号化されます。 データ暗号化では、TLS レベル 1.3 までサポートされます。 |
保存時の暗号化 | すべてのバックアップを含め、Azure Cosmos DB for MongoDB 仮想コアのデータはディスク上で暗号化されます (一時ファイルを含む、)。 このサービスでは、Azure ストレージ暗号化に含まれる AES 256 ビット暗号が使用され、キーはシステムによって管理されます。 ストレージの暗号化は常にオンになっており、無効にできません。 |
攻撃の監視 | 監査ログとアクティビティ ログを使用すると、データベースの正常な、および異常なアクティビティを監視できます。 リソースに対して実行された操作を表示できます。 このデータには、操作を開始した人物、操作が発生したタイミング、操作の状態などが含まれます。 |
攻撃への対応 | Azure サポートに連絡して攻撃を受けた可能性についてレポートしたら、5 段階のインシデント対応プロセスが開始されます。 5 段階のプロセスの目標は、通常のサービスのセキュリティと操作を復元することです。 この 5 段階で、問題が検出され、調査が開始された後、サービスを可能な限り早急に復元することです。 「クラウドにおける共同責任」について詳細を確認してください。 |
施設の保護 | Azure Cosmos DB for MongoDB 仮想コア内のデータは、Azure の保護されたデータ センター内に保存されます。 詳細については、Microsoft グローバルデータセンターに関するページを参照してください。 |
サーバーへの修正プログラムの適用 | Azure Cosmos DB for MongoDB 仮想コアを使用すると、ソフトウェア更新およびクラスターへのパッチ適用を管理する必要はなく、自動的に行われます。 |
強力なパスワードを持つ管理者アカウント | 今でもこの要件について言及する必要があることは信じ難いことですが、一部の競合他社とは異なり、Azure Cosmos DB for MongoDB 仮想コアでは、パスワードを持たない管理アカウントは存在できません。 パスワードは 8 文字以上で、英大文字、英小文字、数字、英数字以外の文字を含める必要があります。 TLS のシークレット ベースの認証によるセキュリティは、既定で組み込まれています。 |
セカンダリ アカウント | さらに詳細なアクセスのために、クラスターのデータベースに対して読み取り/書き込み、または読み取り専用の特権があるセカンダリのユーザー アカウントを、クラスターに対して作成できます。 |
セキュリティとデータ保護の認証 | 認定資格の最新の一覧については、Azure Cosmos DB を含むすべての Azure 認定資格が記載された Azure コンプライアンス に関する最新の ドキュメント をご覧ください。 |
次のスクリーン ショットは、監査ログとアクティビティ ログを使用して自分のアカウントを監視する方法を示しています。
ネットワークのセキュリティ オプション
このセクションでは、クラスターに対して構成できるさまざまなネットワーク セキュリティ オプションについて概説します。 クラスターでパブリック アクセス オプションとプライベート アクセス オプションを組み合わせることができます。 ネットワーク構成設定はいつでも変更できます。
アクセス権なし
[アクセス権なし] は、パブリックまたはプライベート アクセスのクラスター プロビジョニング中にファイアウォール規則またはプライベート エンドポイントが作成されなかった場合に、新しく作成されたクラスターの既定のオプションになります。 この場合、Azure の内部でも外部でも、データベース ノードに接続できるコンピューターはありません。
ファイアウォールを使用したパブリック IP アクセス
パブリック アクセス オプションでは、パブリック IP アドレスがクラスターに割り当てられ、クラスターへのアクセスはファイアウォールによって保護されます。 クラスターのファイアウォール規則のいずれかでパブリック IP アドレスが指定されていない場合、その IP アドレスからの要求はファイアウォールによって拒否され、データベースに到達しません。
プライベート アクセス
プライベート アクセス オプションでは、クラスターのプライベート エンドポイントが作成されます。 このプライベート エンドポイントは、Azure 仮想ネットワーク (VNet) とその VNet 内のサブネットに関連付けられています。 プライベート エンドポイントを使用すると、関連付けられた仮想ネットワークおよびピアリングされた仮想ネットワーク上のホストが Azure Cosmos DB for MongoDB 仮想コア クラスターにアクセスできるようになります。
ファイアウォールの概要
Azure Cosmos DB for MongoDB 仮想コアでは、クラスターレベルのファイアウォールを使用して、アクセス許可を持つコンピューター (IP アドレス) を指定するまでは、クラスターへのすべてのアクセスを阻止します。 ファイアウォールは、各要求の送信元 IP アドレスに基づいてクラスターへのアクセス権を付与します。 ファイアウォールを構成するには、受け入れ可能な IP アドレスの範囲を指定するファイアウォール規則を作成します。
ファイアウォール規則を使用すると、クライアントはクラスターとその中のすべてのデータベースにアクセスできます。 クラスターレベルのファイアウォール規則は Azure portal で、または Azure CLI などの Azure ツールを使用したプログラムで構成できます。
既定では、ファイアウォールによってクラスターへのすべてのアクセスがブロックされます。 他のコンピューターからクラスターの使用を開始するには、そのクラスターへのアクセスを有効にために、クラスターレベルのファイアウォール規則を 1 つ以上指定する必要があります。 ファイアウォール規則を使用して、インターネットからのアクセスを許可する IP アドレス範囲を指定します。 ファイアウォール規則は、Azure portal Web サイト自体へのアクセスに影響しません。 インターネットおよび Azure からの接続の試行は、まずファイアウォールを通過してから、データベースに到達する必要があります。