使用SAS保护Azure Storage的安全性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SAS保护Azure Storage的安全性相关的知识,希望对你有一定的参考价值。

通过前面的文章,相信大家都知道共享访问签名(SAS)是一种限制访问Azure存储的机制。这是提供对我们的存储帐户的访问的更安全的方法之一。无需访问密钥即可访问对应的Azure存储帐户。

常用的SAS有如下两种类型:

  • 服务级别:仅允许访问以下存储服务之一中的资源:Blob,队列,表和文件
  • 帐户级别:允许访问一项或多项存储服务中的资源。通过服务级别SAS可用的所有操作也可以通过帐户级别SAS进行

接下来我们就一起看下如何使用SAS来爆出Azure Storage的安全性
我准备了一个名称为“sql12bak“的存储账户:
技术图片

在存储账户中,准备了一个名称为“test“的container并且上传了一些测试使用的文件:
技术图片

有了上述的准备工作以后,我们可以返回到存储账户的主页面下,可以看到有Shared access signature选项卡:
技术图片

点击进入Shared access signature以后,我们可以看到有如下几种类型的设置:

  • 允许的服务:我们可以选择可以为用户提供的服务。
  • 允许的权限:我们可以选择要授予用户哪种权限。
  • 开始和结束:我们可以设置可用性时间段。
  • 允许的IP地址:我们可以将对存储帐户的IP访问列入白名单。
  • 允许的协议:仅允许HTTPS还是允许http和https

技术图片

在本次示例中我们将配置如下权限:
读取,列出:以便于用户读取并列出账户下的文件,但是不能删除,写入,添加货创建资源到存储账户中
技术图片

同时我们配置仅允许HTTPS协议进行访问,然后点击生成连接字符串:
技术图片

在生成SAS和连接字符串后,复制“ Blob服务SAS URL”:
技术图片

打开Microsoft Azure Storage Explorer,然后单击“ 添加帐户”:
技术图片

在“连接到Azure存储”中,选择“ 使用共享访问签名(SAS)URI ”,然后单击“下一步”:
技术图片

粘贴复制的URL。粘贴URL时,它将自动更新其他文本框,然后单击Next。
技术图片

确认无误,点击连接:
技术图片

在我们准备的存储帐户中,我们可以找到“test”容器。在容器内,我们可以看到有多个测试文件:
技术图片

双击test.txt时我可以读取文件,因为我们之前已经授予了读取权限:
技术图片

但是当我尝试删除或上传文件时,则会提示我们没有权限:
技术图片

以上是关于使用SAS保护Azure Storage的安全性的主要内容,如果未能解决你的问题,请参考以下文章

Azure SAS 令牌不适用于 Azure.Storage.Blobs BlobServiceClient

使用 Azure.Storage.Blobs 通过 .NET Core 3.1 生成 SAS 到期令牌

使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件

如何在 Python 中生成 Azure blob SAS URL?

Microsoft.StorageSync 频繁发起 Returns Storage Account SAS Token 操作

完成文件上传后,如何使用 nodejs 撤销 Azure 的共享访问签名(SAS)?