使用 Azure Active Directory 來授權 blob 的存取權

Azure 儲存體支援使用 Azure Active Directory (Azure AD) 來授權對 blob 資料的要求。 使用 Azure AD 時,您可以使用 azure 角色型存取控制 (azure RBAC) 來授與許可權給安全性主體,該安全性主體可能是使用者、群組或應用程式服務主體。 安全性主體會由 Azure AD 進行驗證,以傳回 OAuth 2.0 權杖。 然後,權杖可以用來授權對 Blob 服務的要求。

使用 Azure AD 對 Azure 儲存體的授權,可提供更高的安全性,並讓共用金鑰授權更容易使用。 Microsoft 建議您盡可能使用 Azure AD 的 blob 應用程式授權,以確保具有最低必要許可權的存取權。

使用 Azure AD 的授權適用于所有公用區域和國家雲端中的所有一般用途和 Blob 儲存體帳戶。 只有使用 Azure Resource Manager 部署模型建立的儲存體帳戶支援 Azure AD 授權。

Blob 儲存體還支援建立共用存取簽章 (使用 Azure AD 認證簽署的 SAS) 。 如需詳細資訊,請參閱 使用共用存取簽章授與資料的有限存取權

blob 的 Azure AD 總覽

當安全性主體 (使用者、群組或應用程式) 嘗試存取 blob 資源時,必須授權要求,除非它是可供匿名存取的 blob。 使用 Azure AD,對資源的存取是兩個步驟的程序。 首先,會驗證安全性主體的身分識別,並傳回 OAuth 2.0 權杖。 接下來,權杖會當做要求的一部分傳遞給 Blob 服務,而服務會使用此權杖來授權存取指定的資源。

驗證步驟要求應用程式在執行時間要求 OAuth 2.0 存取權杖。 如果應用程式是在 azure 實體(例如 Azure VM、虛擬機器擴展集或 Azure Functions 應用程式)中執行,則可以使用 受控識別 來存取 blob 資料。 若要瞭解如何授權受控識別對 Azure Blob 服務提出的要求,請參閱 使用適用于 azure 資源的受控識別來授權存取 Blob 資料

授權步驟需要將一或多個 Azure RBAC 角色指派給提出要求的安全性主體。 如需詳細資訊,請參閱 指派 Azure 角色以取得存取權限

對 Azure Blob 服務提出要求的原生應用程式和 web 應用程式,也可以授權 Azure AD 的存取權。 若要瞭解如何要求存取權杖,並使用它來授權 blob 資料的要求,請參閱使用 Azure 儲存體應用程式的 Azure AD 授權存取 Azure 儲存體

指派存取權限的 Azure 角色

Azure Active Directory (Azure AD) 透過 Azure RBAC 授與受保護資源的存取權限。 Azure 儲存體會定義一組內建的 RBAC 角色,其中包含用來存取 blob 資料的一般許可權集。 您也可以定義自訂角色以存取 blob 資料。 若要深入瞭解如何為 blob 存取指派 Azure 角色,請參閱 指派 azure 角色以存取 blob 資料

Azure AD 的安全性主體可能是使用者、群組、應用程式服務主體,或適用于 Azure 資源的受控識別。 指派給安全性主體的 RBAC 角色會決定主體將擁有的許可權。 若要深入瞭解如何為 blob 存取指派 Azure 角色,請參閱 指派 azure 角色以存取 blob 資料

在某些情況下,您可能需要啟用 blob 資源的細微存取,或在您有大量的儲存體資源角色指派時簡化許可權。 您可以使用 Azure 屬性型存取控制 (Azure ABAC) 來設定角色指派的條件。 您可以使用條件搭配 自訂角色 或選取內建角色。 如需使用 ABAC 設定 Azure 儲存體資源條件的詳細資訊,請參閱 使用 Azure 角色指派條件授權存取 blob (預覽) 。 如需有關 blob 資料作業支援條件的詳細資訊,請參閱Azure 儲存體 (preview) 中的 Azure 角色指派條件的動作和屬性

資源範圍

將 Azure RBAC 角色指派給安全性主體之前,請先決定安全性主體應具備的存取範圍。 最佳做法的要求是,最好只授與最小的可能範圍。 在更廣泛的範圍中定義的 Azure RBAC 角色會由其下的資源繼承。

從最小範圍開始,您可以在下列層級範圍存取 Azure blob 資源:

  • 個別容器。 在此範圍中,角色指派會套用至容器中的所有 Blob,以及容器屬性和中繼資料。
  • 儲存體帳戶。 在此範圍中,角色指派會套用至所有容器及其 blob。
  • 資源群組。 在此範圍中,角色指派會套用至資源群組中所有儲存體帳戶的所有容器。
  • 訂用帳戶。 在此範圍中,角色指派會套用至訂用帳戶中所有資源群組中所有儲存體帳戶的所有容器。
  • 管理群組。 在此範圍中,角色指派會套用到管理群組中所有訂用帳戶內所有資源群組中所有儲存體帳戶的所有容器。

如需 Azure RBAC 角色指派範圍的詳細資訊,請參閱 瞭解 AZURE rbac 的範圍

適用于 blob 的 Azure 內建角色

Azure RBAC 提供數個內建角色,可讓您使用 Azure AD 和 OAuth 來授權存取 blob 資料。 在 Azure 儲存體中提供資料資源許可權的一些角色範例包括:

若要瞭解如何將 Azure 內建角色指派給安全性主體,請參閱 指派 azure 角色以存取 blob 資料。 若要瞭解如何列出 Azure RBAC 角色及其許可權,請參閱 列出 azure 角色定義

如需有關如何為 Azure 儲存體定義內建角色的詳細資訊,請參閱了解角色定義。 如需建立 Azure 自訂角色的詳細資訊,請參閱 azure 自訂角色

只有明確針對資料存取定義的角色允許安全性主體存取 blob 資料。 內建角色(例如 擁有 者、參與者儲存體帳戶參與者)允許安全性主體管理儲存體帳戶,但不會透過 Azure AD 提供該帳戶內 blob 資料的存取權。 但是,如果角色包含 Microsoft 儲存體/storageAccounts/listKeys/action 之後,指派該角色的使用者就可以透過具有帳戶存取金鑰的共用金鑰授權來存取儲存體帳戶中的資料。 如需詳細資訊,請參閱 選擇如何授權存取 Azure 入口網站中的 blob 資料

如需有關適用於資料服務和管理服務的 Azure 儲存體 Azure 內建角色的詳細資訊,請參閱 Azure RBAC 的 Azure 內建角色中的 儲存體 一節。 此外,如需在 Azure 中提供權限的不同類型角色詳細資訊,請參閱傳統訂用帳戶管理員角色、Azure 角色和 Azure AD 角色

重要

Azure 角色指派最多可能需要30分鐘的時間才會傳播。

資料作業的存取權限

如需呼叫特定 Blob 服務作業所需許可權的詳細資訊,請參閱 呼叫資料作業的許可權

使用 Azure AD 帳戶存取資料

您可以使用使用者的 Azure AD 帳戶或使用帳戶存取金鑰 (共用金鑰授權) ,來授權透過 Azure 入口網站、PowerShell 或 Azure CLI 存取 blob 資料。

從 Azure 入口網站存取資料

Azure 入口網站可以使用您的 Azure AD 帳戶或帳戶存取金鑰來存取 Azure 儲存體帳戶中的 blob 資料。 Azure 入口網站所使用的授權配置取決於指派給您的 Azure 角色。

當您嘗試存取 blob 資料時,Azure 入口網站會先檢查您是否已將 Azure 角色指派給 Microsoft。儲存體/storageAccounts/listkeys/action。 如果您已獲指派具有此動作的角色,則 Azure 入口網站會使用帳戶金鑰來透過共用金鑰授權來存取 blob 資料。 如果您未獲指派具有此動作的角色,則 Azure 入口網站會嘗試使用您的 Azure AD 帳戶來存取資料。

若要使用您的 Azure AD 帳戶從 Azure 入口網站存取 blob 資料,您需要存取 blob 資料的許可權,而且您也需要許可權,才能流覽 Azure 入口網站中的儲存體帳戶資源。 Azure 儲存體所提供的內建角色會授與 blob 資源的存取權,但不會將許可權授與儲存體帳戶資源。 基於這個理由,入口網站的存取也需要指派 Azure Resource Manager 角色 (例如讀者角色),並將範圍設定在儲存體帳戶層級或更高層級。 讀取 者角色會授與最受限制的許可權,但也可以接受另一個授與儲存體帳戶管理資源存取權的 Azure Resource Manager 角色。 若要深入瞭解如何將許可權指派給使用者,以使用 Azure AD 帳戶在 Azure 入口網站中進行資料存取,請參閱指派 Azure 角色以存取 blob 資料

Azure 入口網站指出當您流覽至容器時,所使用的授權配置。 如需有關入口網站中資料存取的詳細資訊,請參閱 選擇如何授權存取 Azure 入口網站中的 blob 資料

從 PowerShell 或 Azure CLI 的資料存取

Azure CLI 和 PowerShell 支援使用 Azure AD 認證登入。 登入之後,您的會話就會在這些認證下執行。 若要深入瞭解,請參閱下列其中一篇文章:

功能支援

下表說明如何在您的帳戶中支援這項功能,以及啟用特定功能時對支援的影響。

儲存體帳戶類型 Blob 儲存體 (預設支援) Data Lake Storage Gen2 1 NFS 3.0 1 SFTP 1
標準一般用途 v2 是 是 否 否
進階區塊 Blob 是 是 否 否

1 Data Lake Storage Gen2、網路檔案系統 (NFS) 3.0 通訊協定,以及 SSH 檔案傳輸通訊協定 (SFTP) 支援全部都需要已啟用階層命名空間的儲存體帳戶。

下一步