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 とアクセス許可を管理するための 1 つのツール スイートがあります。
認証コードを効率化する
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 認証を有効にする方法を一度学習すると、その手法はすべてのシナリオで共通になります。 環境ごとに個別の認証スタックを構築する必要はありません。