共用方式為


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

本文列出控制 Azure Blob 記憶體存取權的角色指派條件的一些範例。

這很重要

Azure 屬性型存取控制 (Azure ABAC) 已正式發行 (GA),可使用標準和進階儲存體帳戶效能層級中的 requestresourceenvironmentprincipal 屬性,控制 Azure Blob 儲存體、Azure Data Lake Storage Gen2 和 Azure 佇列的存取權。 目前,階層命名空間的清單 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 容器中繼資料
唯讀目前的數據塊版本 isCurrentVersion
讀取目前的 Blob 版本和特定的 Blob 版本 versionId isCurrentVersion
刪除舊的 Blob 版本 versionId
讀取目前的 Blob 版本和任何 Blob 快照集 快照集 isCurrentVersion
允許列出 Blob 作業包含 Blob 中繼資料、快照集或版本 列出 Blob 包含
限制列出 Blob 作業不包含 Blob 中繼資料 列出 Blob 包含
啟用階層命名空間的唯讀儲存帳戶 isHns已啟用
讀取具有特定加密範圍的 Blob 加密範圍名稱
讀取或寫入具名儲存體帳戶中具有特定加密範圍的 Blob 儲存體帳戶名稱
加密範圍名稱
根據 Blob 索引標籤和自訂安全性屬性讀取或寫入 Blob ID 標記 標記
根據 Blob 索引標籤和多重值自訂安全性屬性讀取 Blob ID 標記
允許在特定日期和時間之後對 Blob 進行讀取存取 UtcNow 容器名稱
允許從特定子網存取特定容器中的 Blob 子網路 容器名稱
需要私人連結存取權才能讀取高敏感度的 Blob isPrivateLink 標記
只允許從特定私人端點存取容器 私人端點 容器名稱
範例:僅允許從特定私人端點讀取高度敏感的 Blob 資料,並僅限於標記為具有存取權的使用者 私人端點 ID 標記

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 都必須包含 Project 的 Blob 索引標籤 索引鍵,以及 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}
操作員 And
表達式 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}
表達式 2
操作員 And
屬性來源 資源
屬性 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}
表達式 2
操作員 And
屬性來源 資源
屬性 Blob 路徑
操作員 StringStartsWith
價值觀 {pathString}
條件 #2 設定
行動 列出 Blob
已啟用階層命名空間之帳戶的所有資料作業 (如果適用)
屬性來源 資源
屬性 容器名稱
操作員 StringEquals
價值觀 {containerName}
表達式 2
操作員 And
屬性來源 請求
屬性 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}
表達式 2
操作員 And
屬性來源 資源
屬性 Blob 路徑
操作員 StringLike
價值觀 {pathString}

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

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

此條件可讓使用者讀取 Blob,其 Blob 索引標籤 的索引鍵為 Program,值為 Alpine,且 Blob 路徑為 logs*。 Blob 路徑 logs* 也包含 Blob 名稱。

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

動作 註釋
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,請新增相關資訊,例如 Storage 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 如果角色定義包含此動作,請新增相關資訊,例如 Storage Blob 資料擁有者。

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

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

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

條件 #1 設定
行動 讀取 Blob
已啟用階層命名空間之帳戶的所有資料作業 (如果適用)
屬性來源 資源
屬性 為目前版本
操作員 BoolEquals
價值觀

範例:讀取目前的 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>
表達式 2
操作員 Or
屬性來源 資源
屬性 為目前版本
操作員 BoolEquals
價值觀

範例:刪除舊的 Blob 版本

此條件可讓使用者刪除早於 06/01/2022 的 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 快照集。 版本標識碼屬性僅適用於未啟用階層命名空間的記憶體帳戶。 快照屬性適用於未啟用階層命名空間的儲存體帳戶,而對於已啟用階層命名空間的儲存體帳戶,目前則處於預覽狀態。

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

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

狀態圖顯示目前 Blob 版本和任何 Blob 快照集的讀取權限。

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

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

條件 #1 設定
行動 讀取 Blob
已啟用階層命名空間之帳戶的所有資料作業 (如果適用)
屬性來源 請求
屬性 快照
Exists 檢查
表達式 2
操作員 Or
屬性來源 資源
屬性 為目前版本
操作員 BoolEquals
價值觀

範例:允許列出 Blob 作業包含 Blob 中繼資料、快照集或版本

此條件可讓使用者列出容器中的 Blob,並包含中繼資料、快照集和版本資訊。 列出 Blob 包含屬性可供未啟用階層命名空間的儲存體帳戶使用。

備註

清單 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
價值觀 {'中繼資料'、'快照'、'版本'}

Azure 入口網站中條件編輯器的螢幕擷取畫面,顯示的條件可讓使用者列出容器中的 Blob,並包含中繼資料、快照集和版本資訊。

範例:限制列出 Blob 作業不包含 Blob 中繼資料

當請求中包含元數據時,此條件會限制使用者列出 Blob。 列出 Blob 包含屬性可供未啟用階層命名空間的儲存體帳戶使用。

備註

清單 Blob 包含是要求屬性,而且可在呼叫 List Blob 作業時允許或限制 參數中的include值來運作。 參數中的 include 值會與使用 交叉產品比較運算子的條件中指定的值進行比較。 如果比較的結果為 true,則允許 List Blobs 要求。 如果比較結果為假,則會拒絕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 如果角色定義包含此動作,請新增相關資訊,例如 Storage Blob 資料擁有者。

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

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

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

條件 #1 設定
行動 讀取 Blob
已啟用階層命名空間之帳戶的所有資料作業 (如果適用)
屬性來源 資源
屬性 階層命名空間是否已啟用
操作員 BoolEquals
價值觀

加密範圍

本節包含範例,示範如何使用已核准的加密範圍來限制對物件的存取。

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

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

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

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

顯示對具有加密範圍為 validScope1 或 validScope2 的 Blob 有讀取存取條件的圖表。

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

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

條件 #1 設定
行動 讀取 Blob
屬性來源 資源
屬性 加密範圍名稱
操作員 ForAnyOfAnyValues:StringEquals
價值觀 <範圍名稱>

範例:具名儲存體帳戶中具有特定加密範圍的讀取或寫入 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 如果角色定義包含此動作,請新增相關資訊,例如 Storage Blob 資料擁有者。

備註

由於不同儲存帳戶的加密範圍可能不同,因此建議搭配storageAccounts:name屬性和encryptionScopes:name屬性來限制允許的特定加密範圍。

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

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

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

條件 #1 設定
行動 讀取 Blob
寫入 Blob
建立 Blob 或快照集,或附加資料
屬性來源 資源
屬性 帳戶名稱
操作員 StringEquals
價值觀 <accountName>
表達式 2
操作員 And
屬性來源 資源
屬性 加密範圍名稱
操作員 ForAnyOfAnyValues:StringEquals
價值觀 <範圍名稱>

主體屬性

本節包含範例,示範如何根據自定義安全性主體限制對物件的存取。

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

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

例如,如果 Brenda 具有 屬性 Project=Baker,則她只能讀取或寫入具有 Blob 索引標記的 Project=Baker 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 如果角色定義包含此動作,請新增相關資訊,例如 Storage Blob 資料擁有者。

如需詳細資訊,請參閱 根據標記和自定義安全性屬性允許對 Blob 的讀取存取

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

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

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

條件 #1 設定
行動 讀取 Blob 條件
屬性來源 校長
屬性 <attributeset>_<key>
操作員 StringEquals
選項 屬性
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
鑰匙 <鑰匙>
條件 #2 設定
行動 寫入至具有 Blob 索引標籤的 Blob
寫入至具有 Blob 索引標籤的 Blob
屬性來源 校長
屬性 <attributeset>_<key>
操作員 StringEquals
選項 屬性
屬性來源 請求
屬性 Blob 索引標籤 [索引鍵中的值]
鑰匙 <鑰匙>

範例:根據 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 如果角色定義包含此動作,請新增相關資訊,例如 Storage Blob 資料擁有者。

如需詳細資訊,請參閱 根據標記和自定義安全性屬性允許對 Blob 的讀取存取

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

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

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

條件 #1 設定
行動 讀取 Blob 條件
屬性來源 資源
屬性 Blob 索引標籤 [索引鍵中的值]
鑰匙 <鑰匙>
操作員 ForAnyOfAnyValues:StringEquals
選項 屬性
屬性來源 校長
屬性 <attributeset>_<key>

環境屬性

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

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

此條件僅允許在 2023 年 5 月 1 日下午 1 點之後,才能讀取 Blob 容器 container1 (UTC)。

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

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

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

新增動作

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

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

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

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

建置運算式

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

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

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

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

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

此條件僅允許從虛擬網路virtualnetwork1上的子網default,對container1中的 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 如果角色定義包含此動作,請新增相關資訊,例如 Storage Blob 資料擁有者。

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

新增動作

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

動作 子作業
所有讀取作業 n/a
寫入 blob n/a
建立 Blob 或快照集,或附加資料 n/a
刪除 Blob n/a

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

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 不允許
讀取 Blob 不高 是的 允許
讀取 Blob 不高 允許

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

動作 註釋
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action 如果角色定義包含此動作,請新增相關資訊,例如 Storage 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 入口網站中條件編輯器的螢幕快照,顯示讀取敏感資料必須使用任何私人連結的許可權。

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

此條件要求所有讀取、寫入、新增和刪除記憶體容器中 Blob 的作業都必須透過名為 container1privateendpoint1的私人端點進行。 針對未命名 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 如果角色定義包含此動作,請新增相關資訊,例如 Storage Blob 資料擁有者。
如果此條件包含的儲存帳戶已啟用階層式命名空間,或未來可能啟用,請新增。

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

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

新增動作

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

動作 子作業
所有讀取操作 n/a
寫入 blob n/a
建立 Blob 或快照集,或附加資料 n/a
刪除 Blob n/a

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

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 如果角色定義包含此動作,請新增相關資訊,例如 Storage Blob 資料擁有者。

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

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

新增動作

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

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

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

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

建置運算式

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

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

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

Azure 入口網站中條件編輯器的螢幕擷取畫面,顯示對已標記使用者的特定私人端點允許讀取存取。

後續步驟