为存储容器创建 SAS 令牌

本文介绍如何使用 Azure 门户或 Azure 存储资源管理器来创建用户委派、共享访问签名 (SAS) 令牌。 用户委托 SAS 令牌将通过 Microsoft Entra 凭据进行保护。 SAS 令牌提供对 Azure 存储帐户中资源的安全委托式访问。

附加 SAS 令牌 的存储 URI 的屏幕截图。

概括而言,SAS 令牌的工作原理如下:

  • 应用程序将 SAS 令牌作为 REST API 请求的一部分提交到 Azure 存储。

  • 如果存储服务验证 SAS 有效,则对请求进行授权。

  • 如果 SAS 令牌被视为无效,则拒绝请求并返回错误代码 403(禁止)。

Azure Blob 存储提供三种类型的资源:

  • 存储帐户在 Azure 中为数据提供唯一的命名空间。
  • 数据存储容器位于存储帐户中,并组织 Blob 集。
  • Blob 位于容器中并存储文本和二进制数据,例如文件、文本和图像。

何时使用 SAS 令牌

  • 训练自定义模型。 必须将已组装的训练文档集上传到 Azure Blob 存储容器。 可以选择使用 SAS 令牌来授予对培训文档的访问权限。

  • 使用具有公共访问权限的存储容器。 可以选择使用 SAS 令牌来授予对具有公共读取访问权限的存储资源的有限访问权限。

    重要

    • 如果 Azure 存储帐户受虚拟网络或防火墙的保护,则无法使用 SAS 令牌授予访问权限。 必须使用托管标识授予对存储资源的访问权限。

    • 托管标识支持专用和可公开访问的 Azure Blob 存储帐户。

    • SAS 令牌授予对存储资源的权限,并且应该按照保护帐户密钥的方式来保护 SAS 令牌。

    • 使用 SAS 令牌的操作应仅通过 HTTPS 连接执行,并且 SAS URI 应仅在 HTTPS 等安全连接上分发。

先决条件

要开始,需要:

  • 一个有效的 Azure 帐户。 如果没有,可以创建一个试用帐户

  • 文档智能多服务资源。

  • 标准性能 Azure Blob 存储帐户。 需要创建一个容器,用于存储和整理存储帐户中的 blob 数据。 如果不知道如何使用存储容器创建 Azure 存储帐户,请按照以下快速入门操作:

    • 创建存储帐户。 创建存储帐户时,在“实例详细信息”>“性能”字段中选择“标准”性能 。
    • 创建容器。 创建容器时,在“新建容器”窗口中将“公共访问级别”设置为“容器(对容器和 Blob 进行匿名读取访问)” 。

上传文档

  1. 登录 Azure 门户

    • 选择你的存储帐户 → 数据存储 → 容器。

    显示 Azure 门户中的“数据存储”菜单的屏幕截图。

  2. 从列表中选择容器。

  3. 从页面顶部的菜单中选择“上传”。

    显示 Azure 门户中的容器“上传”按钮的屏幕截图。

  4. 此时会显示“上传 Blob”窗口。 选择要上传的文件。

    显示 Azure 门户中的“上传 Blob”窗口的屏幕截图。

    注意

    默认情况下,REST API 使用位于容器根目录下的文档。 你也可以使用在子文件夹中组织的数据(如果已在 API 调用中指定)。 有关详细信息,请参阅在子文件夹中组织数据

使用 Azure 门户

Azure 门户是一个基于 Web 的控制台,可让你使用图形用户界面 (GUI) 管理 Azure 订阅和资源。

  1. 登录 Azure 门户

  2. 导航到“你的存储帐户”>“容器”>“你的容器”。

  3. 在靠近页面顶部的菜单中选择“生成 SAS”。

  4. 选择“签名方法”→“用户委托密钥”。

  5. 通过选中或清除相应的复选框来定义“权限”

    • 请确保选中“读取”、“写入”、“删除”和“列出”权限 。

    显示 Azure 门户中的 SAS 权限字段的屏幕截图。

    重要

  6. 指定已签名密钥的“开始”与“过期”时间。

    • 创建 SAS 令牌时,默认持续时间为 48 小时。 48 小时后,需要创建新令牌。
    • 对于要将存储帐户用于文档智能服务操作的时间,请考虑设置一个较长的持续时间。
    • 到期时间的值取决于使用的是帐户密钥还是用户委派密钥签名方法
      • 帐户密钥:没有规定的最大时间限制;但是,最佳做法建议配置过期策略以限制间隔并尽可能减少泄露。 为共享访问签名配置到期策略
      • 用户委派密钥:到期时间的值最多为从创建 SAS 令牌开始后的七天。 此 SAS 在用户委托密钥过期后将无效,因此,到期时间超过七天的 SAS 的有效期仍然仅为七天。 有关详细信息,请参阅使用 Microsoft Entra 凭据保护 SAS
  7. “允许的 IP 地址”字段是可选的,它指定要从中接受请求的 IP 地址或 IP 地址范围。 如果请求 IP 地址与 SAS 令牌指定的 IP 地址或地址范围不匹配,则授权会失败。 IP 地址或 IP 地址范围必须是公共 IP,而不是专用 IP。 有关详细信息,请参阅指定 IP 地址或 IP 范围

  8. “允许的协议”字段是可选的,它指定通过 SAS 令牌发出的请求所允许的协议。 默认值为 HTTPS。

  9. 选择“生成 SAS 令牌和 URL”。

  10. “Blob SAS 令牌”查询字符串和“Blob SAS URL”将显示在窗口的下部区域 。 若要使用 Blob SAS 令牌,请将其追加到存储服务 URI。

  11. 将“Blob SAS 令牌”和“Blob SAS URL”值复制并粘贴到安全的位置 。 这些值只会显示一次,关闭窗口后不再可以检索到。

  12. 若要构造 SAS URL,请将 SAS 令牌 (URI) 追加到存储服务的 URL。

使用 Azure 存储资源管理器

Azure 存储资源管理器是一个免费的独立应用,可让你从桌面中轻松管理 Azure 云存储资源。

入门

创建 SAS 令牌

  1. 在本地计算机上打开 Azure 存储资源管理器应用,并导航到连接的存储帐户

  2. 展开“存储帐户”节点,并选择“Blob 容器”。

  3. 展开“Blob 容器”节点,然后右键单击某个存储容器节点以显示选项菜单。

  4. 从选项菜单中选择“获取共享访问签名”。

  5. 在“共享访问签名”窗口中做出以下选择:

    • 选择“访问策略”(默认值为“无”)。
    • 指定已签名密钥的“开始”与“过期”日期和时间。 建议指定较短的时间范围,因为 SAS 在生成后是不可撤销的。
    • 选择“开始”与“过期”日期和时间的时区(默认值为“本地”)。
    • 通过选中“读取”、“写入”、“列表”和“删除”复选框来定义容器权限。
    • 选择 key1 或 key2。
    • 复查设置并选择“创建”。
  6. 此时会显示一个新窗口,其中包含容器的“容器名称”、“SAS URL”和“查询字符串”。

  7. 请将 SAS URI 和查询字符串值复制并粘贴到安全的位置。 这些信息只会显示一次,在关闭窗口后不再可以检索到。

  8. 若要构造 SAS URL,请将 SAS 令牌 (URI) 追加到存储服务的 URL。

使用 SAS URL 授予访问权限

SAS URL 包括一组特殊的查询参数。 这些参数指示了客户端访问资源的方式。

REST API

若要通过 REST API 使用 SAS URL,请将 SAS URL 添加到请求正文:

{
    "source":"<BLOB SAS URL>"
}

就这么简单! 已了解如何创建 SAS 令牌来授权客户端访问数据的方式。

后续步骤