为存储容器创建 SAS 令牌
本文介绍如何使用 Azure 门户或 Azure 存储资源管理器来创建用户委派、共享访问签名 (SAS) 令牌。 用户委托 SAS 令牌将通过 Microsoft Entra 凭据进行保护。 SAS 令牌提供对 Azure 存储帐户中资源的安全委托式访问。
概括而言,SAS 令牌的工作原理如下:
首先,应用程序将 SAS 令牌作为 REST API 请求的一部分提交到 Azure 存储。
接着,如果存储服务验证 SAS 有效,则对请求进行授权。 如果 SAS 令牌被视为无效,则拒绝请求并返回错误代码 403(禁止)。
Azure Blob 存储提供三种类型的资源:
- 存储帐户在 Azure 中为数据提供唯一的命名空间。
- 数据存储容器位于存储帐户中,并组织 Blob 集。
- Blob 位于容器中并存储文本和二进制数据,例如文件、文本和图像。
何时使用 SAS 令牌
训练自定义模型。 必须将已组装的训练文档集上传到 Azure Blob 存储容器。 可以选择使用 SAS 令牌来授予对培训文档的访问权限。
使用具有公共访问权限的存储容器。 可以选择使用 SAS 令牌来授予对具有公共读取访问权限的存储资源的有限访问权限。
先决条件
要开始,需要:
标准性能 Azure Blob 存储帐户。 需要创建一个容器,用于存储和整理存储帐户中的 blob 数据。 如果不知道如何使用存储容器创建 Azure 存储帐户,请按照以下快速入门操作:
上传文档
登录 Azure 门户。
- 选择你的存储帐户 → 数据存储 → 容器。
从列表中选择容器。
从页面顶部的菜单中选择“上传”。
此时会显示“上传 Blob”窗口。 选择要上传的文件。
注意
默认情况下,REST API 使用位于容器根目录下的文档。 你也可以使用在子文件夹中组织的数据(如果已在 API 调用中指定)。 有关详细信息,请参阅在子文件夹中组织数据。
使用 Azure 门户
Azure 门户是一个基于 Web 的控制台,可让你使用图形用户界面 (GUI) 管理 Azure 订阅和资源。
登录 Azure 门户。
导航到“你的存储帐户”>“容器”>“你的容器”。
在靠近页面顶部的菜单中选择“生成 SAS”。
选择“签名方法”→“用户委托密钥”。
通过选中或清除相应的复选框来定义“权限”
。- 请确保选中“读取”、“写入”、“删除”和“列出”权限 。
重要
如果收到类似于下面的消息,则还需要在存储帐户中分配对 Blob 数据的访问权限:
Azure 基于角色的访问控制 (Azure RBAC) 是用于管理对 Azure 资源的访问权限的授权系统。 Azure RBAC 可帮助管理 Azure 资源的访问权限和权限。
分配 Azure 角色以访问 Blob 数据介绍了如何分配角色,以允许 Azure 存储容器的读取、写入和删除权限。 请参阅存储 Blob 数据参与者。
指定已签名密钥的“开始”与“过期”时间。
- 创建 SAS 令牌时,默认持续时间为 48 小时。 48 小时后,需要创建新令牌。
- 对于要将存储帐户用于文档智能服务操作的时间,请考虑设置一个较长的持续时间。
- 到期时间的值取决于你使用的是“帐户密钥”还是“用户委托密钥” 签名方法:
- 帐户密钥:没有规定的最大时间限制;但是,最佳做法建议配置过期策略以限制间隔并尽可能减少泄露。 为共享访问签名配置到期策略。
- 用户委派密钥:到期时间的值最多为从创建 SAS 令牌开始后的七天。 此 SAS 在用户委托密钥过期后将无效,因此,到期时间超过七天的 SAS 的有效期仍然仅为七天。 有关详细信息,请参阅使用 Microsoft Entra 凭据保护 SAS。
“允许的 IP 地址”字段是可选的,它指定要从中接受请求的 IP 地址或 IP 地址范围。 如果请求 IP 地址与 SAS 令牌指定的 IP 地址或地址范围不匹配,则授权会失败。 IP 地址或 IP 地址范围必须是公共 IP,而不是专用 IP。 有关详细信息,请参阅指定 IP 地址或 IP 范围。
“允许的协议”字段是可选的,它指定通过 SAS 令牌发出的请求所允许的协议。 默认值为 HTTPS。
选择“生成 SAS 令牌和 URL”。
“Blob SAS 令牌”查询字符串和“Blob SAS URL”将显示在窗口的下部区域 。 若要使用 Blob SAS 令牌,请将其追加到存储服务 URI。
将“Blob SAS 令牌”和“Blob SAS URL”值复制并粘贴到安全的位置 。 这些值只会显示一次,关闭窗口后不再可以检索到。
若要构造 SAS URL,请将 SAS 令牌 (URI) 追加到存储服务的 URL。
使用 Azure 存储资源管理器
Azure 存储资源管理器是一个免费的独立应用,可让你从桌面中轻松管理 Azure 云存储资源。
入门
需在 Windows、macOS 或 Linux 开发环境中安装 Azure 存储资源管理器应用。
安装 Azure 存储资源管理器应用后,请将其连接到用于文档智能的存储帐户。
创建 SAS 令牌
在本地计算机上打开 Azure 存储资源管理器应用,并导航到连接的存储帐户。
展开“存储帐户”节点,并选择“Blob 容器”。
展开“Blob 容器”节点,然后右键单击某个存储容器节点以显示选项菜单。
从选项菜单中选择“获取共享访问签名”。
在“共享访问签名”窗口中做出以下选择:
- 选择“访问策略”(默认值为“无”)。
- 指定已签名密钥的“开始”与“过期”日期和时间。 建议指定较短的时间范围,因为 SAS 在生成后是不可撤销的。
- 选择“开始”与“过期”日期和时间的时区(默认值为“本地”)。
- 通过选中“读取”、“写入”、“列表”和“删除”复选框来定义容器权限。
- 选择 key1 或 key2。
- 复查设置并选择“创建”。
此时会显示一个新窗口,其中包含容器的“容器名称”、“SAS URL”和“查询字符串”。
请将 SAS URI 和查询字符串值复制并粘贴到安全的位置。 这些信息只会显示一次,在关闭窗口后不再可以检索到。
若要构造 SAS URL,请将 SAS 令牌 (URI) 追加到存储服务的 URL。
使用 SAS URL 授予访问权限
SAS URL 包括一组特殊的查询参数。 这些参数指示了客户端访问资源的方式。
REST API
若要通过 REST API 使用 SAS URL,请将 SAS URL 添加到请求正文:
{
"source":"<BLOB SAS URL>"
}
就这么简单! 你已了解如何创建 SAS 令牌来授权客户端访问数据的方式。