【问题标题】:Azure:limit the access of ARM PaaS services to certain storage accountsAzure:限制 ARM PaaS 服务对某些存储帐户的访问
【发布时间】:2017-09-06 03:09:24
【问题描述】:

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

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

【问题讨论】:

标签: azure azure-sql-database azure-web-app-service azure-blob-storage


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    也许您应该在部署应用程序、管理连接字符串和部署代码的方式中寻找缓解这种威胁的方法:

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

    【讨论】:

      猜你喜欢
      • 2019-12-24
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 2020-06-01
      • 2021-07-29
      • 2018-10-24
      • 2021-06-07
      • 2013-07-10
      相关资源
      最近更新 更多