【问题标题】:How can I deploy content to a static website in Azure Storage that has IP restrictions enabled?如何将内容部署到 Azure 存储中启用了 IP 限制的静态网站?
【发布时间】:2020-01-13 10:46:29
【问题描述】:

当我将内容部署到启用 IP 限制的 Azure 存储中的静态网站时,我的发布管道 (Azure DevOps) 出现错误。

Error parsing destination location "https://MYSITE.blob.core.windows.net/$web": Failed to validate destination. The remote server returned an error: (403) Forbidden.

在我将 IP 限制添加到存储帐户以保持内容私密之前,该版本运行良好。今天,我们使用 IP 限制来控制访问。很快,我们将取消 IP 限制以支持 vpn 和 vnet。但是,我的期望是我会遇到同样的问题。

我的假设是 Azure DevOps 无法访问存储帐户,因为它未在 IP 地址列表中列入白名单。我的发布管道使用 AzureBlob 文件复制任务。

steps:
- task: AzureFileCopy@2
  displayName: 'AzureBlob File Copy'
  inputs:
    SourcePath: '$(System.DefaultWorkingDirectory)/_XXXXX/_site'
    azureSubscription: 'XXXX'
    Destination: AzureBlob
    storage: XXXX
    ContainerName: '$web'
  • 我已经启用了“受信任的 Microsoft 服务”,但没有 帮助。
  • 将 Azure DevOps 的 IP 地址列入白名单并不是一个好的选择,因为它们数量众多,而且会定期更改。
  • 我看到了删除 IP 限制并在发布步骤后重新启用它们的建议。这是有风险的,因为如果在取消 IP 限制后出现故障,我的网站将可以公开访问。

我希望有人有其他想法!谢谢。

【问题讨论】:

    标签: azure-devops azure-storage


    【解决方案1】:

    您可以添加一个步骤以将代理 IP 地址列入白名单,然后在部署结束时将其从白名单中删除。您可以通过对 ipify 之类的 REST 调用来获取 IP 地址。

    我已经为类似的场景做了这个,效果很好。

    【讨论】:

    • 谢谢。这是一个有趣的想法。我可以有一个管道步骤来获取代理的 IP 地址(我们目前正在使用托管代理),然后将 IP 列入白名单,然后执行其他正常的管道工作。然后在最后,清除新的白名单条目。对于应该内置的东西来说,这似乎需要做很多工作。但我认为它可以工作,谢谢。不过仍在寻找更多想法。
    • @Schwammy 这是我找到的最佳方法。托管代理不是受信任的服务,因此没有内置选项可以神奇地使其工作。
    【解决方案2】:

    我会推荐一种不同的方法:使用静态 IP 和/或在私有 VNet 中运行 Azure DevOps 代理。

    为什么我认为这是一个更好的选择:

    1. 审核日志将填充规则的添加和删除,以便在受到攻击时进行更难的分析
    2. Azure 连接必须比需要的更强大,特别是更改安全组或防火墙或应用程序网关中的规则,而它只需要部署权限
    3. 它暂时从外部打开流量,而私人代理需要始终从内部启动

    没有完美的解决方案,因此为您的特定场景选择最佳解决方案非常重要。

    【讨论】:

    • 不用说,使用专用网络中的 DevOps 代理,您只需管理来自上述 VNET 的流量异常 - 这也与您对静态网站存储的受控访问非常相关。跨度>
    • 我们目前正在使用托管代理,而不是运行私有 VNET,因此今天不可能。但是,我们现在正在设置 vnet,因此我们可能会转向这种方法。我也需要设置一个代理,因为我们目前正在使用托管代理。我希望不要那样做,长期管理是另一回事,但在这种情况下,它可能会很有帮助。感谢您的建议!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 2021-11-17
    • 2014-09-13
    相关资源
    最近更新 更多