属性ベースのアクセス制御 (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 ストレージ リソースへの要求を承認できます。 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 ロール割り当ての条件のトラブルシューティング