Azure ロールの割り当て条件を使用してキューへのアクセスを承認する
属性ベースのアクセス制御 (ABAC) は、セキュリティ プリンシパル、リソース、環境、および要求自体などのアクセス要求に関連付けられた属性に基づいてアクセス レベルを定義する承認戦略です。 ABAC を使用すると、Azure ロールの割り当て条件の属性に基づいてセキュリティ プリンシパルにリソースへのアクセス権を付与できます。
重要
Azure 属性ベースのアクセス制御 (Azure ABAC) は、ストレージ アカウントの Standard と Premium 両方のパフォーマンス レベルで、request
、resource
、environment
、principal
を使用して Azure Blob Storage、Azure Data Lake Storage Gen2、Azure キューへのアクセスを制御するために一般提供 (GA) されています。 現在、コンテナー メタデータ リソース属性とリスト BLOB インクルード要求属性はプレビュー段階です。 Azure Storage の ABAC の完全な機能状態情報については、「Azure Storage の条件機能の状態」を参照してください。
ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
Azure Storage での条件の概要
Microsoft Entra ID (Microsoft Entra ID) を使い、Azure RBAC を使って Azure Storage リソースへの要求を認可できます。 Azure RBAC を使用すると、ロールの定義とロールの割り当てを使用して、リソースにアクセスできるユーザーと、それらのリソースで実行できる操作を定義することで、リソースへのアクセスを管理できます。 Azure Storage データへのアクセスに使用される一般的なアクセス許可セットを含む一連の Azure 組み込みロールは、Azure Storage によって定義されます。 選択したアクセス許可セットを使用してカスタム ロールを定義することもできます。 Azure Storage では、ストレージ アカウントと BLOB コンテナーまたはキューの両方に対するロールの割り当てがサポートされます。
Azure ABAC は、特定のアクションのコンテキストにおけるロールの割り当て条件を追加することで、Azure RBAC を基盤として構築されています。 "ロールの割り当て条件" は、ストレージ リソースに対するアクションが認可されると評価される追加の検査です。 この条件は、次のいずれかに関連付けられている属性を使用して述語として表されます。
- 認可を要求しているセキュリティ プリンシパル
- アクセス権が要求されているリソース
- 要求のパラメーター
- 要求の発信元となる環境
ロールの割り当て条件を使用する利点は次のとおりです。
- リソースへの詳細なアクセスを有効にする - たとえば、特定のキュー内のピーク メッセージへのアクセス権をユーザーに付与する場合は、ピーク メッセージ DataAction とキュー名ストレージ属性を使用できます。
- 作成および管理する必要があるロールの割り当ての数を減らす - これを行うには、セキュリティ グループに対して一般化されたロールの割り当てを使用してから、アクセスされる特定のリソース (キューなど) の属性をプリンシパルの属性と一致させる条件を使用して、グループの個々のメンバーのアクセスを制限します。
- ビジネスの意味を持つ属性の観点からアクセス制御ルールを表現する - たとえば、プロジェクト名、ビジネス アプリケーション、組織の機能、または分類レベルを表す属性を使用して、条件を表現できます。
条件を使用する場合のトレードオフは、組織全体で属性を使用するときに構造化された一貫性のある分類が必要になるという点です。 アクセスが侵害されるのを防ぐために、属性を保護する必要があります。 また、条件は慎重に設計し、その効果を確認する必要があります。
サポートされる属性と操作
DataActions のロールの割り当ての条件を構成して、これらのゴールを達成できます。 カスタム役割で条件を使用したり、組み込みロールを選択したりすることができます。 ストレージ リソース プロバイダーを介した管理アクションでは条件はサポートされていません。
組み込みロールまたはカスタム ロールに条件を追加できます。 ロールの割り当て条件を使用できる組み込みロールは次のとおりです。
条件をサポートするアクションがロールに含まれる限り、カスタム役割で条件を使用できます。
Azure ロールの割り当て条件の形式では、条件で @Principal
、@Resource
、または @Request
属性を使用できます。 @Principal
属性は、ユーザー、エンタープライズ アプリケーション (サービス プリンシパル)、マネージド ID などのプリンシパルにあるカスタム セキュリティ属性です。 @Resource
属性では、アクセスされているストレージ リソースの既存の属性 (ストレージ アカウントまたはキューなど) を参照します。 @Request
属性では、ストレージ操作要求に含まれる属性またはパラメーターを参照します。
Azure RBAC では現在、サブスクリプションで 2,000 のロールの割り当てがサポートされています。 何千もの Azure ロールの割り当てを作成する必要がある場合は、この制限を受ける可能性があります。 数百または数千のロールの割り当てを管理するのは困難な可能性があります。 場合によっては、条件を使用して、ストレージ アカウントでのロールの割り当ての数を減らし、管理しやすくすることができます。 プリンシパルに条件と Microsoft Entra のカスタム セキュリティ属性を使って、ロールの割り当ての管理をスケーリングすることができます。
次のステップ
- Azure ロールの割り当て条件の前提条件
- Azure Storage 内での Azure のロールの割り当て条件のアクションと属性
- Azure のロールの割り当て条件の例
- Azure ロール割り当ての条件のトラブルシューティング