授權存取 Azure 儲存體中的資料

每次存取儲存體帳戶中的資料時,用戶端應用程式都會透過 HTTP/HTTPS 對 Azure 儲存體發出要求。 依預設,Azure 儲存體中的每項資源都會受到保護,而且向安全資源發出的每個要求都必須獲得授權。 授權可確保用戶端應用程式具有適當權限,可存取儲存體帳戶中的特定資源。

了解資料作業的授權

下表說明 Azure 儲存體提供授權存取資料的選項:

Azure 成品 共用金鑰 (儲存體帳戶金鑰) 共用存取簽章 (SAS) Azure Active Directory (Azure AD) 內部部署 Active Directory Domain Services 匿名公用讀取存取權 儲存體本機使用者
Azure Blob 支援 支援 支援 不支援 支援但不建議 僅支援 SFTP
Azure 檔案 (SMB) 支援 不支援 支援,僅限使用 AAD Domain Services 支援,認證必須同步至 Azure AD 不支援 支援
Azure 檔案 (REST) 支援 支援 不支援 不支援 不支援 不支援
Azure 佇列 支援 支援 支援 不支援 不支援 不支援
Azure 資料表 支援 支援 支援 不支援 不支援 不支援

下面簡要說明每個授權選項:

  • 共用金鑰授權,適用於 Blob、檔案、佇列和資料表。 使用共用金鑰的用戶端會在每個要求中,傳遞使用儲存體帳戶存取金鑰所簽署的標頭。 如需詳細資訊,請參閱使用共用金鑰進行授權

    Microsoft 建議您禁止儲存體帳戶的共用金鑰授權。 禁止使用共用金鑰授權時,用戶端必須使用 Azure AD 或使用者委派 SAS 來授權該儲存體帳戶中的資料要求。 如需詳細資訊,請參閱防止 Azure 儲存體帳戶使用共用金鑰授權

  • 共用存取簽章,適用於 Blob、檔案、佇列和資料表。 共用存取簽章 (SAS) 可透過簽署的 URL 提供儲存體帳戶資源的有限委派存取權。 簽署的 URL 會指定授與資源的權限,以及指定有效簽章的間隔。 服務 SAS 或帳戶 SAS 會以帳戶金鑰簽署,而使用者委派 SAS 會以 Azure AD 認證簽署且僅適用於 Blob。 如需詳細資訊,請參閱使用共用存取簽章 (SAS)

  • Azure Active Directory (Azure AD) 整合,用來授權向 blob、佇列和資料表資源發出的要求。 Microsoft 建議您盡可能使用 Azure AD 認證來授權資料要求,以獲得最佳的安全性和使用便利性。 如需 Azure AD 整合的詳細資訊,請參閱 blob佇列資料表資源的相關文章。

    您可以使用 Azure 角色型存取控制 (Azure RBAC) 來管理儲存體帳戶中安全性主體的 blob、佇列和資料表資源使用權限。 您也可以使用 Azure 屬性型存取控制 (ABAC) ,將條件新增至 Blob 資源的 Azure 角色指派。

    如需有關 RBAC 的詳細資訊,請參閱什麼是 Azure 角色型存取控制 (Azure RBAC)?

    如需 ABAC 及其功能狀態的詳細資訊,請參閱:

    什麼是 Azure 屬性型存取控制 (Azure ABAC)?

    ABAC 條件功能的狀態

    Azure 儲存體中 ABAC 條件功能的狀態

  • Azure Active Directory Domain Services (Azure AD DS) 授權適用於 Azure 檔案儲存體。 Azure 檔案儲存體支援透過 Azure AD DS 使用伺服器訊息區 (SMB) 的身分識別型授權。 您可以使用 Azure RBAC 對用戶端對儲存體帳戶中Azure 檔案儲存體資源的存取進行細微控制。 如需使用 Domain Services 進行 Azure 檔案儲存體驗證的詳細資訊,請參閱概觀

  • 內部部署 Active Directory Domain Services (AD DS 或內部部署 AD DS) 驗證適用於 Azure 檔案儲存體。 Azure 檔案儲存體支援透過 AD DS 使用 SMB 進行身分識別型授權。 您的 AD DS 環境可以裝載於內部部署機器或 Azure VM 中。 支援從已加入網域的電腦使用 AD DS 認證對檔案儲存體進行 SMB 存取,不論是在內部部署或在 Azure 環境中。 您可以使用組合方式控制存取:Azure RBAC 用於共用層級存取控制,以及 NTFS DACL 用於目錄/檔案層級權限執行。 如需使用 Domain Services 進行 Azure 檔案儲存體驗證的詳細資訊,請參閱概觀

  • 支援 Blob 資料的匿名公用讀取權限,但不建議這麼做。 設定匿名存取時,用戶端可以在不授權的情況下讀取 Blob 資料。 建議您停用所有儲存體帳戶的匿名存取。 如需詳細資訊,請參閱 概觀:補救 Blob 資料的匿名公用讀取權限

  • 儲存體本機使用者可用來透過 SFTP 存取 Blob 或透過 SMB 存取檔案。 儲存體本機使用者支援授權的容器層級權限。 如需儲存體本機使用者如何搭配 SFTP 使用的詳細資訊,請參閱使用 SSH 檔案傳輸通訊協定 (SFTP) 連線到 Azure Blob 儲存體

Azure 儲存體中的條件功能狀態

目前,Azure ABAC) (Azure 屬性型存取控制已正式推出, (GA) ,以控制標準儲存體帳戶效能層級中Azure Blob 儲存體、Azure Data Lake Storage Gen2和 Azure 佇列 requestresource 的存取。 它不適用於其他儲存體帳戶效能層級、資源類型和屬性,或處於預覽狀態。

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

下表依儲存體帳戶效能層級、儲存體資源類型和屬性類型顯示 ABAC 的目前狀態。 也會顯示特定屬性的例外狀況。

效能層級 資源類型 屬性類型 特定屬性 可用性
標準 Blob
Data Lake Storage Gen2
佇列
要求
resource
除了Data Lake Storage Gen2的快照集資源屬性之外的所有專案 GA
標準 Data Lake Storage Gen2 resource 快照集 預覽
標準 Blob
Data Lake Storage Gen2
佇列
主體 (principal) all 預覽
Premium Blob
Data Lake Storage Gen2
佇列
要求
resource
主體 (principal)
all 預覽

保護您的存取金鑰

儲存體帳戶存取金鑰與儲存體帳戶的根密碼類似。 請務必小心保護您的存取金鑰。 使用 Azure Key Vault,以安全的方式管理及輪替金鑰。 避免將存取金鑰散發給其他使用者、寫入程式碼,或將其以純文字儲存在他人可以存取的位置。 如果您認為金鑰可能已遭盜用,請輪替金鑰。

重要

Microsoft 建議您盡可能使用 Azure Active Directory (Azure AD),授權對 Blob 和佇列資料發出的要求,而不要使用帳戶金鑰 (共用金鑰授權)。 比起金鑰授權,使用 Azure AD 進行授權可提供優異的安全性,也更容易使用。

若要使用 Azure AD 條件式存取原則來保護 Azure 儲存體帳戶,您必須禁止儲存體帳戶的共用金鑰授權。 如需如何禁止共用金鑰授權的詳細資訊,請參閱防止 Azure 儲存體帳戶的共用金鑰授權

下一步