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

授权访问 Azure 存储中的数据

每次访问存储帐户中的数据时,客户端应用程序都会通过 HTTP/HTTPS 向 Azure 存储发出请求。 默认情况下,Azure 存储中的每个资源都受到保护,并且必须授权对安全资源的每个请求。 授权可确保客户端应用程序具有适当权限来访问存储帐户中的特定资源。

了解数据操作授权

下表介绍了 Azure 存储为授权数据访问权限而提供的选项:

Azure 项目 共享密钥(存储帐户密钥) 共享访问签名 (SAS) Azure Active Directory (Azure AD) 本地 Active Directory 域服务 匿名公共读取访问权限 存储本地用户
Azure Blob 支持 支持 支持 不支持 支持 支持,仅适用于 SFTP
Azure 文件存储 (SMB) 支持 不支持 仅支持 AAD 域服务 支持,凭据必须同步到 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)?(预览版)

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

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

  • 用于容器和 blob 的匿名公共读取访问。 配置匿名访问后,客户端无需授权即可读取 Blob 数据。 有关详细信息,请参阅管理对容器和 Blob 的匿名读取访问

    可以禁止对存储帐户的匿名公共读取访问。 禁止匿名公共读取访问后,用户无法将容器配置为启用匿名访问,且所有请求都必须获得授权。 有关详细信息,请参阅阻止对容器和 Blob 的匿名公共读取访问

  • 存储本地用户可用于通过 SFTP 访问 blob 或通过 SMB 访问文件。 存储本地用户支持容器级别权限进行授权。 请参阅使用 SSH 文件传输协议 (SFTP) 连接到 Azure Blob 存储,详细了解如何将存储本地用户与 SFTP 结合使用。

保护访问密钥

存储帐户访问密钥类似于存储帐户的根密码。 始终要小心保护访问密钥。 使用 Azure 密钥保管库安全地管理和轮换密钥。 避免将访问密钥分发给其他用户、对其进行硬编码或将其以纯文本形式保存在其他人可以访问的任何位置。 如果你认为访问密钥可能已泄露,请轮换密钥。

注意

Microsoft 建议使用 Azure Active Directory (Azure AD) 而不是使用帐户密钥(共享密钥授权)来为针对 Blob 和队列数据的请求授权。 与共享密钥授权相比,使用 Azure AD 进行授权提供了更高的安全性和易用性。

若要使用 Azure AD 条件访问策略保护 Azure 存储帐户,则必须禁止存储帐户的共享密钥授权。 有关如何禁止共享密钥授权的详细信息,请参阅阻止对 Azure 存储帐户进行共享密钥授权

后续步骤