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

我正在尝试Subscription A使用 Provider创建 nsg 规则azurerm.mgmt。这destination application security group是 此订阅中Subscription B的提供者。azurerm.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,如下所示: 在此处输入图像描述

然后我在我的 nsg 规则中使用该引用 在此处输入图像描述

但是,我收到错误 - 说找不到 ASG: 在此处输入图像描述

但是,在 azure 门户中,资源已经存在,如下所示: 在此处输入图像描述

4

1 回答 1

1

我曾尝试分配在两个订阅中都具有所有者角色的 SP,或者将 Azure 帐户与 CLI 一起使用,但这并不成功。此外,正如评论指出的那样,NSG 没有在不同位置引用 ASG是一个限制。经过我的验证,您无法从另一个订阅添加 ASG,即使它与 NSG 位于同一区域或以 VNet 为目标。

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

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

在此处输入图像描述

于 2020-09-09T08:02:05.330 回答