微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NSG规则通过Terraform跨天蓝色订阅

如何解决NSG规则通过Terraform跨天蓝色订阅

#provider azurem.mgmt is Subscription A.
#prodiver azurem.corpapps is Subscription B.

我正在尝试通过提供者Subscription Aazurerm.mgmt中创建nsg规则。这里的destination application security group与该订阅中的提供者Subscription Bazurerm.corpapps中。

provider "azurerm" {
    client_id       = "${var.client_id}"
    client_secret   = "${var.client_secret}"
    tenant_id       = "${var.tenant_id}"
    subscription_id = "${var.subscription}"
    alias           = "mgmt"
}

provider "azurerm" {
    client_id       = "${var.client_id}"
    client_secret   = "${var.client_secret}"
    tenant_id       = "${var.tenant_id}"
    subscription_id = "${var.subscription_B}"
    alias           = "corpapps"
}

然后,我使用提供程序从订阅B获取我的asg,如下所示:

enter image description here

然后我在nsg规则中使用该引用

enter image description here

但是,我收到错误消息-说未找到ASG:

enter image description here

但是,在azure门户中,资源已经存在,如图所示:

enter image description here

解决方法

我试图分配在两个订阅上都具有所有者角色的SP,或者使用带有CLI的Azure帐户,但是运气不好。另外,正如评论所指出的那样,有limitation表示NSG在不同位置未引用ASG。经过我的验证后,您不能从另一个订阅中添加ASG,即使它与NSG位于同一区域或以VNet为目标。

此外,当您将此ASG添加为NSG规则中的目标源或目标时,您会看到

选择一个应用程序安全组(ASG)作为安全规则 资源。 ASG启用基于以下功能的细粒度网络安全策略 工作负载或应用程序,而不是IP地址或CIDR块。 指定应用程序安全组的规则仅适用于 属于应用程序安全组成员的网络接口 在同一虚拟网络上。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。