Azure 解决方案:如何有效地保护Azure 资源
51CTO 博客地址:https://blog.51cto.com/14669127
Azure培训视频地址:https://space.bilibili.com/2000820534
今天跟大家分享Azure中一个非常重要的Service:Shared Access Signature(共享访问签名),与Storage、 Account的安全性有关。大多数情况下,很多IT Admin 采用Azure Storage存储企业数据时,都面临相同的需求:
**• 希望数据是安全的,并且能在特定时期内控制授权用户的访问权限
• 同时,也可以限制对Azure存储中户中的其他各种服务的访问。**
那么此时,就可以使用共享访问签名来实现上述需求,共享访问签名使我们能够对存储账户中的container或者blob授权有限的访问权,当我们配置一个SAS时,可以指定它的约束,包括允许客户端访问哪些Azure存储资源,他们对哪些资源有什么权限等等。我们可以在存储账户级别、容器级别以及特定的Blob级别配置共享访问签名(SAS),以下Azure Storage资源支持存储访问策略:
• Blob containers
• File shares
• Queues
• Tables
**但是在为不同的资源配置SAS时,需要为不同的资源提供不同的信息,当我们生成一个共享访问签名时,Azure提供了2种方法创建签名:**
• Ad Hoc SAS,在这种方法中,我们在创建时定义所有属性。
• SAS with Stored Access Policy,在这种方法中,我们创建了一个访问策略,其中我们将为多个SAS管理约束(权限、开始时间和结束时间)
本文,我们将以第一种方法为例,介绍一下相关实现过程。
1. 登录Azure门口,选择我们想要为其配置SAS的Blob
2. 当我们创建Blob时,访问级别设置为匿名读取,这样每个人都可以通过点击Blob URL访问Blob
![image.png](http://www.icode9.com/i/li/?n=2&i=images/20210614/1623639996783317.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
3. 获取到Blob URL
![image.png](http://www.icode9.com/i/li/?n=2&i=images/20210614/1623640004482938.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
4. 修改访问级别并设置为Private,以便只有授权用户才能访问Blob,点击选项“更改访问级别”,然后点击“确定”
![image.png](http://www.icode9.com/i/li/?n=2&i=images/20210614/1623640010943660.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
5. 访问之前的Blob URL,发现匿名访问被阻止了
![image.png](http://www.icode9.com/i/li/?n=2&i=images/20210614/1623640017445405.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
6. 现在我们来配置共享访问签名,以便授权用户可以访问Blob,选择Blob,在设置页面中,选择生成SAS
![image.png](http://www.icode9.com/i/li/?n=2&i=images/20210614/1623640022166709.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
7. 在Permission下,我们可以选择任何一项:读、创建、写或者删除,出于安全考虑,建议选择“允许协议为Https”和Key1作为Signing Key。
![image.png](http://www.icode9.com/i/li/?n=2&i=images/20210614/1623640028702478.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
8. 最后选择生成Blob SAS令牌和URL就好了。
9. 当我们将访问级别更改为Private之后,输入Blob URL时,将无法打开,神人验证failed。
另外,如前所述,我们也可以为存储账户配置共享访问签名,在这种情况下,概念是相同的,但是权限范围更高,这意味着存储在Storage 账户中的任何内容都可以被SAS访问,另一个不同之处是,在为存储账户配置共享访问签名时,需要如下图的不同输入:
![image.png](http://www.icode9.com/i/li/?n=2&i=images/20210614/1623640034818769.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
谢谢大家的阅读,若有疑问,欢迎线下讨论。