《Windows Azure Platform 系列文章目录》
我们在使用Azure Storage的时候,为了设置访问权限,我们会使用Azure Storage Shared Access Signature (SAS)。
SAS有以下属性:
权限 | Read Write Delete List Add Create Update Process |
访问开始时间、访问结束时间 |
Start Time, Expire Time |
允许的IP | Allow IP |
允许的协议 | HTTPS or HTTP |
访问秘钥 | SAS Token |
一个标准的SAS Token,如下图:
https://leizhangstorage.blob.core.chinacloudapi.cn/?sv=2019-10-10&ss=bfqt&srt=o&sp=rwdlacup&se=2020-06-29T14:58:36Z&st=2020-06-29T06:58:36Z&sip=202.96.225.228&spr=https&sig=KLn5mZ8s4YN9ae%2FNKRzzFYRSgu06mtadqy3UOTZ%2FE1E%3D
上图中:
权限 | rwdlacup |
访问开始时间 | 2020-06-29T06:58:36Z |
访问结束时间 | 2020-06-29T14:58:36Z |
允许的IP | 202.96.225.228 |
允许的协议 | https |
访问秘钥 | KLn5mZ8s4YN9ae%2FNKRzzFYRSgu06mtadqy3UOTZ%2FE1E%3D |
SAS Token使用起来非常方便,但是也有一些缺点,比如:
1.如果SAS Token被供应商泄漏了,怎么办?
2.如果SAS Token过期时间只有14天,且已经在代码里面hard code了,我们想继续使用现有的SAS Token,且过期时间为1年
这时候使用SAS Token的话,就需要重新生成一个新的SAS Token,并且需要做很多修改。这时候就可以考虑使用Access Policy。
什么是Access Policy?
Access Policy可以理解为在服务器端管理SAS Token,因为Access Policy保存在服务器端,所以我们可以修改Access Policy,继续使用现有的SAS Token。
如何使用Access Policy,我们以Azure Storage Explorer为例:
1.首先,我们创建1个新的存储账户,创建1个Container,Public Access Level为Private。如下图:
2.往这个存储账户上传1个文件,步骤略。
3.然后我们使用Azure Storage Explorer,链接这个存储账户。步骤略
4.选择之前创建的container,右键Manage Access Policies。如下图:
5.在弹出的窗口中,创建新的Policy。
访问开始时间为2020年6月29日,下午5点44分。
访问结束时间为2020年6月29日,下午5点54分。
访问权限为Read和List
6.选择一个blob,右键,Get Shared Access Signature
7.在弹出的窗口中,选择之前创建的policy1。如下图:
8.点击上图的Create,会显示SAS Token的URL。如下图:
9.我们打开新的浏览器,就可以通过SAS Token访问该资源。如下图:
10.如果我们在时间过期之后,即(为2020年6月29日,下午5点54分)之后访问,会显示访问错误。如下图:
11.如果我们不采用Access Policy,则需要重新申请新的SAS Token URL。
而采用Access Policy,我们只需要修改Policy的策略,策略更新后,采用老的SAS Token URL可以继续访问该资源。
我们点击选图的Manage Access Policies:
12.在弹出的窗口中,将过期时间修改的更长一点:
13.修改完毕后,我们再复用步骤8中的SAS URL,可以继续访问原有资源。