如何撤消Azure SDK中的共享访问签名

use*_*610 8 permissions azure azure-storage azure-storage-blobs

我找不到任何用于撤消blob上创建的共享访问签名访问的代码示例,任何人都可以提供链接或引用来删除之前创建的共享访问签名访问.

Ily*_*sky 12

即使共享访问签名 (SAS) 基于存储访问策略 (SAP),您也只能撤销 SAP,而不能撤销单个 SAS。

Azure 存储安全指南有很好的细节:https : //docs.microsoft.com/en-us/azure/storage/common/storage-security-guide#revocation

SAS 不基于 SAP - 不能撤销:

如果您使用的是临时 URI,则有三个选项。您可以颁发具有短期到期策略的 SAS 令牌并等待 SAS 到期。您可以重命名或删除资源(假设令牌范围为单个对象)。您可以更改存储帐户密钥。最后一个选项可能会产生重大影响,具体取决于使用该存储帐户的服务数量,如果没有一些计划,您可能不想这样做。

基于SAP的SAS——可以通过撤销SAP来撤销:

如果您使用的是从存储访问策略派生的 SAS,您可以通过撤销存储访问策略来删除访问权限 - 您可以更改它使其已经过期,或者您可以完全删除它。这会立即生效,并使使用该存储访问策略创建的每个 SAS 无效。更新或删除存储访问策略可能会影响人们通过 SAS 访问该特定容器、文件共享、表或队列,但如果客户端被写入以便他们在旧的 SAS 失效时请求新的 SAS,这将正常工作。

最佳实践:

因为使用从存储访问策略派生的 SAS 使您能够立即撤销该 SAS,所以建议的最佳做法是尽可能始终使用存储访问策略。


dre*_*mac 8

语境

  • MSFT Azure 存储帐户(截至 2019-11-26 的实时版本)
  • 由共享访问签名 (SAS) 管理的 MSFT Azure 存储权限

问题

  • 用户 user145610 想立即撤销已部署的 SAS
    • (例如,因为 SAS 允许对 Blob 存储进行身份验证,而 SAS 已被破坏,需要立即修复以防止未经授权的数据泄露)

已经提到的解决方法

  • 其他答案已经出现在讨论使用共享访问策略(又名存储访问策略)(SAP)的线程中
  • 基于 SAP 生成的 SAS 有局限性,一个存储帐户内只能将五个 SAP 附加到一个 blob 容器。

解决方法:重新生成帐户密钥

  • 此线程中未出现的一种解决方法(在发布此帖子时)是能够重新生成用于最初创建 SAS 的帐户密钥,如本答案另见部分中的链接之一所述。

重新生成帐户密钥将导致所有使用该密钥的应用程序组件无法授权,直到它们更新为使用其他有效帐户密钥或新生成的帐户密钥。重新生成帐户密钥是立即撤销临时 SAS 的唯一方法。

  • 因此,一种潜在的解决方法是根据辅助帐户密钥生成和部署 SAS,并期望在需要立即撤销一个或多个 SAS 时定期重新生成辅助帐户密钥。
    • (显然,在部署了许多 SAS 令牌并依赖于辅助帐户密钥的情况下,这不是一种理想的情况,因为在重新生成密钥时它们将变得无效)

解决方案

  • 无法部署大量 SAP,再加上必须重新生成帐户密钥可能带来的不利副作用,这表明一个潜在的解决方案是重新设计项目架构以使用 ActiveDirectory 来控制授权和访问控制,以及SAS 令牌的生成。
  • 基于 SAP 的 SAS 可能更适合只有少数客户端需要访问的情况,并且 SAS 被入侵的可能性极低。
  • 在撰写本文时,MSFT Azure 存储支持基于 ActiveDirectory 帐户生成和使用 SAS 令牌。

也可以看看

  • 这个答案绝对是最好的,因为它是唯一提供一种立即撤销不基于策略的共享访问签名的机制的答案。我已尝试刷新主帐户密钥,并且可以证明 blob 容器上的共享访问签名已立即撤销。请注意,在存储资源管理器中为容器生成 SAS 时,您无法选择使用哪个帐户密钥对其进行签名,因此我猜它始终是主帐户密钥。 (2认同)

kwi*_*ill 6

除非基于存储的访问策略,否则无法撤消共享访问签名.有关更多信息,请参阅http://msdn.microsoft.com/en-us/library/azure/dn140257.aspx:

要撤消存储的访问策略,您可以删除它,也可以通过更改签名的标识符来重命名它.更改签名标识符会破坏任何现有签名与存储的访问策略之间的关联.删除或重命名存储的访问策略会立即影响与其关联的所有共享访问签名.

  • 为什么Azure甚至不允许在没有存储访问策略的情况下创建SAS密钥?撤销访问权限是任何身份验证系统的基本要求. (5认同)