你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
定义存储访问策略
存储访问策略提供对服务器端的服务级别共享访问签名 (SAS) 的额外控制级别。 建立存储访问策略可将共享访问签名分组以及对该策略绑定的签名施加其他限制。
可使用存储访问策略更改签名的开始时间、到期时间或权限。 也可以使用存储访问策略在颁发签名后将其撤消。
以下存储资源支持存储访问策略:
- Blob 容器
- 文件共享
- 队列
- 表
注意
容器上的存储访问策略可以与共享访问签名相关联,该签名向容器本身或其包含的 Blob 授予权限。 同样,文件共享上的存储访问策略可以与共享访问签名相关联,该签名向共享本身或其包含的文件授予权限。
用户委托 SAS 或帐户 SAS 不支持存储的访问策略。
创建或修改存储访问策略
共享访问签名的访问策略包含开始时间、到期时间和该签名的权限。 可以指定以下选项之一,也可以将它们组合在一起:
- 签名 URI 上的所有这些参数,在存储访问策略上均无
- 所有这些参数都位于存储访问策略上,URI 上没有参数
但是,不能在 SAS 令牌和存储访问策略上指定参数。
若要创建或修改存储访问策略,请通过指定访问策略条款的请求正文调用针对资源的 Set ACL
操作(参阅设置容器 ACL、设置队列 ACL、设置表 ACL 或设置共享 ACL)。 请求正文包含所选的唯一签名标识符,长度最多为 64 个字符。 请求正文还包括访问策略的可选参数,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-char-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
一次最多可对容器、表、队列或共享设置五个访问策略。 每个 SignedIdentifier
字段(及其唯一的 Id
字段)对应于一个访问策略。 尝试同时设置五个以上的访问策略会导致服务返回状态代码 400 (错误的请求) 。
注意
在容器、表、队列或共享上创建或更新存储访问策略时,更改可能需要长达 30 秒才能生效。 在此时间间隔内,针对与存储访问策略关联的共享访问签名的请求可能会失败,状态代码为 403 (禁止) ,直到访问策略变为活动状态。
不能在存储访问策略中为表实体指定范围限制 (startpk
、 startrk
、 endpk
和 endrk
) 。
修改或撤销存储访问策略
若要修改存储访问策略的参数,可以调用资源类型的访问控制列表 (ACL) 操作来替换现有策略。 在该操作中,指定新的开始时间、到期时间或权限集。
例如,如果现有策略向资源授予读取和写入权限,则可以修改它以便对所有将来的请求仅授予读取权限。 在这种情况下,字段指定的 ID
新策略的已签名标识符与要替换的策略的已签名标识符相同。
若要撤消存储访问策略,可以删除它,通过更改有签名的标识符对其进行重命名,或将过期时间更改为过去的某个值。 更改签名标识符会中断任何现有签名与存储访问策略之间的关联。 将过期时间更改为过去的某个值会导致所有关联的签名过期。 删除或修改存储访问策略会立即影响与之关联的所有共享访问签名。
若要删除单个访问策略,请调用资源的 Set ACL
操作。 传入要在容器上维护的已签名标识符集。 若要从资源中移除所有访问策略,请使用空白请求正文调用 Set ACL
操作。