什么是 OneLake 共享访问签名(SAS)? (预览版)
OneLake 共享访问签名(SAS)提供对 OneLake 中资源的安全、短期和委派访问权限。 使用 OneLake SAS,可以精细控制客户端如何访问数据。 例如:
- 客户端可以访问哪些资源。
- 他们对资源拥有哪些权限。
- SAS 的有效期是多长。
每个 OneLake SAS(和用户委派密钥)始终由 Microsoft Entra Identity 提供支持,最长生存期为 1 小时,并且只能授予对数据项(如 lakehouse)中的文件夹和文件的访问权限。
重要
此功能目前为预览版。
共享访问签名的工作方式
共享访问签名是附加到 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 存储资源管理器。