Azure共享访问签名限制访问

时间:2013-06-03 17:40:13

标签: security azure azure-storage-blobs azure-cdn

我们刚刚开始使用Azure,而我正试图解决一些安全问题。

我们正在开发一个主要是javascript的网络应用。我们想将javascript存储在blob存储/ CDN中。但在我们发布之前,我们只希望我们的办公室能够访问。我知道我无法为Azure blob创建防火墙规则,因此限制对我们的办公室IP的访问。

从我所看到的内容,共享访问签名可能就是您的选择。有人可以确认这是一个有效的方向吗?此外,有人可以指出我应该考虑什么机制来限制对这些容器的访问。即一种将令牌限制为我们的开发者的方法。

我知道这可能会变得很弱,但我真的不知道MS是如何从纯粹的nix世界中做出来的。所有教程都有几行代码说明如何使用SAS访问内容,但首先不是设置策略。此外,这种方法是否适用于CDN?

2 个答案:

答案 0 :(得分:4)

我在MSDN上的“Overview of the Windows CDN”页面上的理解是,只有公开可用的blob可以使用Windows Azure CDN进行缓存。要使Blob公开可用于匿名访问,您必须将其容器表示为公共容器。执行此操作后,该容器中的所有blob都可用于匿名读取访问。

如果将对容器的公共访问权限设置为启用读取访问权限,那么使用具有blob容器的URL的任何匿名用户都可以读取该容器中的所有blob。 READ访问不会自动为容器提供WRITE,DELETE或LIST访问权限。

如果blob容器是公共的,那么创建共享访问签名或存储访问策略也不会阻止该公共访问。如果要使用共享访问签名或存储的访问策略来控制对容器的访问,则必须将公共访问权限设置为OFF。这在“Controlling Access to Windows Azure Blob Containers with Java”和MSDN上的其他地方讨论过。

答案 1 :(得分:3)

共享访问签名是作为查询字符串实现的,包含链接上有效的自/次时间以及哈希值。

您可以通过任何语言在任何blob上创建SAS。例如,这是一个Java tutorial。此时,您可以将生成的链接嵌入到您的网页中。应该像普通网址一样工作。

SAS不会对抗CDN,因为CDN仅适用于公共blob。