你的存储容器的 SAS 令牌

了解如何使用 Azure 门户创建用户委派和共享访问签名 (SAS) 令牌。 用户委托 SAS 令牌将通过 Microsoft Entra 凭据进行保护。 SAS 令牌提供对 Azure 存储帐户中资源的安全委托式访问。

追加了 SAS 令牌的存储 url 的屏幕截图。

提示

基于角色的访问控制(托管标识)提供了一种替代方法,可用于授予对存储数据的访问权限,而无需在 HTTP 请求中包含 SAS 令牌。

  • 可使用托管标识向支持 Microsoft Entra 身份验证的任何资源(包括你自己的应用程序)授予访问权限。
  • 使用托管标识替换了将共享访问签名令牌 (SAS) 包含在源和目标 URL 中的要求。
  • 在 Azure 中使用托管标识不会增加成本。

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

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

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

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

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

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

重要

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

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

先决条件

若要开始,你需要以下资源:

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

  • 一种 Azure AI 语言资源。

  • 标准性能 Azure Blob 存储帐户。 你还需要创建容器来存储和组织存储帐户中的文件。 如果不知道如何使用存储容器创建 Azure 存储帐户,请按照以下快速入门操作:

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

在 Azure 门户中创建 SAS 令牌

转到 Azure 门户并导航到你的容器或特定文件(如下所示),然后继续执行这些步骤:

工作流:你的存储帐户容器你的容器你的文件

  1. 右键单击容器或文件,然后从下拉菜单中选择“生成 SAS”。

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

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

    • 源文件必须指定读取和列出访问权限

    • 目标文件必须指定写入和列出访问权限

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

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

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

  7. 复查设置,然后选择“生成 SAS 令牌和 URL”。

  8. Blob SAS 令牌”查询字符串和“Blob SAS URL”将显示在窗口的下部区域。

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

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

使用 SAS URL 授予访问权限

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

可通过两种方式在 REST API 请求中包含 SAS URL:

  • 使用 SAS URL 作为 sourceURL 和 targetURL 值。

  • 将 SAS 查询字符串追加到现有 sourceURL 和 targetURL 值。

下面是一个示例 REST API 请求:

{
  "analysisInput": {
    "documents": [
      {
        "id": "doc_0",
        "language": "en",
        "source": {
          "location": "myaccount.blob.core.chinacloudapi.cn/sample-input/input.pdf?{SAS-Token}"
        },
        "target": {
          "location": "https://myaccount.blob.core.chinacloudapi.cn/sample-output?{SAS-Token}"
        }
      }
    ]
  }
}

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

后续步骤