Azure Cosmos DB のセキュリティに関する考慮事項
データのセキュリティは、顧客自身とデータベース プロバイダーの共同責任です。 顧客として選択したデータベース プロバイダーによって、引き受ける責任の範囲は変化する可能性があります。 オンプレミス ソリューションを選択する場合、エンドポイントの保護からハードウェアの物理的なセキュリティに至るまでのすべてを自分で提供する必要がありますが、これは簡単な仕事ではありません。 Azure Cosmos DB などのサービスとしてのプラットフォーム (Paas) クラウド データベース プロバイダーを選択する場合、自分が関与する領域は大幅に減ります。
詳細については、「クラウドにおける共同責任」を参照してください。
チェック リスト
次の要件のチェックリストを使用して、データベース システムを比較することをお勧めします。
- ネットワークのセキュリティとファイアウォールの設定
- ユーザー認証ときめ細かいユーザー制御
- 局地的な障害に対応するためにデータをグローバルにレプリケートする能力
- あるデータセンターから別のデータセンターにフェールオーバーする能力
- データセンター内でのローカルなデータのレプリケーション
- データの自動バックアップ
- バックアップから削除されたデータの復元
- 機密データを保護し分離する機能
- 攻撃の監視
- 攻撃に対する組み込みの応答
- データ ガバナンス制約に対してデータをジオフェンスで準拠させる能力
- 保護されたデータセンター内でのサーバーの物理的な保護
- 認定資格
これは自明なことに思われるかもしれませんが、最近発生した大規模なデータベース侵害は、以下の単純ながらも重要な要件を思い出させてくれます。
- 修正プログラムの適用によって常に最新の状態が維持されるサーバー
- 既定/TLS 暗号化による HTTPS
- 強力なパスワードを持つ管理者アカウント
Azure Cosmos DB がデータベースをセキュリティで保護する方法
Azure Cosmos DB では、サービスと Azure に多くの機能が組み込まれているため、データベースは既定でセキュリティ保護されます。
セキュリティ要件 | Azure Cosmos DB のセキュリティ手法 |
---|---|
ネットワークのセキュリティ | IP ファイアウォールの使用は、データベースをセキュリティ保護するための第 1 の保護層です。 Azure Cosmos DB は、受信ファイアウォールのサポートとして、ポリシーに基づく IP ベースのアクセス制御をサポートしています。 IP ベースのアクセス制御は、従来のデータベース システムで使用されているファイアウォール規則に似ています。 ただし、Azure Cosmos DB のデータベース アカウントは、承認されたマシンのセットまたはクラウド サービスからのみアクセスできるように拡張されています。 詳細については、「Azure Cosmos DB のファイアウォール サポート」を参照してください。 Azure Cosmos DB では、特定の IP アドレス (168.61.48.0)、IP 範囲 (168.61.48.0/8)、および IP と範囲の組み合わせを有効にできます。 Azure Cosmos DB は、この許可リスト外のマシンからやってくるすべての要求をブロックします。 承認されたコンピューターとクラウド サービスから送信された要求がリソースへのアクセス権を取得するには、認証プロセスを完了する必要があります。 仮想ネットワーク サービス タグを使用して、ネットワークの分離を実現し、一般のインターネットから Azure Cosmos DB リソースを保護できます。 セキュリティ規則を作成するときに、特定の IP アドレスの代わりにサービス タグを使用します。 規則の適切なソース フィールドまたは宛先フィールドでサービス タグ名 (例: AzureCosmosDB ) を指定することで、対応するサービスのトラフィックを許可または拒否できます。 |
承認 | Azure Cosmos DB は、承認のためにハッシュ ベースのメッセージ認証コード (HMAC) を使用します。 各要求は、シークレット アカウント キーを使用してハッシュされ、その後の base 64 エンコード ハッシュは Azure Cosmos DB の呼び出しと一緒に送信されます。 Azure Cosmos DB は、要求を検証するために、適切なシークレット キーとプロパティを使用してハッシュを生成した後、その値と要求に含まれる値を比較します。 2 つの値が一致した場合、操作の承認が成功し、要求が処理されます。 一致しない場合、承認は失敗し、要求は拒否されます。 主キーを使用することで、ドキュメントなどのリソースに対する粒度の細かいアクセスを実現できます。 詳細については、「Azure Cosmos DB リソースへのアクセスのセキュリティ保護」を参照してください。 |
ユーザーおよびアクセス許可 | アカウントのプライマリ キーを使用することで、ユーザー リソースとアクセス許可リソースをデータベースごとに作成できます。 リソース トークンは、データベース内のアクセス許可に関連付けられ、ユーザーがデータベース内のアプリケーション リソースにどのようにアクセスできるか (読み取り/書き込み、読み取り専用、またはアクセスなし) を判断します。 アプリケーション リソースには、コンテナー、ドキュメント、添付ファイル、ストアド プロシージャ、トリガー、ユーザー定義関数 (UDF) が含まれます。 リソース トークンは認証中に使用され、リソースへのアクセスが提供されるか拒否されます。 詳細については、「Azure Cosmos DB リソースへのアクセスのセキュリティ保護」を参照してください。 |
Active Directory 統合 (Azure ロールベースのアクセス制御) | Azure portal でアクセスの制御 (IAM) を使用することで、Azure Cosmos DB アカウント、データベース、コンテナー、およびオファー (スループット) へのアクセスを提供または制限することもできます。 IAM は ロールベースのアクセス制御を提供し、Active Directory と統合されています。 組み込みのロールまたはカスタム ロールは、個人とグループに使用できます。 |
グローバル レプリケーション | Azure Cosmos DB は、ターンキー方式で世界中にある Azure のデータセンターのいずれかにデータをレプリケートできるようにするターンキー グローバル分散を提供しています。 グローバル レプリケーションでは、グローバルなスケールを行い、全世界のデータに低待機時間でアクセスすることができます。 セキュリティの点では、グローバル レプリケーションは、局地的な障害からデータが保護されることを保証します。 詳細については、「データのグローバル分散」を参照してください。 |
リージョン間フェールオーバー | 複数のデータセンターへのデータのレプリケーションが完了している場合、あるリージョンのデータセンターがオフラインになった場合、Azure Cosmos DB は自動的に操作をロールオーバーします。 データをレプリケートするリージョンを使用して、フェールオーバー リージョンの優先度リストを作成できます。 詳細については、「Azure Cosmos DB のリージョン内フェールオーバー」を参照してください。 |
ローカル レプリケーション | Azure Cosmos DB は、単一のデータセンター内でも、高可用性のためにデータを自動的にレプリケートし、整合性レベルは自分で選択できます。 このレプリケーションによって、すべての単一リージョン アカウントと緩やかな整合性を持つすべての複数リージョン アカウントに対する 99.99% の可用性のサービス レベル アグリーメント (SLA)、およびすべての複数リージョン データベース アカウントに対する 99.999% の読み取り可用性が保証されます。 |
オンライン バックアップの自動化 | Azure Cosmos DB データベースは定期的にバックアップされ、geo 冗長ストアに保存されます。 詳細については、「Azure Cosmos DB での自動オンライン バックアップと復元」を参照してください。 |
削除されたデータの復元 | 誤ってデータを削除した場合、30 日以内であれば自動オンライン バックアップを使用してデータを復元することができます。 詳細については、「Azure Cosmos DB での自動オンライン バックアップと復元」を参照してください。 |
機密データの保護と分離 | 「新機能」に示されているリージョンのすべてのデータが保存時に暗号化されます。 個人データと他の機密データをそれぞれ特定のコンテナーへと分離して、読み取り/書き込みまたは読み取り専用アクセスを特定のユーザーに限定することができます。 |
攻撃の監視 | 監査ログとアクティビティ ログを使用すると、アカウントの正常なアクティビティと異常なアクティビティを監視できます。 リソースに対して実行された操作を表示できます。 このデータには、操作を開始した人物、操作が発生したタイミング、操作の状態などが含まれます。 |
攻撃への対応 | Azure サポートに連絡し、攻撃の可能性を報告した後、5 段階のインシデント対応プロセスが開始されます。 目標は、通常サービスのセキュリティと運用を復元することです。 このプロセスは、問題が検出され調査が開始された後、可能な限り早急にサービスを復元します。 詳細については、「Microsoft Azure のクラウドのセキュリティ対応」を参照してください。 |
ジオフェンス | Azure Cosmos DB は、ソブリン リージョン (ドイツ、中国、米国政府など) のデータ ガバナンスを保証します。 |
施設の保護 | Azure Cosmos DB 内のデータは、Azure の保護されたデータセンター内のソリッド ステート ドライブに保存されます。 詳細については、「Microsoft グローバル データセンター」を参照してください。 |
HTTPS と TLS 暗号化 | Azure Cosmos DB へのすべての接続で HTTPS がサポートされます。 Azure Cosmos DB では、最大 1.2 (含まれる) のトランスポート層セキュリティ (TLS) レベルがサポートされています。 サーバー側で最低限の TLS レベルを強制することが可能です。 これを行うには、セルフサービス ガイドの「Azure Cosmos DB における最小 TLS バージョンの強制のセルフサービス」を参照してください。 |
保存時の暗号化 | Azure Cosmos DB 内のすべての格納データは、保存時に暗号化されます。 「Azure Cosmos DB の保存時の暗号化」で詳細を確認してください。 |
サーバーへの修正プログラムの適用 | マネージド データベースとして、Azure Cosmos DB は自動的にサーバーの修正プログラムを適用し管理するため、手動のメンテナンス タスクは不要になります。 |
強力なパスワードを持つ管理者アカウント | Azure Cosmos DB にパスワードのない管理アカウントを作成することは不可能です。 TLS と HMAC シークレットベース認証を介したセキュリティは、既定で組み込まれています。 |
セキュリティとデータ保護の認証 | 認定資格の最新リストについては、Azure Cosmos DB を含むすべての Azure 認定資格が記載された「Azure コンプライアンス」と「Azure コンプライアンス ドキュメント」を参照してください。 |