授權使用資料表存取Azure Active Directory

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

使用共用金鑰Azure 儲存體授權Azure AD,提供比共用金鑰授權更出色的安全性及使用便利性。 Microsoft 建議您盡可能Azure AD Blob 應用程式使用授權,以確保以最低所需的許可權存取。

所有公用Azure AD雲端的所有一般用途和 Blob 儲存空間帳戶都可以使用授權。 只有使用 Azure Resource Manager 部署模型建立儲存Azure AD授權。

Blob 儲存空間還支援在 SAS (中) 使用認證Azure AD共用存取簽名。 若要取得詳細資訊,請參閱以共用存取簽 章授予資料有限存取權

Blob Azure AD概觀

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

驗證步驟要求應用程式在執行時間要求 OAuth 2.0 存取權杖。 如果應用程式是在 Azure 實體中執行,例如 Azure VM、虛擬機器縮放集或 Azure 函數應用程式,則它可以使用受管理的身分識別來存取 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 資料。 若要深入瞭解如何指派 Azure 角色進行 Blob 存取,請參閱指派 Azure 角色以存取 Blob 資料

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

在某些情況下,您可能需要啟用 Blob 資源的細細微性存取,或簡化儲存資源大量角色指派時的許可權。 您可以使用 Azure ABAC (Azure 屬性型存取控制) 角色指派的條件。 您可以使用條件與自訂角色 或選取內建角色。 有關使用 ABAC 為 Azure 儲存資源配置條件的詳細資訊,請參閱使用 Azure 角色指派條件來授權對 Blob 的存取, (預覽 ) 。 有關 Blob 資料作業支援條件的詳細資訊,請參閱預覽版中的 Azure 角色指派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 入口網站、PowerShell 或 Azure CLI 存取 Blob 資料,可以使用使用者的 Azure AD 帳戶,或使用帳戶便捷鍵 (共用金鑰授權) 。

從 Azure 入口網站存取資料

Azure 入口網站可以使用您的 Azure AD 帳戶或帳戶便捷鍵來存取 Azure 儲存帳戶中的 Blob 資料。 Azure 入口網站使用的授權方案取決於指派給您的 Azure 角色。

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

若要使用 Azure AD 帳戶從 Azure 入口網站存取 Blob 資料,您需要存取 Blob 資料的許可權,而且您也需要許可權才能流覽 Azure 入口網站中的儲存空間帳戶資源。 使用者提供的內建角色Azure 儲存體 Blob 資源的存取權,但他們不會授予儲存帳戶資源的許可權。 基於這個原因,存取入口網站也需要指派 Azure Resource Manager 角色 ,例如讀取者角色,其範圍是儲存帳戶層級或更高版本。 Reader 角色 會授予最受限制的許可權,但另一個授予儲存空間帳戶管理資源存取權之 Azure Resource Manager 角色也是可接受的。 若要深入瞭解如何在 Azure 入口網站中以 Azure AD 指派存取資料的許可權給使用者,請參閱指派 Azure 角色以存取Blob 資料

Azure 入口網站會指出當您流覽至容器時,使用的授權方案。 有關入口網站中資料存取的資訊,請參閱選擇如何在 Azure 入口網站中授權 Blob 資料的存取權。

從 PowerShell 或 Azure CLI 存取資料

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

功能支援

下表顯示您的帳戶中如何支援此功能,以及啟用特定功能時對支援的影響。

儲存體帳戶類型 Blob 儲存體 (預設支援) Data Lake 儲存體第2 代 1 NFS 3.0 1 SFTP 1
標準通用 v2 是的 是的 不 不
進階版塊 Blob 是的 是的 不 不

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

下一個步驟