0

在 Azure 中将共享访问签名与 Blob 存储一起使用时,我试图了解签名标识符的用途。我知道签名标识符基本上应用于容器级别并且是命名的。此外,我知道他们提供的任何共享访问策略的有效期都超过一个小时(与未指定签名标识符时相反)。我想我的问题是你不能只在具有适当权限和到期时间的容器级别应用共享访问签名吗?感谢所有的回复。


好的,我想我现在明白了。因此,解释 SI 的最佳方式是它们是容器级别访问控制的另一个抽象级别。此外,它们允许您指定在撤销之前可以应用多长时间的策略。在显式声明和 SI 声明中,撤销几乎是到期时间。

所以我的下一个问题是,例如,我有一项已被妥协的政策。我如何立即撤销或更改策略(因为我已经在我的代码中定义了这个策略;我如何在没有重新部署代码的情况下更改它)?

4

3 回答 3

0

签名标识符是您在特定容器上引用 ACL 的方式。这些是您创建对 blob 的可撤销访问所必需的。

如果您创建的过期时间超过一小时,Blob 服务可能会返回 400 Bad Request Error,或者只是忽略过期时间并将其设置为 1 小时。

这是作为平台的一部分完成的,以确保您的数据安全。

在MSDN Library中有更多关于 SAS 生命周期的信息

于 2011-05-25T06:23:49.810 回答
0

其实我刚刚回答了我自己的问题。我可以编写代码来引用有问题的容器,并清除当前设置任何容器的访问策略。

于 2011-05-25T21:56:48.293 回答
0

与显式指定所有参数相比,使用签名标识符的主要原因与安全性有关。如果出于某种原因创建了具有指定所有参数并具有有效 HMAC 签名的 SAS,则 blob 服务将接受它。想象一下,到期时间没有限制。现在,想象一下它泄漏了。在正常情况下,它最多只能造成一个小时的伤害。请记住,您已经指定了其中的所有参数,因此您无法更改它。如果您可以指定无限时间,则无法在不实际更改主存储密钥的情况下撤销它(这将使签名无效并破坏所有现有的 SAS)。SI 为您提供了更多抽象层,以防止必须滚动存储密钥。

签名标识符(或我喜欢称之为策略)是延长一小时后仍然能够a.)在必要时立即撤销或b.)立即更改的方式。使用 SI,您可以更改权限、删除它、更改到期时间,所有这些都使您可以更好地控制现有 SAS(无论如何都使用 SI)的生命周期和访问权限。

于 2011-05-25T13:34:10.307 回答