我想使用Azure DevOps管道部署我的terraform基础设施,但我遇到了存储帐户防火墙的问题。下面是一个存储帐户的示例:
resource "azurerm_storage_account" "storage_account" {
name = "mystorageaccount"
resource_group_name = "myresourcegroup"
...
network_rules {
default_action = "Deny"
bypass = ["AzureServices", "Logging"]
ip_rules = ["192.1.1.1"]
}
}
存储帐户的初始创建是成功的,但由于防火墙规则的原因,所有进一步的操作(例如添加容器)都会失败,并出现未授权的异常。
不幸的是,为“AzureServices”添加绕过规则并不起作用。
我必须添加防火墙规则的原因是因为公司的安全准则,所以我不能直接删除它。
是否有一种方法可以使用Azure Devops处理存储帐户防火墙规则?
3条答案
按热度按时间lxkprmvk1#
对于Terraform,我建议运行自己的代理池。生产环境的代理池应与非生产环境分开,并应位于单独的vNet中。然后向存储帐户添加网络规则,以允许从代理池子网进行访问。当您使用服务终结点时,大多数服务也会发生同样的情况。
//编辑:
检查some fresh best practices以创建Terraform管道。
o2rvlv0m2#
您可以利用数据源在应用时动态检查代理IP。其结果如下所示:
然后,您需要确保您已经删除了IP,为此,我通常使用
Remove-AzStorageAccountNetworkRule
或类似于以下内容qvsjd97n3#
就像@a4c74356b41说,你必须将我所在地区代理商的所有IP范围列入白名单,如此处所述。
不幸的是大约有160个ip范围(你必须删除所有大于
.../29
的范围)+我自己的,但至少它现在工作。