You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform为AWS安全组入站规则设置Name标签?

问题原因

你现在的写法无法生效是两个原因导致的:

  • 内嵌在aws_security_group资源中的ingress配置块本身不支持tags参数,你写在这部分的标签会被AWS Provider直接忽略,不会应用到规则上。
  • AWS安全组规则的标签是独立于安全组本体标签的资源属性,无法通过安全组的全局配置直接传递给单条规则。

解决方法

你需要拆分配置,不用安全组资源内嵌的ingress字段,改为单独声明aws_security_group_rule资源配置每条入站/出站规则,这个资源支持给单条规则配置独立标签,示例代码如下:

# 安全组本体配置
resource "aws_security_group" "allow-google-dns" {
  name        = "allow-google-dns"
  description = "Allows google dns"
  vpc_id      = var.vpcid

  tags = {
    Name = "Allow-Google"
  }
}

# 单独声明入站规则,可配置独立标签
resource "aws_security_group_rule" "google_dns_in" {
  type              = "ingress"
  from_port         = 0
  to_port           = 0
  protocol          = "-1"
  cidr_blocks       = ["8.8.8.8/32"]
  security_group_id = aws_security_group.allow-google-dns.id
  # 单条规则的Name标签,配置后即可在控制台对应规则列展示
  tags = {
    Name = "MyName"
  }
}

注意事项

  • 需要你的AWS Terraform Provider版本 >= 3.64.0,该版本才新增了安全组规则的标签支持。
  • 不要同时混用安全组内嵌ingress/egress规则和独立aws_security_group_rule资源,否则会出现规则冲突、反复覆盖的问题,要给单条规则打标签请统一使用独立规则资源配置所有规则。

内容的提问来源于stack exchange,提问作者M Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:18:04