你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

授权对 Azure 存储的请求

对 Blob、文件、队列或表服务中安全资源提出的每个请求都必须获得授权。 授权可确保存储帐户中的资源仅在你想要它们被访问时可访问,并且仅可供你授予访问权限的用户或应用程序访问。

重要

为了获得最佳安全性,Microsoft 建议将 Microsoft Entra ID 与托管标识结合使用,尽可能对 blob、队列和表数据的请求进行授权。 与共享密钥授权相较,使用Microsoft Entra ID和托管标识进行授权可提供更高的安全性和易用性。 若要了解详细信息,请参阅使用 Microsoft Entra ID 授权。 若要详细了解托管标识,请参阅 什么是 Azure 资源的托管标识

对于托管在 Azure 外部的资源(例如本地应用程序),可以通过 Azure Arc 使用托管标识。例如,在已启用 Azure Arc 的服务器上运行的应用可以使用托管标识连接到 Azure 服务。 若要了解详细信息,请参阅 使用已启用 Azure Arc 的服务器对 Azure 资源进行身份验证

对于使用共享访问签名 (SAS) 的方案,Microsoft 建议使用用户委托 SAS。 用户委托 SAS 使用Microsoft Entra凭据而不是帐户密钥进行保护。 若要了解共享访问签名,请参阅Create用户委托 SAS

下表介绍了多个选项,Azure 存储提供这些选项,用于授权对资源的访问:

Azure 项目 共享密钥(存储帐户密钥) 共享访问签名 (SAS) Microsoft Entra ID 本地 Active Directory 域服务 匿名公共读取访问权限
Azure Blob 支持 支持 支持 不支持 支持
Azure 文件存储 (SMB) 支持 不支持 支持 Microsoft Entra 域服务 或 Microsoft Entra Kerberos 受支持,必须将凭据同步到 Microsoft Entra ID 不支持
Azure 文件存储 (REST) 支持 支持 支持 不支持 不支持
Azure 队列 支持 支持 支持 不支持 不支持
Azure 表 支持 支持 支持 不支持 不支持

下面简要介绍每个授权选项:

  • Microsoft Entra ID:Microsoft Entra 是 Microsoft 基于云的标识和访问管理服务。 Microsoft Entra ID集成可用于 Blob、文件、队列和表服务。 使用 Microsoft Entra ID,可以通过基于角色的访问控制 (RBAC) 为用户、组或应用程序分配精细访问权限。 有关与 Azure 存储Microsoft Entra ID集成的信息,请参阅使用 Microsoft Entra ID 授权

  • Microsoft Entra 域服务Azure 文件存储授权。 Azure 文件存储支持通过服务器消息块 (SMB) 通过 Microsoft Entra 域服务 进行基于标识的授权。 可以使用 RBAC 对客户端对存储帐户中Azure 文件存储资源的访问进行精细控制。 有关使用域服务Azure 文件存储身份验证的详细信息,请参阅Azure 文件存储基于标识的授权

  • Azure 文件存储的 Active Directory (AD) 授权。 Azure 文件存储支持通过 AD 通过 SMB 进行基于标识的授权。 AD 域服务可以托管在本地计算机或 Azure VM 中。 支持从已加入域的计算机(本地或 Azure 中)使用 AD 凭据对文件进行 SMB 访问。 可以使用 RBAC 进行共享级访问控制,使用 NTFS DACL 强制实施目录和文件级别权限。 有关使用域服务Azure 文件存储身份验证的详细信息,请参阅Azure 文件存储基于标识的授权

  • 共享密钥: 共享密钥授权依赖于帐户访问密钥和其他参数来生成加密签名字符串,该字符串在 授权 标头中的请求上传递。 有关共享密钥授权的详细信息,请参阅 使用共享密钥授权

  • 共享访问签名: 共享访问签名 (SAS) 指定权限和指定时间间隔内委派对帐户中特定资源的访问权限。 有关 SAS 的详细信息,请参阅 使用共享访问签名委托访问权限

  • 对容器和 Blob 的匿名访问: 可以选择在容器或 Blob 级别公开 Blob 资源。 任何用户都可访问公共容器或 Blob 来实现匿名读取访问。 针对公共容器和 Blob 的读取请求不需要授权。 有关详细信息,请参阅 为 Azure Blob 存储中的容器和 Blob 启用公共读取访问

提示

使用 Microsoft Entra ID 对 blob、文件、队列和表数据的访问进行身份验证和授权,提供比其他授权选项更高的安全性和易用性。 例如,通过使用 Microsoft Entra ID,可以避免使用代码存储帐户访问密钥,就像使用共享密钥授权一样。 尽管可以继续对 Blob 和队列应用程序使用共享密钥授权,但 Microsoft 建议尽可能迁移到Microsoft Entra ID。

同样,可以继续使用共享访问签名 (SAS) 授予对存储帐户中资源的精细访问权限,但Microsoft Entra ID提供类似的功能,而无需管理 SAS 令牌,也无需担心撤销遭到入侵的 SAS。

有关 Azure 存储中Microsoft Entra ID集成的详细信息,请参阅使用 Microsoft Entra ID 授权访问 Azure Blob 和队列