Azure Cosmos DB for Table のセキュリティ ガイダンス
適用対象: Gremlin
次の場所を含むデプロイ ガイドのシーケンスの図: 概要、概念、準備、ロールベースのアクセス制御、ネットワーク、リファレンス。 現在は、"概要" の場所が強調表示されています。
Azure Cosmos DB for Table を使用する場合は、意図しないアクセスや未承認のアクセスを防ぎながら、許可されているユーザーとアプリケーションがデータにアクセスできるようにすることが重要です。
キーとリソース所有者のパスワード資格情報の使用は便利なオプションのように思えますが、いくつかの理由により推奨されません。 まず、これらの方法には、Microsoft Entra 認証によって提供される堅牢性と柔軟性が欠けています。 Microsoft Entra は、多要素認証や条件付きアクセス ポリシーなどの強化されたセキュリティ機能を提供しており、これは未承認アクセスのリスクを大幅に軽減します。 Microsoft Entra を使用すると、アプリケーションのセキュリティ態勢を大幅に強化し、潜在的な脅威から機密データを保護することができます。
アクセスを管理する
Microsoft Entra を使用したロールベースのアクセス制御では、どのユーザー、デバイス、またはワークロードがデータにアクセスできるか、およびそのデータにどの程度までアクセスできるかを管理できます。 ロールの定義内で詳細に設定されたアクセス許可を使用すると、開発におけるデータ アクセスをシンプルかつ効率的に保ちながら、"最小限の特権" を持つセキュリティ プリンシパルを柔軟に適用できます。
運用環境でアクセス権を付与する
運用アプリケーションにおいて、Microsoft Entra は多数の種類の ID を提供しています。これには以下が含まれますが、これに限定されるわけではありません。
- 特定のアプリケーション ワークロード用のワークロード ID
- Azure サービスにネイティブなシステム割り当てマネージド ID
- 複数の Azure サービス間で柔軟に再利用できるユーザー割り当てマネージド ID
- カスタム シナリオおよびより高度なシナリオ用のサービス プリンシパル
- エッジ ワークロード用のデバイス ID
これらの ID を使用すると、特定の運用アプリケーションやワークロードに、Azure Cosmos DB 内のリソースのクエリ、読み取り、操作を実行するための詳細に設定されたアクセス権を付与できます。
開発環境でアクセス権を付与する
開発環境において、Microsoft Entra は開発者の人間の ID に対して同じレベルの柔軟性を提供しています。 同じロールベースのアクセス制御の定義と割り当て手法を使用することで、テスト、ステージング、または開発のデータベース アカウントへのアクセス権を開発者に付与できます。
セキュリティ チームには、すべての環境にわたってアカウントの ID とアクセス許可を管理する単一のツール スイートがあります。
認証コードを効率化する
Azure SDK において、以下のようなさまざまなシナリオで Azure Cosmos DB データにプログラムからアクセスするために、この手法が使用されます。
- アプリケーションが開発環境または運用環境にある場合
- 人間、ワークロード、マネージド、またはデバイスの ID を使用している場合
- チームが Azure CLI、Azure PowerShell、Azure Developer CLI、Visual Studio、または Visual Studio Code の使用を好む場合
- チームが Python、JavaScript、TypeScript、.NET、Go、または Java を使用している場合
Azure SDK には、多くのプラットフォーム、開発言語、認証手法と互換性のある ID ライブラリが用意されています。 Microsoft Entra 認証を有効にする方法を一度学習すると、同じ手法がすべてのシナリオで使用できます。 環境ごとに個別の認証スタックを構築する必要はありません。