如何在Azure门户查看Terraform配置的Redis缓存public_network_access_enabled差异?
问题描述
我正在学习用Terraform在Azure部署资源,包括Redis缓存。我创建了两个实例,配置代码如下:
resource "azurerm_redis_cache" "my-public-cache" { name = var.name location = var.location resource_group_name = var.parent_resource_group.name capacity = 0 family = "C" sku_name = "Basic" enable_non_ssl_port = false minimum_tls_version = "1.2" public_network_access_enabled = true redis_version = 6 } resource "azurerm_redis_cache" "my-private-cache" { name = var.name location = var.location resource_group_name = var.parent_resource_group.name capacity = 0 family = "C" sku_name = "Basic" enable_non_ssl_port = false minimum_tls_version = "1.2" public_network_access_enabled = false redis_version = 6 }
除名称外,两者唯一区别是public_network_access_enabled配置项:一个设为true(公网可访问),另一个设为false。目前我能从工作站连接公网实例,但无法连接另一个。
我的问题:
- 该配置对两个实例实际产生了哪些差异?
- 在Azure门户中哪里可以看到这些差异?我在门户查看时没发现区别,希望能在同事询问时指向门户中的具体位置。
补充说明:我的问题并非“如何连接私有实例”,换一种表述是:在不依赖名称和私有端点的情况下,如何通过Azure门户区分这两个实例的公网访问状态?
回答
一、public_network_access_enabled配置带来的实际差异
- 公网访问权限:
- 设为
true的实例:允许公网流量直接访问Redis的默认*.redis.cache.windows.net端点,只要客户端IP在防火墙允许列表内(若配置),就能从公网环境连接。 - 设为
false的实例:完全阻断所有公网流量,只能通过私有端点或同一虚拟网络内的资源访问,公网环境(比如你的工作站)无法直接连接。
- 设为
- 端点与DNS解析:
- 公网实例的公网端点处于活跃状态,DNS解析会返回可被公网访问的IP;
- 私有实例的公网端点被禁用,DNS解析不会返回有效公网IP,即使返回也无法通过公网访问。
- 防火墙规则作用:
- 公网实例的防火墙规则(若配置)会对进公网流量生效;
- 私有实例的防火墙规则会被忽略,因为公网流量已被完全阻断。
二、Azure门户中查看差异的具体位置
你可以通过以下固定路径快速查看公网访问状态,无需依赖实例名称或私有端点:
- 进入目标Redis缓存实例的门户页面;
- 在左侧导航栏的设置分类下,点击网络选项;
- 在页面顶部会看到公网访问的开关状态:
- 公网可访问的实例显示为“启用”;
- 公网不可访问的实例显示为“禁用”。
内容的提问来源于stack exchange,提问作者Dan McCoy
相关产品推荐
相关产品推荐

