教學課程:使用 Azure 入口網站新增角色指派條件,以限制對 Blob 的存取
在大部分情況下,角色指派會授與您存取 Azure 資源所需的權限。 不過,在某些情況下,您可能會想要新增角色指派條件,以提供更精細的存取控制。
在本教學課程中,您會了解如何:
- 將條件新增至角色指派
- 依據 Blob 索引標記來限制對 Blob 的存取
重要
Azure 屬性型訪問控制 (Azure ABAC) 已正式推出,可用來控制對 Azure Blob 儲存體、Azure Data Lake 儲存體 Gen2 和 Azure 佇列的存取,以及使用request
標準與進階記憶體帳戶效能層級中的、 resource
environment
和 principal
屬性。 容器元數據資源屬性和清單 Blob 包含要求屬性目前處於預覽狀態。 如需 Azure 儲存體 ABAC 的完整功能狀態資訊,請參閱 Azure 儲存體中條件功能的狀態。
請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
必要條件
如需新增或編輯角色指派條件的必要條件相關資訊,請參閱條件必要要件。
Condition
在本教學課程中,您可限制存取具有特定標記的 Blob。 例如,在角色指派中新增條件,讓 Chandra 只能讀取具有標記 Project=Cascade
的檔案。
如果 Chandra 嘗試讀取沒有 Project=Cascade
標記的 Blob,則不允許存取。
以下是程式碼中的條件範例:
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
AND NOT
SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
)
)
步驟 1:建立使用者
以訂用帳戶的擁有者身分登入 Azure 入口網站。
選取 [Microsoft Entra ID]。
建立使用者或尋找現有的使用者。 本教學課程使用 Chandra 作為範例。
步驟 2:設定儲存體
建立與 blob 索引標記功能相容的儲存體帳戶。 如需詳細資訊,請參閱使用 blob 索引標記管理和尋找 Azure Blob 資料。
在儲存體帳戶內建立新的容器,並將匿名存取層級設定為 [私人 (沒有匿名存取)]。
在容器中,選取 [上傳] 以開啟 [上傳 Blob] 窗格。
尋找要上傳的文字檔。
選取 [進階] 以展開窗格。
在 [BlOb 索引標記] 區段中,將下列 blob 索引標記新增至文字檔。
如果您沒有看到 [Blob 索引標記] 區段,且您剛剛才註冊了訂用帳戶,則可能需要等候幾分鐘的時間,變更才會傳播。 如需詳細資訊,請參閱使用 blob 索引標記來管理和尋找 Azure Blob 儲存體上的資料。
注意
Blob 也支援儲存任意使用者定義的索引鍵/值中繼資料的能力。 雖然中繼資料類似於 Blob 索引標籤,但您必須搭配條件使用 Blob 索引標籤。
機碼 值 Project Cascade
選取 [上傳] 按鈕以上傳檔案。
上傳第二個文字檔。
將下列 Blob 索引標記新增至第二個文字檔。
機碼 值 Project Baker
步驟 3:指派儲存體 blob 資料角色
開啟資源群組。
選取 [存取控制 (IAM)]。
選取 [角色指派] 索引標籤,以檢視此範圍中的角色指派。
選取 [新增>][新增角色指派]。 開啟 [新增角色指派] 頁面:
- 在 [成員] 索引標籤上,選取您稍早建立的使用者。
(選用) 在 [描述] 方塊中,輸入具有 Project=Cascade 標記的 blob 讀取存取權。
選取 [下一步]。
步驟 4:新增條件
- 在 [條件 (選用)] 索引標籤中,選取 [新增條件]。 出現 [新增角色指派條件] 頁面:
在 [新增動作] 區段中,選取 [新增動作]。
即會出現 [選取動作] 窗格。 此窗格顯示根據作為條件目標的角色指派,篩選出的資料動作清單。 核取 [讀取 Blob] 旁邊的方塊,然後選取 [選取]:
在 [建立運算式] 區段中,選取 [新增運算式]。
[運算式] 區段即會展開。
指定下列運算式設定:
設定 值 屬性來源 資源 屬性 Blob 索引標籤 [索引鍵中的值] 機碼 Project 運算子 StringEqualsIgnoreCase 值 Cascade
向上捲動至 [編輯器類型],然後選取 [程式碼]。
此條件會顯示為程式碼。 您可以在這個程式碼編輯器中變更條件。 若要回到視覺化編輯器,請選取 [視覺效果]。
選取 [儲存] 以新增條件,然後返回 [新增角色指派] 頁面。
選取 [下一步]。
在 [檢閱 + 指派] 索引標籤上,選取 [檢閱 + 指派] 以指派具有某種條件的角色。
在幾分鐘之後,即會在所選範圍中指派安全性主體的角色。
步驟 5:指派讀者角色
重複上述步驟,將讀者角色指派給您稍早在資源群組範圍中建立的使用者。
注意
您通常不需要指派「讀者」角色。 不過,這麼做是為了讓您可以使用 Azure 入口網站來測試條件。
步驟 6:測試條件
在新的視窗中,登入 Azure 入口網站。
以您稍早建立的使用者登入。
開啟您建立的儲存體帳戶和容器。
確定驗證方法設為 [Microsoft Entra 使用者帳戶],而不是 [存取金鑰]。
選取 Baker 文字檔。
您應該無法檢視或下載 blob,而且應該會顯示授權失敗訊息。
選取 Cascade 文字檔。
您應該可以檢視和下載 blob。
步驟 7:清理資源
移除您所新增的角色指派。
刪除您所建立的測試儲存體帳戶。
刪除您建立的使用者。