什么是 OneLake 共享访问签名 (SAS)? (预览版)

OneLake 共享访问签名 (SAS) 提供对 OneLake 中资源的安全、短期和委派访问权限。 使用 OneLake SAS 可以精细控制客户端访问数据的方式。 例如:

  • 客户端可以访问哪些资源。
  • 它们对这些资源拥有哪些权限。
  • SAS 的有效期是多长。

每个 OneLake SAS(和用户委派密钥)始终由一个 Microsoft Entra 标识提供支持,最长生存期为 1 小时,并且只能授予对数据项(如湖屋)中的文件夹和文件的访问权限。

重要

此功能目前为预览版

共享访问签名的工作方式

共享访问签名是附加到适用于 OneLake 资源的 URI 的令牌。 该令牌包含一组特殊的查询参数,用于指示客户端如何访问资源。 其中一个查询参数是签名。 它基于 SAS 参数构造,已通过用来创建该 SAS 的密钥完成签名。 OneLake 使用此签名来授予对 OneLake 中文件夹或文件的访问权限。 OneLake SAS 使用的格式和属性与 Azure 存储用户委派的 SAS 相同,但对其生存期和作用域具有更多的安全限制。

OneLake SAS 使用用户委托密钥 (UDK) 进行签名,该密钥由 Microsoft Entra 凭据提供支持。 你可以使用“获取用户委派密钥”操作请求用户委派密钥。 然后,使用此密钥(在密钥仍然有效期间)生成 OneLake SAS。 该 Microsoft Entra 帐户的权限以及显式授予 SAS 的权限,决定客户端对资源的访问权限。

授权 OneLake SAS

当客户端或应用程序使用 OneLake SAS 访问 OneLake 时,系统将使用已请求用于创建 SAS 的 UDK 的 Microsoft Entra 凭据进行授权。 因此,授予该 Microsoft Entra 标识的所有 OneLake 权限都适用于 SAS,这意味着 SAS 永远不能超过创建 SAS 的用户的权限。 此外,在创建 SAS 时,你会显式授予权限,因此可为 SAS 提供范围更加受限的权限。 在 Microsoft Entra 标识、显式授予的权限和短生存期之间,OneLake 遵循安全最佳做法来提供对数据的委派访问权限。

何时使用 OneLake SAS

OneLake SASs 委派对 OneLake 的安全和临时访问,并由 Microsoft Entra 标识提供支持。 没有本机 Microsoft Entra 支持的应用程序可以使用 OneLake SAS 来临时访问加载数据,而无需复杂的设置和集成工作。

OneLake SAS 还支持充当用户与其数据之间的代理的应用程序。 例如,某些独立软件供应商 (ISV) 在用户与其 Fabric 工作区之间运行,提供额外的功能,并可能使用不同的身份验证模型。 通过使用 OneLake SAS 委派访问权限,这些 ISV 可以管理对基础数据的访问,并提供对数据的直接访问,即使其用户没有 Microsoft Entra 标识也是如此。

管理 OneLake SAS

Fabric 租户中的两个设置管理 OneLake SAS 的使用。 第一个是租户级设置,使用生存期较短的用户委派 SAS 令牌,以管理用户委派密钥的生成。 由于用户委托密钥在租户级别生成,因此由租户设置控制。 默认情况下,此设置处于打开状态,因为这些用户委派密钥对请求它们的 Microsoft Entra 标识具有等效的权限,并且生存期始终较短。

注意

关闭此功能将阻止所有工作区使用 OneLake SAS,因为所有用户都无法生成用户委派密钥。

第二个设置是委派工作区设置,使用 OneLake 用户委派的 SAS 令牌进行身份验证,用于控制工作区是否接受 OneLake SAS。 此设置默认处于关闭状态,可由想要在其工作区中使用 OneLake SAS 进行身份验证的工作区管理员启用。 租户管理员可以通过租户设置为所有工作区启用此设置,或将其留给工作区管理员启用。

你也可以通过 Microsoft Purview 合规性门户监视用户委派密钥的创建。 你可以搜索操作名称 generateonelakeudk 以查看租户中生成的所有密钥。 由于创建 SAS 是客户端操作,因此你无法监视或限制 OneLake SAS 的创建,而只能监视或限制 UDK 的生成。

OneLake SAS 的最佳做法

  • 始终使用 HTTPS 创建或分发 SAS,以防止试图拦截 SAS 的中间人攻击。
  • 跟踪令牌、密钥和 SAS 令牌到期时间。 OneLake 用户委托密钥和 SAS 的最大生存期为 1 小时。 尝试请求 UDK 或生成生存期超过 1 小时的 SAS 会导致请求失败。 为了防止 SAS 用于延长过期 OAuth 令牌的生存期,令牌的生存期还必须长于用户委托密钥和 SAS 的到期时间。
  • 请谨慎使用 SAS 的开始时间。 将 SAS 的开始时间设置为当前时间可能会导致前几分钟发生故障,因为计算机之间的开始时间不同(时钟倾斜)。 将开始时间设置为过去几分钟有助于防止出现这些错误。
  • 向 SAS 授予可能的最低权限。 为尽可能少的资源提供最低所需的特权是一种安全最佳做法,如果 SAS 遭到入侵,则会降低影响。
  • 监视用户委托密钥的生成。 你可以在 Microsoft Purview 合规门户中审核用户委派密钥的创建。 搜索操作名称“generateonelakeudk”以查看租户中生成的密钥。
  • 了解 OneLake SAS 的限制。 由于 OneLake SAS 不能具有工作区级权限,因此其与某些 Azure 存储工具不兼容,这些工具需要容器级权限遍历数据,例如 Azure 存储资源管理器。