如何指定安全组中的所有端口 - CloudFormation

Posted

技术标签:

【中文标题】如何指定安全组中的所有端口 - CloudFormation【英文标题】:How to specify all ports in Security group - CloudFormation 【发布时间】:2016-12-25 13:58:07 【问题描述】:

我现在有这样的 CloudFormation 脚本:

    "SecurityGroupIngress" : [
      "IpProtocol" : "tcp",
      "FromPort" : "0",
      "ToPort" : "65535",
      "CidrIp" : "0.0.0.0/0"
    ]

它看起来像这样,这很好:

但我想知道如何更新模板来获得这个:

注意端口表示全部。我也想知道它们是否不同?

【问题讨论】:

【参考方案1】:

我发布的原始解决方案(并被原始发布者接受)停止工作,因为 AWS 不再支持它。为了避免一连串的反对票,我删除了答案。替代方案是:

指定端口 0 和 65535

所有协议打开所有端口,而不仅仅是 TCP(如下面的thewire247 所建议的)

"SecurityGroupIngress" : [
  "IpProtocol" : "-1",
  "CidrIp" : "0.0.0.0/0"
]

【讨论】:

不幸的是,这似乎不起作用(至少不再起作用)。我试过这个并得到TCP/UDP (from) port (-1) out of range。我必须明确指定065535 :(【参考方案2】:

FromPort TCP 和 UDP 协议的端口范围的开始,或 ICMP 类型号。如果为 IpProtocol 属性指定 icmp,则可以将 -1 指定为通配符(即任何 ICMP 类型编号)。

ToPort TCP 和 UDP 协议或 ICMP 代码的端口范围结束。如果为 IpProtocol 属性指定 icmp,则可以将 -1 指定为通配符(即任何 ICMP 代码)。

例如 "IpProtocol" : "icmp", "FromPort" : "8", "ToPort" : "-1", "CidrIp" : "10.0.0.0/24"

参考:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html

【讨论】:

【参考方案3】:

如果您希望允许所有协议和所有端口,那么您可以执行以下操作


  "IpProtocol" : "-1"
  "CidrIp" : "0.0.0.0/0"

【讨论】:

请将其更改为接受的答案,当前接受的答案不再有效

以上是关于如何指定安全组中的所有端口 - CloudFormation的主要内容,如果未能解决你的问题,请参考以下文章

Spring LDAP,检查指定组中用户的成员身份

TFS 安全性 - 读者和贡献者组中的用户

无法访问 AWS ECS EC2 实例中的端口

如何将 AWS RDS 安全组中的 Zapier IP 地址列入白名单

AWS ELB - 服务 A 无法连接到同一安全组中的服务 B

您不能为现有 IPv4 CIDR 规则指定引用的组 ID。在 AWS 安全组中编辑入站规则时提示