GCP tags是新型network_tag吗?firewall与GKE适配相关疑问
GCP标签与防火墙规则、GKE标签适配问题解答
首先先理清GCP里两类容易搞混的标签属性:
- 网络标签(network tags):没有赋值的纯字符串标识,可以直接绑在VM实例、GKE节点池上,是经典VPC防火墙规则从一开始就支持的资源定位维度,写防火墙规则的时候直接填对应字符串就能匹配到挂了这个标签的资源。
- 资源标签(Resource Tags):键值对结构的标签,比如
environment=production,最早是给IAM权限管控、组织策略做细粒度条件判断用的,用来在资源层级控制策略的允许/拒绝逻辑。
为资源挂载键值对形式的tags后,能不能写防火墙规则定位这类资源?
结论是看你用的是哪类防火墙:
- 如果你用的是传统的经典VPC防火墙规则(就是VPC网络默认防火墙配置页里创建的规则),目前只认纯字符串的网络标签,识别不了键值对结构的资源标签,没法直接用这类标签定位目标资源。
- 如果你用的是GCP推出的支持组织、文件夹、VPC多级挂载的分层防火墙策略(Firewall Policies),已经原生支持把资源标签作为源、目标的匹配条件,只要资源绑了对应键值的标签,就能被防火墙规则定位到,不需要额外配网络标签。
1.23.5-gke.150及以上版本GKE支持挂载的集群级tags,能不能等效发挥network_tags的作用?
不能直接等效,还是要看你用的防火墙类型:
- 这个版本开始支持的集群级标签属于资源标签范畴,配置之后会自动继承到集群下所有节点(也就是底层的Compute Engine VM实例)的资源标签字段,不会自动写到实例的网络标签字段里,两个字段是完全独立的。
- 如果你用的是前面说的支持资源标签匹配的分层防火墙策略,这些继承到节点的集群标签可以正常被防火墙识别,能实现和network_tags一样的资源定位效果。
- 如果你用的是传统经典VPC防火墙规则,这类集群级标签完全不会被识别,根本替代不了network_tags,你还是得在节点池配置里单独指定network_tags,才能被防火墙规则匹配到。
补充:GKE节点池的配置项里本身就有单独的network_tags设置入口,如果你需要用传统防火墙规则定位节点,直接在节点池层面配网络标签就行,不用绕路用集群级资源标签。
内容的提问来源于stack exchange,提问作者intotecho
相关产品推荐
相关产品推荐

