配置存储帐户的访问控制
对 Blob、文件、队列或表服务中安全资源提出的请求必须获得授权。 授权可确保存储帐户中的资源仅在你想要它们被访问时可访问,并且仅可供你授予访问权限的用户或应用程序访问。
下表介绍了由 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 域服务授权。 Azure 文件支持通过 Microsoft Entra 域服务在服务器消息块 (SMB) 上进行基于身份的授权。 可以使用 RBAC 来精细控制客户端对存储帐户中 Azure 文件存储资源的访问权限。
- 适用于 Azure 文件存储的 Active Directory (AD) 授权。 Azure 文件存储支持通过 AD 在 SMB 上进行基于标识的授权。 AD 域服务可以托管在本地计算机或 Azure VM 中。 支持从域加入计算机使用 AD 凭据(在本地或 Azure 中)对文件存储进行 SMB 访问。 可以将 RBAC 用于共享级别访问控制和 NTFS DACL,以强制实施目录和文件级权限。
- 共享密钥:共享密钥授权依赖于帐户访问密钥和其他参数来生成在授权标头中的请求上传递的加密签名字符串。
- 共享访问签名:共享访问签名 (SAS) 以指定的权限在指定的时间间隔内委托对帐户中特定资源的访问权限。
- 对容器和 Blob 的匿名访问:可选择在容器或 Blob 级别公开 Blob 资源。 任何用户都可访问公共容器或 Blob 来实现匿名读取访问。 针对公共容器和 Blob 的读取请求不需要授权。
使用 Microsoft Entra ID 对 blob、文件、队列和表数据的访问进行身份验证和授权,提供了优于其他授权选项的安全性和易用性。 例如,使用 Microsoft Entra ID,无需像使用共享密钥授权那样将帐户访问密钥与代码一起存储。 尽管可以继续对 Blob 和队列应用程序使用共享密钥授权,但 Microsoft 建议你尽可能迁移到 Microsoft Entra ID。
同样地,可以继续使用共享访问签名 (SAS) 来授予对存储帐户中资源的细粒度访问权限,但 Microsoft Entra ID 提供了类似的功能,而无需管理 SAS 令牌或无需担心撤消被盗用的 SAS。