跨订阅创建DEV AKV私有端点的Terraform报错及权限咨询
问题
我拥有DEV、NPR和PRD三个Azure订阅,每个环境中均运行着部署在VNET+SUBNET上的容器应用(内置自研构建代理)。为实现DEV AKV的私有化并确保内部可访问,尝试通过Terraform从DEV AKV向NPR订阅创建私有端点。目前已在DEV部署中读取NPR的VNET和SUBNET作为数据集,但创建私有端点时出现“引用资源未找到”的400错误,错误信息如下:
Private Endpoint Name: "akv-private-endpoint"): performing CreateOrUpdate: unexpected status 400 (400 Bad Request) with error: InvalidResourceReference: Resource /subscriptions/NPR_SUB/resourceGroups/NPR-RG/providers/Microsoft.Network/virtualNetworks/NPR-VMSS-NETWORK referenced by resource /subscriptions/DEV_SUB/resourceGroups/DEV-rg/providers/Microsoft.Network/privateEndpoints/DEV-private-endpoint was not found. Please make sure that the referenced resource exists, and that both resources are in the same region.
请问是否需要为DEV服务主体配置NPR资源的额外权限?
回答
- 必须为DEV的服务主体配置NPR订阅下相关资源的权限,否则跨订阅创建私有端点时无法访问NPR的VNET/SUBNET资源。
- 错误提示中的“资源未找到”,除了资源不存在或区域不匹配的情况外,最常见原因是执行Terraform的DEV服务主体没有权限读取NPR订阅下的VNET资源。
- 需要给DEV服务主体在NPR订阅的
NPR-RG资源组或NPR-VMSS-NETWORK虚拟网络上配置至少**网络参与者(Network Contributor)**角色,或者更精细的权限组合:Microsoft.Network/virtualNetworks/read(读取VNET信息)和Microsoft.Network/virtualNetworks/subnets/join/action(将私有端点关联到子网)。 - 同时需确认两个关键前提:一是NPR的VNET确实存在且资源ID完全正确,二是DEV的AKV与NPR的VNET处于同一Azure区域,错误提示也明确要求资源需在同一区域。
内容的提问来源于stack exchange,提问作者Coder
相关产品推荐
相关产品推荐

