授權存取 Azure 儲存體中的資料
每次存取儲存體帳戶中的資料時,用戶端應用程式都會透過 HTTP/HTTPS 對 Azure 儲存體發出要求。 根據預設,Azure 儲存體中的每個資源都會受到保護,且必須授權對安全資源的每個要求。 授權可確保用戶端應用程式具有存取儲存體帳戶中特定資源的適當權限。
重要
為了實現最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 來授權對於 Blob、佇列和資料表資料的請求。 相較於共用金鑰授權,使用 Microsoft Entra ID 和受控識別來授權可提供更優異的安全性,也更容易使用。 若要深入了解受控識別,請參閱什麼是 Azure 資源受控識別?。 如需如何為 .NET 應用程式啟用和使用受控識別的範例,請參閱使用 .NET 向 Azure 資源驗證 Azure 裝載的應用程式。
對於裝載於 Azure 外部的資源,例如內部部署應用程式,您可以透過 Azure Arc 使用受控識別。例如,在已啟用 Azure Arc 的伺服器上執行的應用程式可以使用受控識別來連線到 Azure 服務。 若要深入了解,請參閱透過已啟用 Azure Arc 的伺服器向 Azure 資源進行驗證。
針對使用共用存取簽章 (SAS) 的案例,Microsoft 建議使用使用者委派 SAS。 使用者委派 SAS 會使用 Microsoft Entra 認證來保護,而不是使用帳戶金鑰。 若要了解共用存取簽章,請參閱使用共用存取簽章授與資料的有限存取權。 如需如何使用 .NET 來建立和運用使用者委派 SAS 的範例,請參閱使用 .NET 建立 Blob 的使用者委派 SAS。
資料作業的授權
下一節說明每個 Azure 儲存體服務的授權支援和建議。
下表提供 Blob 支援的授權選項相關資訊:
授權選項 | 指引 | 建議 |
---|---|---|
Microsoft Entra ID | 使用 Microsoft Entra ID 授權存取 Azure 儲存體資料 | Microsoft 建議搭配受控識別使用 Microsoft Entra ID 來授權對 Blob 資源的要求。 |
共用金鑰 (儲存體帳戶金鑰) | 使用共用金鑰進行授權 | Microsoft 建議您禁止儲存體帳戶的共用金鑰授權。 |
共用存取簽章 (SAS) | 使用共用存取簽章 (SAS) | 需要 SAS 授權時,Microsoft 建議透過使用者委派 SAS 來限制 Blob 資源的委派存取權。 |
匿名讀取存取 | 概觀:補救 Blob 資料的匿名讀取存取 | Microsoft 建議您停用所有儲存體帳戶的匿名存取。 |
儲存體本機使用者 | 僅支援 SFTP。 若要深入了解,請參閱授權 SFTP 用戶端對 Blob 儲存體的存取權 | 請參閱選項的指引。 |
下一節簡短說明 Azure 儲存體的授權選項:
共用金鑰授權:適用於 Blob、檔案、佇列和資料表。 使用共用金鑰的用戶端會在每個要求中,傳遞使用儲存體帳戶存取金鑰所簽署的標頭。 如需詳細資訊,請參閱使用共用金鑰進行授權。
應該謹慎使用儲存體帳戶存取金鑰。 任何擁有存取金鑰的人都可以授權執行目標為儲存體帳戶的要求,而且可實質存取所有資料。 Microsoft 建議您不允許儲存體帳戶的共用金鑰授權。 禁止使用共用金鑰授權時,用戶端必須使用 Microsoft Entra ID 或使用者委派 SAS 來授權該儲存體帳戶中的資料要求。 如需詳細資訊,請參閱防止 Azure 儲存體帳戶使用共用金鑰授權。
共用存取簽章,適用於 Blob、檔案、佇列和資料表。 共用存取簽章 (SAS) 會透過已簽署的 URL,對儲存體帳戶中的資源提供有限的委派存取權。 已簽署的 URL 會指定授與給資源的權限,以及簽章的有效間隔。 服務 SAS 或帳戶 SAS 會以帳戶金鑰簽署,而使用者委派 SAS 會以 Microsoft Entra 認證簽署且僅適用於 Blob。 如需詳細資訊,請參閱使用共用存取簽章 (SAS)。
Microsoft Entra 整合:適用於 Blob、佇列和資料表資源。 Microsoft 建議您盡可能搭配受控識別使用 Microsoft Entra 認證來授權資料要求,以獲得最佳的安全性和使用便利性。 如需 Microsoft Entra 整合的詳細資訊,請參閱 Blob、佇列或資料表資源的相關文章。
您可以使用 Azure 角色型存取控制 (Azure RBAC) 來管理安全性主體對儲存體帳戶中 Blob、佇列和資料表資源的權限。 您可以另外使用 Azure 屬性型存取控制 (ABAC),在 Blob 資源的 Azure 角色指派中新增條件。
如需有關 RBAC 的詳細資訊,請參閱什麼是 Azure 角色型存取控制 (Azure RBAC)?。
如需 ABAC 的詳細資訊,請參閱什麼是 Azure 屬性型存取控制 (Azure ABAC)?。 若要了解 ABAC 功能的狀態,請參閱 Azure 儲存體中 ABAC 條件功能的狀態。
Microsoft Entra 網域服務驗證:適用於 Azure 檔案儲存體。 Azure 檔案儲存體透過 Microsoft Entra Domain Services 在 伺服器訊息區 (SMB) 上支援身分識別型授權。 您可以使用 Azure RBAC 來精細控制用戶端能否存取儲存體帳戶中的 Azure 檔案儲存體資源 如需使用網域服務之 Azure 檔案儲存體驗證的詳細資訊,請參閱適用於 SMB 存取的 Azure 檔案儲存體身分識別型驗證選項概觀。
內部部署 Active Directory Domain Services (AD DS 或內部部署 AD DS) 驗證:適用於 Azure 檔案儲存體。 Azure 檔案儲存體透過 AD DS 支援透過 SMB 進行身分識別型授權。 您的 AD DS 環境可以裝載於內部部署機器或 Azure VM 中。 支援使用已加入網域機器的 AD DS 認證,在內部部署或 Azure 中使用對檔案的 SMB 存取。 您可以使用組合方式控制存取:Azure RBAC 用於共用層級存取控制,以及 NTFS DACL 用於目錄/檔案層級權限執行。 如需使用 Domain Services 進行 Azure 檔案儲存體驗證的詳細資訊,請參閱概觀。
匿名讀取存取:適用於 Blob 資源。 不建議使用此選項。 設定匿名存取時,用戶端可以在未經授權的情況下讀取 Blob 資料。 建議您停用所有儲存體帳戶的匿名存取。 如需詳細資訊,請參閱概觀:補救 Blob 資料的匿名讀取存取。
儲存體本機使用者:適用於透過 SFTP 存取的 Blob 或透過 SMB 存取的檔案。 儲存體本機使用者支援授權的容器層級權限。 如需儲存體本機使用者如何搭配 SFTP 使用的詳細資訊,請參閱使用 SSH 檔案傳輸通訊協定 (SFTP) 連線到 Azure Blob 儲存體。
保護您的存取金鑰
儲存體帳戶存取金鑰提供儲存體帳戶資料的完整存取權,並可產生 SAS 權杖。 請務必小心保護您的存取金鑰。 使用 Azure Key Vault,以安全的方式管理及輪替金鑰。 共用金鑰的存取權會授與使用者對儲存體帳戶資料的完整存取權。 共用金鑰的存取權應謹慎地加以限制和監視。 若無法使用 Microsoft Entra ID 型授權,請使用存取範圍受限的使用者委派 SAS 權杖。 避免將存取金鑰寫入程式碼,或將其以純文字儲存在他人可以存取的位置。 如果您認為金鑰可能已遭盜用,請輪替金鑰。
重要
若要防止使用者使用共用金鑰存取儲存體帳戶中的資料,您可以禁止儲存體帳戶的共用金鑰授權。 作為安全性最佳做法,建議以最低許可權對資料進行細項存取。 使用受控識別的 Microsoft Entra ID 型授權應用於支援 OAuth 的案例。 Kerberos 或 SMTP 應該用於透過 SMB 的 Azure 檔案儲存體。 針對透過 REST 的 Azure 檔案儲存體,可以使用 SAS 權杖。 如果不需要防止意外使用共用金鑰,則應停用共用金鑰存取。 如需詳細資訊,請參閱防止 Azure 儲存體帳戶使用共用金鑰授權。
若要使用 Microsoft Entra 條件式存取原則來保護 Azure 儲存體帳戶,您必須禁止儲存體帳戶的共用金鑰授權。
如果您已停用共用金鑰存取,而且您在診斷記錄中看到回報的共用金鑰授權,這表示信任的存取權正用來存取儲存體。 如需詳細資訊,請參閱 Microsoft Entra 租用戶中註冊之資源的受信任存取權。
下一步
- 使用 Microsoft Entra ID 授權存取 Blob、佇列或資料表資源。
- 使用共用金鑰進行授權
- 使用共用存取簽章 (SAS) 對 Azure 儲存體資源授與有限存取權