使用Terraform配置MongoDB Atlas至Azure网络对等连接遇错求助
Azure市场MongoDB Atlas网络对等连接创建失败排查
尝试通过Terraform从Azure市场提供的MongoDB Atlas向Azure环境添加网络对等连接,使用的Terraform代码如下:
resource "mongodbatlas_network_peering" "peering" { project_id = mongodbatlas_project.project.id container_id = mongodbatlas_cluster.cluster.container_id provider_name = "AZURE" azure_directory_id = data.azurerm_client_config.current.tenant_id azure_subscription_id = data.azurerm_subscription.subscription.id resource_group_name = data.azurerm_virtual_network.vnet.resource_group_name vnet_name = data.azurerm_virtual_network.vnet.name depends_on = [ azurerm_role_assignment.mongodb_role_assignment ] }
执行时出现错误:
error creating MongoDB Network Peering Connection: POST https://cloud.mongodb.com/api/atlas/v1.0/groups/xxxxxxxxxxxxxxxxxxxxxxxxxx/peers: 404 (request "AZURE_CUSTOMER_NETWORK_UNREACHABLE") External Azure subscription unreachable.
运行Terraform代码的Azure SPN已拥有订阅参与者权限及VNet网络参与者权限,且当前VNet无防火墙拦截,疑问:是否需要将该SPN添加为MongoDB用户?
回答
不需要将该SPN添加为MongoDB用户,这个错误的核心是Atlas服务无法访问到你的Azure订阅资源,可从以下几个方向排查:
- 确认SPN已被授予
Microsoft.Network/virtualNetworks/peer/action权限(虽然订阅参与者权限理论上包含该权限,但可单独验证权限配置是否生效)。 - 检查Azure订阅是否允许跨租户网络对等连接,部分订阅会通过Azure Policy限制外部租户的对等操作,需确保没有相关策略阻止。
- 验证Terraform配置中的
container_id是否正确,该ID对应Atlas集群所在的Azure容器资源,必须与目标VNet处于同一区域且匹配网络范围。 - 确认Atlas项目已完成Azure集成授权,在Atlas控制台中检查是否已通过服务主体授权Atlas访问你的Azure订阅资源。
- 排查Azure订阅的资源提供商注册状态,确保
Microsoft.Network已完成注册(未注册会导致网络API调用失败)。
内容的提问来源于stack exchange,提问作者pieter-jan goeman
相关产品推荐
相关产品推荐

