選擇如何在 Azure 入口網站授與 Blob 資料的存取權

當您使用 Azure 入口網站存取 BLOb 資料時,入口網站會在背景中向 Azure 儲存體發出要求。 使用 Microsoft Entra 帳戶或儲存體帳戶存取金鑰,即可對 Azure 儲存體所提出的要求進行授權。 入口網站會指出您所使用的方法,如果您有適當的權限,便會讓您能夠在兩者之間切換。

您也可以指定如何在 Azure 入口網站中授權個別的 blob 上傳作業。 根據預設,入口網站會使用您已使用的任何方法來授權 blob 上傳作業,但您可以選擇在上傳 blob 時變更此設定。

存取 blob 資料的必要使用權限

根據您要在 Azure 入口網站中授與 blob 資料存取權的方式,您將需要特定權限。 在大部分情況下,這些權限會透過 Azure 角色型存取控制 (Azure RBAC) 提供。 如需有關 Azure RBAC 的詳細資訊,請參閱什麼是 Azure 角色型存取控制 (Azure RBAC)?

使用帳戶存取金鑰

若要使用帳戶存取金鑰來存取 blob 資料,您必須擁有指派給您的 Azure 角色,其中包含 Azure RBAC 動作Microsoft.Storage/storageAccounts/listkeys/action。 這個 Azure 角色可以是內建或自訂角色。 支援 Microsoft.Storage/storageAccounts/listkeys/action 的內建角色包括下列各項,依最低到最高權限的順序排列:

當您嘗試在 Azure 入口網站中存取 blob 資料時,入口網站會先檢查系統是否已指派您角色使用 Microsoft.Storage/storageAccounts/listkeys/action。 如果系統已指派您可以使用此動作的角色,則入口網站會使用帳戶金鑰來存取 blob 資料。 如果您未獲指派具有此動作的角色,則入口網站會嘗試使用您的 Microsoft Entra 帳戶來存取資料。

重要

使用 Azure Resource Manager ReadOnly 鎖定來鎖住儲存體帳戶時,不允許該儲存體帳戶執行列出金鑰作業。 List Keys 是一個 POST 作業,而在帳戶設定了 ReadOnly 鎖定時,所有 POST 作業都無法執行。 因此,使用 ReadOnly 鎖定來鎖定帳戶時,使用者必須使用 Microsoft Entra 認證來存取入口網站中的 Blob 資料。 如需使用 Microsoft Entra ID 存取入口網站中 Blob 資料的詳細資訊,請參閱使用您的 Microsoft Entra 帳戶

注意

傳統訂用帳戶管理員角色「服務管理員」和「共同管理員」含有 Azure Resource Manager 擁有者角色的相等權限。 擁有者角色包含所有動作,包括 Microsoft.Storage/storageAccounts/listkeys/action,所以具備其中一項管理員角色的使用者也可以使用帳戶金鑰來存取 blob 資料。 如需詳細資訊,請參閱 Azure 角色、Microsoft Entra 角色和傳統訂用帳戶管理員角色

使用您的 Microsoft Entra 帳戶

若要使用您的 Microsoft Entra 帳戶從 Azure 入口網站存取 Blob 資料,您必須符合下列這兩個條件:

  • 您已獲指派可存取 blob 資料的內建或自訂角色。
  • 您已獲指派 Azure Resource Manager 讀者角色,最小使用權限範圍是儲存體帳戶層級或更高層級。 讀者角色會授與最受限制的權限,但也可以接受另一個 Azure Resource Manager 角色來授與儲存體帳戶管理資源的存取權。

Azure Resource Manager 讀者角色允許使用者檢視儲存體帳戶資源,但無權修改。 此角色不會提供 Azure 儲存體中資料的讀取權限,而只會提供帳戶管理資源的讀取權限。 使用者需要具備讀取者角色,才能瀏覽至 Azure 入口網站中的 blob 容器。

如需支援存取 blob 資料的內建角色相關詳細資訊,請參閱使用 Microsoft Entra ID 授權存取 blob

自訂角色可以支援內建角色提供的相同權限所組成的各種組合。 如需建立 Azure 自訂角色的詳細資訊,請參閱 Azure 自訂角色了解 Azure 資源的角色定義

若要在入口網站中檢視 blob 資料,請瀏覽至您儲存體帳戶的 [總覽],然後按一下 [blob] 的連結。 或者,您也可以瀏覽至功能表中的 [容器] 區段。

Screenshot showing how to navigate to blob data in the Azure portal

決定目前的驗證方法

當您瀏覽至佇列時,Azure 入口網站會指出您目前是使用帳戶存取金鑰還是 Microsoft Entra 帳戶來進行驗證。

使用帳戶存取金鑰進行驗證

如果您要使用帳戶存取金鑰進行驗證,則會在入口網站中看到指定為驗證方法的存取金鑰

Screenshot showing user currently accessing containers with the account key

若要切換為使用 Microsoft Entra 帳戶,請按一下圖片中醒目顯示的連結。 如果您透過指派給您的 Azure 角色取得適當權限,就可以繼續執行。 但是,如果您沒有正確的權限,則會看到如下所示的錯誤訊息:

Error shown if Microsoft Entra account does not support access

請注意,如果您的 Microsoft Entra 帳戶缺少檢視 Blob 的權限,則清單中不會出現任何 Blob。 按一下 [切換為存取金鑰] 連結,再次使用存取金鑰進行驗證。

使用您的 Microsoft Entra 帳戶進行驗證

如果您要使用 Microsoft Entra 帳戶進行驗證,您會在入口網站中看到指定為驗證方法的 Microsoft Entra 使用者帳戶

Screenshot showing user currently accessing containers with Microsoft Entra account

若要切換為使用帳戶存取金鑰,請按一下圖片中醒目顯示的連結。 如果您具備帳戶金鑰的存取權,就可以繼續執行。 但是,如果您沒有帳戶金鑰的存取權,則會看到如下所示的錯誤訊息:

Error shown if you do not have access to account key

請注意,如果您沒有帳戶金鑰的存取權,清單就不會顯示任何 blob。 按一下 [切換為 Microsoft Entra 使用者帳戶] 連結,再次使用您的 Microsoft Entra 帳戶進行驗證。

指定如何授權 blob 上傳作業

當您從 Azure 入口網站上傳 blob 時,可以指定是否要使用帳戶存取金鑰或您的 Microsoft Entra 認證來驗證和授權該作業。 根據預設,入口網站會使用目前的驗證方法,如決定目前的驗證方法所示。

若要指定如何授權 blob 上傳作業,請遵循下列步驟:

  1. 在 Azure 入口網站中,瀏覽至您要上傳 blob 的容器。

  2. 選取上傳按鈕。

  3. 展開 [進階] 區段,以顯示 blob 的進階屬性。

  4. 在 [驗證類型] 欄位中,指出您是想要使用 Microsoft Entra 帳戶還是帳戶存取金鑰來授權上傳作業,如下圖所示:

    Screenshot showing how to change authorization method on blob upload

在 Azure 入口網站中預設為 Microsoft Entra 授權

當您建立新的儲存體帳戶時,可以指定當使用者瀏覽至 Blob 資料時,Azure 入口網站將預設為使用 Microsoft Entra ID 進行授權。 您也可以為現有的儲存體帳戶指定此設定。 這項設定只會指定預設授權方法,因此請記住,使用者可以覆寫此設定,並選擇使用帳戶金鑰來授權資料存取。

若要指定當您建立儲存體帳戶時,入口網站預設為使用 Microsoft Entra 授權來存取資料,請遵循下列步驟:

  1. 建立新的儲存體帳戶,請依照建立儲存體帳戶中的指示進行。

  2. 在 [進階] 索引標籤的 [安全性] 區段中,勾選 [在 Azure 入口網站中預設為 Microsoft Entra 授權] 旁的方塊。

    Screenshot showing how to configure default Microsoft Entra authorization in Azure portal for new account

  3. 選取 [檢閱 + 建立] 按鈕,以執行驗證並建立帳戶。

若要針對現有儲存體帳戶更新此設定,請遵循下列步驟:

  1. 瀏覽至 Azure 入口網站中的帳戶概觀。

  2. 在 [設定] 底下,選取 [設定]

  3. 將 [在 Azure 入口網站中預設為 Microsoft Entra 授權] 設為 [已啟用]

    Screenshot showing how to configure default Microsoft Entra authorization in Azure portal for existing account

預設不會設定儲存體帳戶的 defaultToOAuthAuthentication 屬性,而且在您明確設定之後,才會傳回一值。

下一步