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

Terraform创建AWS安全组时协议参数无效问题求助

问题解决:Terraform部署AWS安全组时协议参数错误

错误原因:你在ingress块中使用的protocol = "MySQL/Aurora"是AWS控制台展示的友好名称,并非AWS API认可的合法协议值。AWS安全组的protocol参数仅支持两种格式:

  • IANA标准协议名称,例如tcp、udp、icmp
  • 对应协议的数字编号,例如TCP对应6,UDP对应17,ICMP对应1

由于MySQL与Aurora均基于TCP协议通信,3306是它们的默认TCP端口,因此只需将协议参数修改为tcp或6即可解决问题。

修正后的Terraform代码:

resource "aws_security_group" "ort_to_db" {
  name   = "MySQL/AURORA"
  vpc_id = data.aws_vpc.vpc_ort.id

  ingress {
    from_port   = 3306
    to_port     = 3306
    protocol    = "tcp" # 也可替换为数字 6
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = -1
    cidr_blocks = ["0.0.0.0/0"]
  }
}

补充说明:AWS控制台的服务选项是简化操作的快捷方式——当你选择"MySQL/Aurora"时,控制台会自动帮你填充端口3306和协议TCP,但Terraform调用AWS API时必须直接指定合法的协议标识符,不能使用控制台的友好名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:35:19