使用 Azure 角色指派條件來授權 Azure Blob 儲存體的存取

屬性型存取控制 (ABAC) 是一種授權策略,會根據與安全性主體、資源、環境和要求本身相關聯的屬性來定義存取層級。 透過 ABAC,您可以使用這些屬性,根據以述詞表示的條件,授與安全性主體對資源的存取權。

Azure ABAC 是以 Azure 角色型存取控制 (Azure RBAC) 為建置基礎,將條件新增至 Azure 角色指派。 其可讓您根據主體、資源、要求和環境屬性來編寫角色指派條件。

重要

Azure 屬性型訪問控制 (Azure ABAC) 已正式推出,可用來控制對 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 為建置基礎,在特定動作內容中新增新增角色指派條件角色指派條件是在儲存體資源上執行授權時的額外評估檢查。 此條件會以述詞表示,並使用與下列任一項相關聯的屬性:

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

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

  • 啟用更精細的資源存取權 - 例如,如果只有在 blob 標記為 Project=Sierra 時,您才要在儲存體帳戶中授與使用者 blob 的讀取權,則可以使用這些標記作為屬性來設定讀取動作的條件。
  • 減少建立和管理所需的角色指派數目 - 若要達成此目的,請對安全性群組使用通用角色指派,然後使用條件比對主體的屬性與要存取的特定資源 (例如 blob 或容器) 的屬性,以限制該群組中個別成員的存取。
  • 以具有商業意義的屬性表達存取控制規則 - 例如,您可以使用代表專案名稱、商業應用程式、組織函數或分類層級的屬性來表達您的條件。

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

Azure Blob 儲存體支援 Azure 儲存體中的角色指派條件。 若帳戶已啟用階層命名空間 (HNS) 功能 (Data Lake Storage Gen2),則您也可以使用條件。

支援的屬性和作業

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

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

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

如果您是依據 blob 索引標記來使用條件,則應使用儲存體 blob 資料擁有者,因為此角色含有標記作業的權限。

注意

使用階層命名空間的 Data Lake Storage Gen2 儲存體帳戶不支援 blob 索引標記。 您不應該在已啟用 HNS 的儲存體帳戶上使用索引標籤來編寫角色指派條件。

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

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

Azure 儲存體中條件功能的狀態

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

下表依記憶體資源類型和屬性類型顯示 ABAC 的目前狀態。 特定屬性的例外狀況也會顯示。

資源類型 屬性類型 屬性 可用性
Blob
Data Lake Storage Gen2
佇列
要求
資源
Environment
主體
除了此數據表中所指出的屬性以外的所有屬性 GA
Data Lake Storage Gen2 資源 快照式 預覽​​
Blob
Data Lake Storage Gen2
資源 容器元數據 預覽​​
Blob 要求 列出 Blob 包含 預覽​​

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

注意

Data Lake Storage Gen2 儲存體帳戶不支援部分儲存體功能,其會使用階層命名空間 (HNS)。 若要深入了解,請參閱 Blob 儲存體功能支援

針對儲存體帳戶啟用階層命名空間時,不支援下列 ABAC 屬性:

下一步

另請參閱