共用方式為


使用 Azure 角色指派條件來授權佇列的存取

屬性型存取控制 (ABAC) 是一種授權策略,可根據與存取要求 (例如安全性主體、資源、環境和要求本身) 相關聯的屬性來定義存取層級。 透過 ABAC,您可以根據 Azure 角色指派條件以授與安全性主體對資源的存取權。

重要

Azure 屬性型訪問控制 (Azure ABAC) 已正式推出(GA),可用來控制對 Azure Blob 儲存體、Azure Data Lake 儲存體 Gen2 和 Azure 佇列的存取,以及使用request標準和進階記憶體帳戶效能層級中的 、 resourceenvironmentprincipal 屬性。 容器元數據資源屬性和清單 Blob 包含要求屬性目前處於預覽狀態。 如需 Azure 儲存體 ABAC 的完整功能狀態資訊,請參閱 Azure 儲存體中條件功能的狀態

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

Azure 儲存體中的條件概觀

您可以使用 Microsoft Entra ID (Microsoft Entra ID),透過 Azure RBAC 來授權 Azure 儲存體資源的要求。 Azure RBAC 可協助您管理資源的存取權,其方式是利用角色定義和角色指派,定義可存取資源的使用者,以及可以使用這些資源執行的作業。 Azure 儲存體會定義一組 Azure 內建角色,其中包含用來存取 Azure 儲存體資料的一般權限集。 您也可以使用選取的一組權限來定義自訂角色。 Azure 儲存體支援儲存體帳戶和 Blob 容器或佇列的角色指派。

Azure ABAC 會以 Azure RBAC 為建置基礎,在特定動作內容中新增新增角色指派條件角色指派條件是在儲存體資源上執行授權時的額外評估檢查。 此條件會以述詞表示,並使用與下列任一項相關聯的屬性:

  • 要求授權的安全性主體
  • 要求其存取權的資源
  • 要求的參數
  • 產生要求的環境

使用角色指派條件的優點如下:

  • 啟用更精細的資源存取權 - 例如,如果您想要授與使用者在特定佇列中查看訊息的存取權,則可以使用查看訊息 DataAction 和佇列名稱儲存體屬性。
  • 減少建立和管理所需的角色指派數目 - 若要達成此目的,請對安全性群組使用通用角色指派,然後使用條件比對主體的屬性與要存取的特定資源 (例如佇列) 的屬性,以限制該群組中個別成員的存取。
  • 以具有商業意義的屬性表達存取控制規則 - 例如,您可以使用代表專案名稱、商業應用程式、組織函數或分類層級的屬性來表達您的條件。

使用條件進行權衡,表示您在組織中使用屬性時需要有結構化的一致分類法。 屬性必須受到保護,以防止存取遭到盜用。 此外,也必須謹慎設計條件及檢查其效果。

支援的屬性和作業

您可以針對 DataActions 的角色指派設定條件,以達成這些目標。 您可以使用條件搭配自訂角色或選取的內建角色。 請注意,透過儲存體資源提供者的管理動作不支援條件。

您可以將條件加入內建角色或自訂角色。 您可以使用角色指派條件的內建角色包括:

只要自訂角色包含支援條件的動作,您就可以使用條件與該角色。

Azure 角色指派條件格式允許在條件中使用 @Principal@Resource@Request 屬性。 @Principal 屬性是主體中的自訂安全性屬性,例如使用者、企業應用程式 (服務主體) 或受控識別。 @Resource 屬性會參照所要存取儲存體資源中的現有屬性,例如儲存體帳戶或佇列。 @Request 屬性會參照儲存體作業要求所含的屬性或參數。

Azure RBAC 目前在訂用帳戶支援 2,000 個角色指派。 如果您需要建立數千個 Azure 角色指派,您可能會遭遇這項限制。 管理數百或數千個角色指派是一件困難的工作。 在某些情況下,您可以使用條件來減少儲存體帳戶中的角色指派數目以便管理。 您可以在主體中使用條件和 Microsoft Entra 自訂安全性屬性調整角色指派管理作業

下一步

另請參閱