我找不到任何有关撤销已创建的Blob共享访问签名访问权限的代码示例,是否有人可以为我提供删除先前创建的Shared Access Signature访问权限的链接或参考资料。
我找不到任何有关撤销已创建的Blob共享访问签名访问权限的代码示例,是否有人可以为我提供删除先前创建的Shared Access Signature访问权限的链接或参考资料。
即使共享访问签名(SAS)是基于存储访问策略(SAP)的,您仍然只能撤销SAP,而不能撤销单个SAS。
Azure存储安全指南提供了良好的详细信息: https://learn.microsoft.com/en-us/rest/api/storageservices/create-service-sas#revoke-a-sas
不基于SAP的SAS - 无法被撤销:
如果您使用临时URI,则有三个选择。您可以发行具有短期失效策略的SAS令牌,并等待SAS失效。您可以重命名或删除资源(假设令牌范围限于单个对象)。您可以更改存储帐户密钥。这最后一个选项可能会产生重大影响,具体取决于有多少服务正在使用该存储帐户,可能不是您没有进行一些计划就 所要做的事情。
基于SAP的SAS - 可以通过撤销SAP来撤销:
如果您正在使用从存储访问策略派生的 SAS,则可以通过撤销存储访问策略来删除访问权限 - 您可以将其更改为已过期,或者完全删除它。这会立即生效,并使使用该存储访问策略创建的每个 SAS 无效。更新或删除存储访问策略可能会影响通过 SAS 访问特定容器、文件共享、表格或队列的人员,但如果客户端编写得当,当旧的 SAS 变得无效时,它们会请求新的 SAS,这将正常工作。最佳实践:
因为使用从存储访问策略派生的 SAS 可以立即撤销该 SAS 的能力,所以建议在可能的情况下始终使用存储访问策略。
因此,一种潜在的解决方法是基于辅助帐户密钥生成和部署SAS,并期望您会定期重新生成辅助帐户密钥,以便在需要立即撤销一个或多个SAS时使用。重新生成账户密钥将导致使用该密钥的所有应用程序组件无法授权,直到它们更新为使用其他有效账户密钥或新生成的账户密钥。重新生成账户密钥是立即撤销即席SAS的唯一方法。
要撤销存储的访问策略,您可以将其删除或重命名,并更改已签名的标识。更改已签名的标识会破坏任何现有签名与存储访问策略之间的关联。删除或重命名存储的访问策略会立即影响所有与之关联的共享访问签名。
我也遇到过这个问题。正如@IlyaBerdichevsky在顶部所提到的,最佳实践是使用从存储访问策略派生的SAS
。
观看此YouTube视频教程
获取共享访问签名
。
创建
POST /storage/blob/token
来撤销,还是使用类似Blob Storage触发器之类的东西来删除策略呢? - ZX9