Blob 儲存體的 Azure 角色指派條件範例

此文章提供了一些範例,說明控制 Azure Blob 儲存體存取權的角色指派條件。

重要

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

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

必要條件

如需新增或編輯角色指派條件的必要條件相關資訊,請參閱條件必要要件

本文中的範例摘要

使用下表快速找出符合 ABAC 案例的範例。 此資料表包含案例的簡短描述,加上範例中各來源使用的屬性清單 (環境、主體、要求和資源)。

範例 環境 主體 要求 資源
讀取具有 Blob 索引標籤的 Blob 標記
新的 Blob 必須包含 Blob 索引標籤 標記
現有的 Blob 必須有 Blob 索引標籤索引鍵 標記
現有的 Blob 必須有 Blob 索引標籤索引鍵和值 標記
讀取、寫入或刪除具名容器中的 Blob 容器名稱
使用路徑讀取具名容器中的 Blob 容器名稱
Blob 路徑
使用路徑讀取或列出具名容器中的 Blob Blob 前置詞 容器名稱
Blob 路徑
使用路徑在具名容器中寫入 Blob 容器名稱
Blob 路徑
讀取具有 Blob 索引標籤和路徑的 Blob 標籤
Blob 路徑
使用特定元數據讀取容器中的 Blob 容器元數據
使用特定元數據在容器中寫入或刪除 Blob 容器元數據
僅讀取目前的 Blob 版本 isCurrentVersion
讀取目前的 Blob 版本和特定的 Blob 版本 versionId isCurrentVersion
刪除舊的 Blob 版本 versionId
讀取目前的 Blob 版本和任何 Blob 快照集 快照集 isCurrentVersion
允許清單 Blob 作業包含 Blob 元數據、快照集或版本 列出 Blob 包含
將清單 Blob 作業限制為不包含 Blob 元數據 列出 Blob 包含
僅讀取已啟用階層命名空間的儲存體帳戶 isHnsEnabled
讀取具有特定加密範圍的 Blob 加密範圍名稱
讀取或寫入具名儲存體帳戶中具有特定加密範圍的 Blob 儲存體帳戶名稱
加密範圍名稱
根據 Blob 索引標籤和自訂安全性屬性讀取或寫入 Blob 識別碼 標記 標記
根據 Blob 索引標籤和多重值自訂安全性屬性讀取 Blob 識別碼 標記
允許在特定日期和時間之後對 Blob 進行讀取存取 UtcNow 容器名稱
允許從特定子網路存取特定容器中的 Blob 子網路 容器名稱
需要私人連結存取權才能讀取高敏感度的 Blob isPrivateLink 標記
僅允許從特定私人端點存取容器 私人端點 容器名稱
範例:僅允許標有存取權的使用者從特定私人端點對高度敏感 Blob 資料進行讀取存取 私人端點 識別碼 標記

Blob 索引標籤

本節包含涉及 Blob 索引標籤的範例。

重要

雖然相容性目前支援 Read content from a blob with tag conditions 子作業,但在 ABAC 功能預覽期間會實作條件,該子作業已淘汰,且 Microsoft 建議改用「Read a blob」動作。

在 Azure 入口網站中設定 ABAC 條件時,您可能會看到「已淘汰:使用標籤條件讀取 Blob 中的內容」。 Microsoft 建議移除作業,並將其取代為 Read a blob 動作。

如果您正在撰寫自己的條件,其中想要依標籤條件限制讀取存取權,請參閱範例:使用 Blob 索引標籤讀取 Blob

範例:讀取具有 Blob 索引標籤的 Blob

此條件可讓使用者讀取 Blob,其 Blob 索引標記索引鍵為 Project 且值為 Cascade。 不允許在沒有此索引鍵/值標籤的情況下嘗試存取 Blob。

若要讓此條件對安全性主體有效,您必須將其新增至包含下列動作的所有角色指派:

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示具有 Blob 索引標籤之 Blob 讀取存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站視覺化編輯器新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 {keyName}
運算子 StringEquals
{keyValue}

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示具有 Blob 索引標籤之 Blob 的讀取存取權。

範例:新的 Blob 必須包含 Blob 索引標記

此條件要求任何新的 Blob 都必須包含 Blob 索引標記索引鍵 Project,以及值 Cascade。

有兩個動作可讓您建立新的 Blob,因此您必須將兩者設為目標。 您必須將此條件新增至包含下列其中一個動作的任何角色指派:

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示新 Blob 的條件圖表必須包含 Blob 索引標記。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 寫入至具有 Blob 索引標籤的 Blob
寫入至具有 Blob 索引標籤的 Blob
屬性來源 要求
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 {keyName}
運算子 StringEquals
{keyValue}

Azure 入口網站 顯示新 Blob 之條件編輯器的螢幕快照必須包含 Blob 索引標籤。

範例:現有的 Blob 必須有 Blob 索引標記索引鍵

此條件需要以至少一個允許的 Blob 索引標記索引鍵來標記任何現有的 Blob:Project 或 Program。 此條件適用於將治理新增至現有的 Blob。

有兩個動作可讓您更新現有 Blob 上的標記,因此您必須將兩者設為目標。 您必須將此條件新增至包含下列其中一個動作的任何角色指派:

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示現有 Blob 的條件圖表必須具有 Blob 索引標籤索引鍵。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 寫入至具有 Blob 索引標籤的 Blob
寫入 Blob 索引標籤
屬性來源 要求
屬性 Blob 索引標籤 [索引鍵]
運算子 ForAllOfAnyValues:StringEquals
{keyName1}
{keyName2}

Azure 入口網站 中顯示現有 Blob 必須具有 Blob 索引標籤索引鍵的條件編輯器螢幕快照。

範例:現有的 Blob 必須有 Blob 索引標記索引鍵和值

此條件需要有任何現有的 Blob 具有 Blob 索引標記索引鍵 Project,以及值 Cascade、Baker 或 Skagit。 此條件適用於將治理新增至現有的 Blob。

有兩個動作可讓您更新現有 Blob 上的標記,因此您必須將兩者設為目標。 您必須將此條件新增至包含下列其中一個動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示現有 Blob 的條件圖表必須具有 Blob 索引標籤索引鍵和值。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 寫入至具有 Blob 索引標籤的 Blob
寫入 Blob 索引標籤
屬性來源 要求
屬性 Blob 索引標籤 [索引鍵]
運算子 ForAnyOfAnyValues:StringEquals
{keyName}
運算子
Expression 2
屬性來源 要求
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 {keyName}
運算子 ForAllOfAnyValues:StringEquals
{keyValue1}
{keyValue2}
{keyValue3}

Azure 入口網站 中顯示現有 Blob 之條件編輯器的螢幕快照,其中必須具有 Blob 索引標籤索引鍵和值。

Blob 容器名稱或路徑

本節包含一些範例,說明如何根據容器名稱或 Blob 路徑限制對物件的存取。

範例:讀取、寫入或刪除具名容器中的 Blob

此條件可讓使用者在名為 blobs-example-container 的儲存體容器中讀取、寫入或刪除 Blob。 此條件適用於與訂用帳戶中的其他使用者共用特定儲存體容器。

讀取、寫入和刪除現有 Blob 有五個動作。 您必須將此條件新增至包含下列其中一個動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。
如果此條件中包含的儲存體帳戶已啟用階層命名空間,或未來可能啟用該空間,請新增。

在此條件中不會使用子作業,因為只有在根據標籤撰寫條件時,才需要子作業。

顯示具名容器中讀取、寫入或刪除 Blob 的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

Azure 入口網站 中顯示具名容器中讀取、寫入或刪除 Blob 的條件編輯器螢幕快照。

範例:具有路徑的具名容器中 Blob 的讀取

此條件允許對名為 blobs-example-container 的儲存體容器 (具有 Blob 路徑為 readonly/*) 的唯讀存取。 此條件適用於與訂用帳戶中的其他使用者共用儲存體容器特定部分以進行讀取存取。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。
如果此條件中包含的儲存體帳戶已啟用階層命名空間,或未來可能啟用該空間,請新增。

顯示具名容器中具有路徑之 Blob 讀取存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
用於已啟用階層命名空間之帳戶的所有資料作業 (如適用)
屬性來源 資源
屬性 容器名稱
運算子 StringEquals
{containerName}
Expression 2
運算子
屬性來源 資源
屬性 Blob 路徑
運算子 StringLike
{pathString}

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示具名容器中具有路徑之 Blob 的讀取許可權。

範例:具有路徑的具名容器中 Blob 的讀取或清單

此條件允許對名為 blobs-example-container 的儲存體容器 (具有 Blob 路徑為 readonly/*) 的唯讀存取並列出清單存取。 條件 #1 適用於排除清單 Blob 的讀取動作。 條件 #2 適用於清單 Blob。 此條件適用於與訂用帳戶中的其他使用者共用儲存體容器特定部分以進行讀取或清單存取。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。
如果此條件中包含的儲存體帳戶已啟用階層命名空間,或未來可能啟用該空間,請新增。

顯示具有路徑之具名容器中 Blob 讀取和列出存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

注意

Azure 入口網站會使用 prefix='' 從容器的根目錄列出 Blob 的清單。 當使用 StringStartsWith 'readonly/' 前置詞,並將條件新增至清單 Blob 作業之後,目標使用者將無法從容器的根目錄列出Azure 入口網站中的 Blob。

條件 #1 設定
動作 讀取 Blob
用於已啟用階層命名空間之帳戶的所有資料作業 (如適用)
屬性來源 資源
屬性 容器名稱
運算子 StringEquals
{containerName}
Expression 2
運算子
屬性來源 資源
屬性 Blob 路徑
運算子 StringStartsWith
{pathString}
條件 #2 設定
動作 列出 Blob
用於已啟用階層命名空間之帳戶的所有資料作業 (如適用)
屬性來源 資源
屬性 容器名稱
運算子 StringEquals
{containerName}
Expression 2
運算子
屬性來源 要求
屬性 Blob 前置詞
運算子 StringStartsWith
{pathString}

範例:具有路徑的具名容器中 Blob 的寫入

此條件可讓合作夥伴 (Microsoft Entra 來賓使用者) 將檔案放置到名為 Contosocorp 的儲存體容器 (路徑為 uploads/contoso/*)。 此條件適用於讓其他使用者將資料放在儲存體容器中。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。
如果此條件中包含的儲存體帳戶已啟用階層命名空間,或未來可能啟用該空間,請新增。

顯示具名容器中具有路徑之 Blob 寫入存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 寫入 Blob
建立 Blob 或快照集,或附加資料
用於已啟用階層命名空間之帳戶的所有資料作業 (如適用)
屬性來源 資源
屬性 容器名稱
運算子 StringEquals
{containerName}
Expression 2
運算子
屬性來源 資源
屬性 Blob 路徑
運算子 StringLike
{pathString}

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示具名容器中具有路徑之 Blob 的寫入許可權。

範例:讀取具有 Blob 索引標籤與路徑的 Blob

此條件可讓使用者讀取 Blob 索引標記索引鍵為 Program、值為 Alpine 以及 Blob 路徑為 logs* 的 Blob。 Blob 路徑 logs* 也包含 Blob 名稱。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示 Blob 索引標籤和路徑之 Blob 讀取存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 {keyName}
運算子 StringEquals
{keyValue}

Azure 入口網站 中條件 1 編輯器的螢幕快照,其中顯示 Blob 索引標籤和路徑的 Blob 讀取許可權。

條件 #2 設定
動作 讀取 Blob
屬性來源 資源
屬性 Blob 路徑
運算子 StringLike
{pathString}

Azure 入口網站 中條件 2 編輯器的螢幕快照,其中顯示 Blob 索引標籤和路徑的 Blob 讀取許可權。

Blob 容器元數據

範例:使用特定元數據讀取容器中的 Blob

此條件可讓使用者讀取具有特定元數據索引鍵/值組之 Blob 容器中的 Blob。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
屬性來源 資源
屬性 容器元數據
運算子 StringEquals
{containerName}

Azure 入口網站 中顯示具有特定元數據之容器中讀取 Blob 的條件編輯器螢幕快照。

範例:使用特定元數據在容器中寫入或刪除 Blob

此條件可讓使用者在具有特定元數據索引鍵/值組的 Blob 容器中寫入或刪除 Blob。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 寫入 Blob
刪除 Blob
屬性來源 資源
屬性 容器元數據
運算子 StringEquals
{containerName}

Azure 入口網站 中的條件編輯器螢幕快照,其中顯示容器中具有特定元數據的寫入和刪除 Blob。

Blob 版本或 Blob 快照集

本節包含一些範例,說明如何根據 Blob 版本或快照集限制對物件的存取。

範例:唯讀目前的 Blob 版本

此條件可讓使用者唯讀目前的 Blob 版本。 使用者無法讀取其他 Blob 版本。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示目前 Blob 版本讀取許可權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
用於已啟用階層命名空間之帳戶的所有資料作業 (如適用)
屬性來源 資源
屬性 為目前版本
運算子 BoolEquals
True

範例:讀取目前的 Blob 版本和特定的 Blob 版本

此條件讓使用者讀取目前的 Blob 版本,以及具有版本識別碼為 2022-06-01T23:38:32.8883645Z 的 Blob。 使用者無法讀取其他 Blob 版本。 版本識別碼屬性僅適用於未啟用階層命名空間的儲存體帳戶。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

顯示特定 Blob 版本讀取許可權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
屬性來源 要求
屬性 版本識別碼
運算子 DateTimeEquals
<blobVersionId>
Expression 2
運算子 Or
屬性來源 資源
屬性 為目前版本
運算子 BoolEquals
True

範例:刪除舊的 Blob 版本

此條件可讓使用者刪除 2022/06/01 以前的舊 Blob 版本,以執行清除。 版本識別碼屬性僅適用於未啟用階層命名空間的儲存體帳戶。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/deleteBlobVersion/action

顯示舊 Blob 版本刪除存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 刪除 Blob
刪除 Blob 的版本
屬性來源 要求
屬性 版本識別碼
運算子 DateTimeLessThan
<blobVersionId>

範例:讀取目前的 Blob 版本和任何 Blob 快照集

此條件可讓使用者讀取目前的 Blob 版本和任何 Blob 快照集。 版本識別碼屬性僅適用於未啟用階層命名空間的儲存體帳戶。 Snapshot 屬性適用於未啟用階層命名空間的儲存體帳戶,目前為啟用階層命名空間的儲存體帳戶預覽。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示目前 Blob 版本和任何 Blob 快照集讀取許可權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
用於已啟用階層命名空間之帳戶的所有資料作業 (如適用)
屬性來源 要求
屬性 快照式
Exists 已選取
Expression 2
運算子 Or
屬性來源 資源
屬性 為目前版本
運算子 BoolEquals
True

範例:允許清單 Blob 作業包含 Blob 元數據、快照集或版本

此條件可讓使用者列出容器中的 Blob,並包含元數據、快照集和版本資訊。 清單 Blob include 屬性適用於未啟用階層命名空間的記憶體帳戶。

注意

清單 Blob 包含是要求屬性,而且可在呼叫 List Blob 作業時允許或限制 參數中的include值來運作。 參數中的 include 值會與使用 交叉產品比較運算子的條件中指定的值進行比較。 如果比較評估為 true, List Blobs 則會允許要求。 如果比較評估為 false,則會 List Blobs 拒絕要求。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 列出 Blob
屬性來源 要求
屬性 列出 Blob 包括
運算子 ForAllOfAnyValues:StringEqualsIgnoreCase
{'metadata'、'snapshots'、'versions'}

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示條件可讓使用者列出容器中的 Blob,並包含元數據、快照集和版本資訊。

範例:限制清單 Blob 作業不包含 Blob 元數據

當要求中包含元數據時,此條件會限制使用者列出 Blob。 清單 Blob include 屬性適用於未啟用階層命名空間的記憶體帳戶。

注意

清單 Blob 包含是要求屬性,而且可在呼叫 List Blob 作業時允許或限制 參數中的include值來運作。 參數中的 include 值會與使用 交叉產品比較運算子的條件中指定的值進行比較。 如果比較評估為 true, List Blobs 則會允許要求。 如果比較評估為 false,則會 List Blobs 拒絕要求。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 列出 Blob
屬性來源 要求
屬性 列出 Blob 包括
運算子 ForAllOfAllValues:StringNotEquals
{'metadata'}

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示條件,以在要求中包含元數據時,限制使用者列出 Blob。

階層式命名空間

本節包含一些範例,說明如何根據儲存體帳戶是否啟用了階層命名空間來限制對物件的存取。

範例:已啟用階層命名空間的唯讀記憶體帳戶

此條件可讓使用者只在已啟用階層命名空間的儲存體帳戶中讀取 Blob。 此條件僅適用於資源群組範圍或更大範圍。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示已啟用階層命名空間之記憶體帳戶讀取存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

加密範圍

本節包含一些範例,說明如何對具有已核准加密範圍的物件限制存取。

範例:讀取具有特定加密範圍的 Blob

此條件可讓使用者讀取以加密範圍 validScope1validScope2 加密的 Blob。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

顯示加密範圍 validScope1 或 validScope2 之 Blob 讀取存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
屬性來源 資源
屬性 加密範圍名稱
運算子 ForAnyOfAnyValues:StringEquals
<scopeName>

範例:具名儲存體帳戶中具有特定加密範圍的讀取或寫入 Blob

此條件可讓使用者在名為 sampleaccount 的儲存體帳戶中讀取或寫入 Blob,並使用加密範圍 ScopeCustomKey1 加密。 如果未使用 ScopeCustomKey1 將 Blob 加密或解密,則要求會傳回禁止。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

注意

由於不同儲存體帳戶的加密範圍可能會有所不同,建議您搭配 storageAccounts:name 屬性使用 encryptionScopes:name 屬性,來限制允許的特定加密範圍。

顯示具有加密範圍 ScopeCustomKey1 之 sampleaccount 儲存器帳戶中 Blob 讀取或寫入存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob
寫入 Blob
建立 Blob 或快照集,或附加資料
屬性來源 資源
屬性 帳戶名稱
運算子 StringEquals
<accountName>
Expression 2
運算子
屬性來源 資源
屬性 加密範圍名稱
運算子 ForAnyOfAnyValues:StringEquals
<scopeName>

主體屬性

本節包含一些範例,說明如何根據自訂安全性主體限制對物件的存取。

範例:根據 Blob 索引標記和自訂安全性屬性讀取或寫入 Blob

如果使用者具有與 Blob 索引標記相符的自訂安全性屬性,此條件允許 Blob 的讀取和寫入存取。

例如,如果 Brenda 具有屬性 Project=Baker,則她只能使用 Project=Baker Blob 索引標記來讀取和寫入 Blob。 同樣地,Chandra 只能使用 Project=Cascade 來讀取或寫入 Blob。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

如需詳細資訊,請參閱允許以標記和自訂安全性屬性為基礎的 Blob 讀取和寫入存取

顯示以 Blob 索引標籤和自訂安全性屬性為基礎的 Blob 讀取或寫入存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob 條件
屬性來源 主體
屬性 <attributeset>_<key>
運算子 StringEquals
選項 屬性
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 <key>
條件 #2 設定
動作 寫入至具有 Blob 索引標籤的 Blob
寫入至具有 Blob 索引標籤的 Blob
屬性來源 主體
屬性 <attributeset>_<key>
運算子 StringEquals
選項 屬性
屬性來源 要求
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 <key>

範例:根據 Blob 索引標記和多重值自訂安全性屬性讀取 Blob

如果使用者具有任何值與 Blob 索引標記相符的自訂安全性屬性,此條件允許 Blob 的讀取存取

例如,如果 Chandra 具有 Project 屬性和 Baker 與 Cascade 值,她只能使用 Project=BakerProject=Cascade Blob 索引標記來讀取 Blob。

您必須將此條件新增至包含下列動作的任何角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

如需詳細資訊,請參閱允許以標記和自訂安全性屬性為基礎的 Blob 讀取和寫入存取

顯示以 Blob 索引標籤和多重值自訂安全性屬性為基礎的 Blob 讀取存取權的條件圖表。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是使用 Azure 入口網站新增此條件的設定。

條件 #1 設定
動作 讀取 Blob 條件
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 <key>
運算子 ForAnyOfAnyValues:StringEquals
選項 屬性
屬性來源 主體
屬性 <attributeset>_<key>

環境屬性

本節包含一些範例,說明如何根據網路環境或目前的日期和時間限制對物件的存取。

範例:允許在特定日期和時間之後對 Blob 進行讀取存取

此條件僅允許在國際標準時間 (UTC) 2023 年 5 月 1 日下午 1 點之後對 Blob 容器 container1 進行讀取存取。

有兩個可能的動作可讀取現有的 Blob。 若要讓此條件對具有多個角色指派的主體有效,您必須將此條件新增至包含下列任何動作的所有角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

新增動作

選取 [新增動作],然後僅選取 [讀取 Blob 子作業],如下表所示。

動作 子作業
所有讀取作業 讀取 Blob

請勿選取最上層的 [所有讀取作業] 動作或任何其他子作業,如下圖所示:

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示只選取讀取作業。

建置運算式

使用下表中的值來建置條件的運算式部分:

設定
屬性來源 資源
屬性 容器名稱
運算子 StringEquals
container1
邏輯運算子 'AND'
屬性來源 環境
屬性 UtcNow
運算子 DateTimeGreaterThan
2023-05-01T13:00:00.000Z

下圖顯示將設定輸入 Azure 入口網站之後的條件。 您必須將運算式分組,以確保能正確評估。

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示特定日期和時間之後允許的讀取許可權。

範例:允許從特定子網路存取特定容器中的 Blob

此條件僅允許從虛擬網路 virtualnetwork1 上的子網路 defaultcontainer1 中的 Blob 進行讀取、寫入、新增和刪除存取。 若要在此範例中使用 Subnet 屬性,子網路必須為 Azure 儲存體啟用服務端點

對現有 Blob 的讀取、寫入、新增和刪除存取有五個可能的動作。 若要讓此條件對具有多個角色指派的主體有效,您必須將此條件新增至包含下列任何動作的所有角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

新增動作

選取 [新增動作],然後僅選取下表所示的最上層動作。

動作 子作業
所有讀取作業 不適用
寫入 Blob 不適用
建立 Blob 或快照集,或附加資料 不適用
刪除 Blob 不適用

請勿選取任何個別子作業,如下圖所示:

Azure 入口網站 顯示讀取、寫入、新增和刪除作業選取範圍的條件編輯器螢幕快照。

建置運算式

使用下表中的值來建置條件的運算式部分:

設定
屬性來源 資源
屬性 容器名稱
運算子 StringEquals
container1
邏輯運算子 'AND'
屬性來源 環境
屬性 子網路
運算子 StringEqualsIgnoreCase
/subscriptions/<your subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/virtualnetwork1/subnets/default

下圖顯示將設定輸入 Azure 入口網站之後的條件。 您必須將運算式分組,以確保能正確評估。

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示從特定子網允許之特定容器的讀取許可權。

此條件要求,在要求讀取 Blob 索引標籤敏感度的值為 high 的 Blob 時,必須透過私人連結 (任何私人連結)。 這表示完全不允許從公用網際網路嘗試讀取高敏感度 Blob。 使用者可以從公用網際網路讀取將敏感度設定為非 high 值的 Blob。

此 ABAC 範例條件的事實資料表如下:

動作 敏感度 私人連結 存取
讀取 Blob high 允許
讀取 Blob high No 不允許
讀取 Blob 不高 允許
讀取 Blob 不高 No 允許

有兩個可能的動作可讀取現有的 Blob。 若要讓此條件對具有多個角色指派的主體有效,您必須將此條件新增至包含下列任何動作的所有角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是在 Azure 入口網站中使用視覺化條件編輯器新增此條件的設定。

新增動作

選取 [新增動作],然後僅選取 [讀取 Blob 子作業],如下表所示。

動作 子作業
所有讀取作業 讀取 Blob

請勿選取最上層的 [所有讀取作業] 動作或任何其他子作業,如下圖所示:

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示只選取讀取作業。

建置運算式

使用下表中的值來建置條件的運算式部分:

群組 設定
群組 #1
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 sensitivity
運算子 StringEquals
high
邏輯運算子 'AND'
屬性來源 環境
屬性 為私人連結
運算子 BoolEquals
True
群組 #1 結尾
邏輯運算子 'OR'
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 sensitivity
運算子 StringNotEquals
high

下圖顯示將設定輸入 Azure 入口網站之後的條件。 您必須將運算式分組,以確保能正確評估。

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示需要敏感數據任何私人連結的讀取許可權。

範例:僅允許從特定私人端點存取容器

此條件要求,對儲存體容器 container1 中的 Blob 所做的所有讀取、寫入、新增和刪除作業,都必須透過名為 privateendpoint1 的私人端點進行。 對於名稱不是 container1 的其他所有容器,不需要透過私人端點進行存取。

現有 Blob 的讀取、寫入和刪除有五個可能的動作。 若要讓此條件對具有多個角色指派的主體有效,您必須將此條件新增至包含下列任何動作的所有角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。
如果此條件中包含的儲存體帳戶已啟用階層命名空間,或未來可能啟用該空間,請新增。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是在 Azure 入口網站中使用視覺化條件編輯器新增此條件的設定。

新增動作

選取 [新增動作],然後僅選取下表所示的最上層動作。

動作 子作業
所有讀取作業 不適用
寫入 Blob 不適用
建立 Blob 或快照集,或附加資料 不適用
刪除 Blob 不適用

請勿選取任何個別子作業,如下圖所示:

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示選取讀取、寫入、新增和刪除作業。

建置運算式

使用下表中的值來建置條件的運算式部分:

群組 設定
群組 #1
屬性來源 資源
屬性 容器名稱
運算子 StringEquals
container1
邏輯運算子 'AND'
屬性來源 環境
屬性 私人端點
運算子 StringEqualsIgnoreCase
/subscriptions/<your subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/privateEndpoints/privateendpoint1
群組 #1 結尾
邏輯運算子 'OR'
屬性來源 資源
屬性 容器名稱
運算子 StringNotEquals
container1

下圖顯示將設定輸入 Azure 入口網站之後的條件。 您必須將運算式分組,以確保能正確評估。

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示具名容器中具有私人端點環境屬性的讀取、寫入或刪除 Blob。

範例:僅允許標有存取權的使用者從特定私人端點對高度敏感 Blob 資料進行讀取存取

此條件要求,將索引標籤敏感度設定為 high 的 Blob,只能由其敏感度安全性屬性的值相符的使用者讀取。 此外,必須透過名為 privateendpoint1 的私人端點加以存取。 敏感度標籤具有不同值的 Blob,可以透過其他端點或網際網路存取。

有兩個可能的動作可讀取現有的 Blob。 若要讓此條件對具有多個角色指派的主體有效,您必須將此條件新增至包含下列任何動作的所有角色指派。

動作 備註
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,例如儲存體 Blob 資料擁有者,請新增。

此條件可使用 Azure 入口網站或 Azure PowerShell 新增至角色指派。 入口網站有兩個工具可供建置 ABAC 條件 - 視覺化編輯器和程式碼編輯器。 您可以在 Azure 入口網站中的兩個編輯器之間切換,以在不同的檢視中查看您的條件。 在 [視覺化編輯器] 索引標籤和 [程式碼編輯器] 索引標籤之間切換,以檢視您慣用入口網站編輯器的範例。

以下是在 Azure 入口網站中使用視覺化條件編輯器新增此條件的設定。

新增動作

選取 [新增動作],然後僅選取 [讀取 Blob 子作業],如下表所示。

動作 子作業
所有讀取作業 讀取 Blob

請勿選取最上層的動作,如下圖所示:

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示讀取 Blob 作業的選項。

建置運算式

使用下表中的值來建置條件的運算式部分:

群組 設定
群組 #1
屬性來源 主體
屬性 <attributeset>_<key>
運算子 StringEquals
選項 屬性
邏輯運算子 'AND'
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 <key>
邏輯運算子 'AND'
屬性來源 環境
屬性 私人端點
運算子 StringEqualsIgnoreCase
/subscriptions/<your subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/privateEndpoints/privateendpoint1
群組 #1 結尾
邏輯運算子 'OR'
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
機碼 sensitivity
運算子 StringNotEquals
high

下圖顯示將設定輸入 Azure 入口網站之後的條件。 您必須將運算式分組,以確保能正確評估。

Azure 入口網站 中條件編輯器的螢幕快照,其中顯示已標記使用者在特定私人端點上允許的讀取許可權。

下一步