Azure:限制ARM PaaS服务对特定存储帐户的访问

时间:2017-04-10 22:33:07

标签: azure azure-sql-database azure-web-sites azure-storage-blobs

我有一个与Azure相关的安全问题,我可以通过一些关于可能的艺术的指导来真正做到这一点。

我想知道是否可以限制从PaaS服务(如服务结构或Web应用程序(ASE))调用哪些服务(即可以使用哪些存储帐户端点来写入数据)。即如果我有一个写入存储的Web应用程序,并且有人恶意更改了代码以写入Azure上的第三方存储帐户;这是我可以通过说这个应用程序(即这个Web应用程序或此SF群集)只能与一组特定的存储帐户或特定数据库进行通信而提前缓解的。因此,即使代码被更改为与另一个存储帐户通信,它也无法实现。我可以明确地将环境的一部分定义为应用程序可以与之交谈的存储项目;这是可能的吗?

2 个答案:

答案 0 :(得分:1)

Azure存储帐户具有访问密钥和共享访问密钥,用于验证REST调用以向其读取/写入数据。您的应用程序将能够对Azure存储帐户执行读/写操作,它具有访问密钥和连接字符串,用于连接到它。

无法在Azure App Service应用程序上设置任何类型的防火墙规则,以防止它与某些Internet或Azure端点进行通信。您可以使用App Service Environment设置NSG防火墙规则,但您仍然只能打开或关闭访问权限;不限制某些DNS名称或IP地址。

答案 1 :(得分:0)

也许您应该在部署应用程序,管理连接字符串以及部署代码的方式中寻找对此威胁的缓解:

  • 使用Azure基于角色的访问控制来限制对Azure中资源的访问,以便未经授权的人员无法修改部署
  • 使用安全的方式管理源代码。请记住,它不在PaaS服务上,因为它只包含二进制文件。
  • 使用SAS令牌进行存储帐户的应用程序访问,而不是完整的访问密钥。例如,可以为SAS密钥提供写访问权限,而不是对存储帐户进行读取或列表访问。
  • 如果作为开发人员,您不信任管理应用程序部署的人员,您甚至可以考虑签署应用程序参数/连接字符串。这只能防止篡改,而不是提取连接字符串。