有没有办法构建一个允许所有 IPv4 和 IPv6 出口流量的安全组?
Is there a way to construct a security group with all IPv4 and IPv6 egress traffic allowed?
我想从已经连接到 IPv4 服务的 Fargate 服务连接到仅 IPv6 服务。
理想情况下,默认安全组将包含 ::/0
的出口规则,就像 0.0.0.0/0
一样。
我首先尝试使用 connections
添加它,但没有将规则添加到模板。
service.connections.allowTo(Peer.anyIpv6(), Port.allTraffic());
然后我尝试直接构建安全组
const securityGroup = new SecurityGroup(this, 'SecurityGroup', { vpc })
securityGroup.addEgressRule(Peer.anyIpv6(), Port.allTraffic());
这会发出警告,并且不会将规则添加到模板。
Ignoring Egress rule since 'allowAllOutbound' is set to true; To add customize rules, set allowAllOutbound=false on the SecurityGroup
最后我尝试用 allowAllOutbound=false
构建一个安全组,就像警告建议的那样。
const securityGroup = new SecurityGroup(this, 'SecurityGroup', { vpc, allowAllOutbound: false })
securityGroup.addEgressRule(Peer.anyIpv4(), Port.allTraffic());
securityGroup.addEgressRule(Peer.anyIpv6(), Port.allTraffic());
合成失败并显示错误消息:
Cannot add an "all traffic" egress rule in this way; set allowAllOutbound=true on the SecurityGroup instead.
代码中的注释表明这是一个 'for now' 解决方案,但并不理想。 https://github.com/aws/aws-cdk/blob/b2bba775282a7b031ae34de6bef838558410cb67/packages/%40aws-cdk/aws-ec2/lib/security-group.ts#L530-L535
环境:aws-cdk 2.10.0(构建 e5b301f),Typescript 4.5.5,NodeJS v14.18.1
鉴于 CDK 的当前限制,我看到的唯一选择是使用逃生舱口之一(也就是说,直到修复此错误):
- 对安全组使用 Cfn (L1) 构造(或者可能只是 ipv6 的安全组出口规则)并像在常规 cloudformation 中那样做(可能是最佳选择)
- 使用 属性 覆盖并将
"SecurityGroupEgress" : [ ipv6EgressRule, ipv4EgressRule ]
key-value 对添加到基础 Cfn 资源。
有关逃生舱口的更多信息:https://docs.aws.amazon.com/cdk/v2/guide/cfn_layer.html
我想从已经连接到 IPv4 服务的 Fargate 服务连接到仅 IPv6 服务。
理想情况下,默认安全组将包含 ::/0
的出口规则,就像 0.0.0.0/0
一样。
我首先尝试使用 connections
添加它,但没有将规则添加到模板。
service.connections.allowTo(Peer.anyIpv6(), Port.allTraffic());
然后我尝试直接构建安全组
const securityGroup = new SecurityGroup(this, 'SecurityGroup', { vpc })
securityGroup.addEgressRule(Peer.anyIpv6(), Port.allTraffic());
这会发出警告,并且不会将规则添加到模板。
Ignoring Egress rule since 'allowAllOutbound' is set to true; To add customize rules, set allowAllOutbound=false on the SecurityGroup
最后我尝试用 allowAllOutbound=false
构建一个安全组,就像警告建议的那样。
const securityGroup = new SecurityGroup(this, 'SecurityGroup', { vpc, allowAllOutbound: false })
securityGroup.addEgressRule(Peer.anyIpv4(), Port.allTraffic());
securityGroup.addEgressRule(Peer.anyIpv6(), Port.allTraffic());
合成失败并显示错误消息:
Cannot add an "all traffic" egress rule in this way; set allowAllOutbound=true on the SecurityGroup instead.
代码中的注释表明这是一个 'for now' 解决方案,但并不理想。 https://github.com/aws/aws-cdk/blob/b2bba775282a7b031ae34de6bef838558410cb67/packages/%40aws-cdk/aws-ec2/lib/security-group.ts#L530-L535
环境:aws-cdk 2.10.0(构建 e5b301f),Typescript 4.5.5,NodeJS v14.18.1
鉴于 CDK 的当前限制,我看到的唯一选择是使用逃生舱口之一(也就是说,直到修复此错误):
- 对安全组使用 Cfn (L1) 构造(或者可能只是 ipv6 的安全组出口规则)并像在常规 cloudformation 中那样做(可能是最佳选择)
- 使用 属性 覆盖并将
"SecurityGroupEgress" : [ ipv6EgressRule, ipv4EgressRule ]
key-value 对添加到基础 Cfn 资源。
有关逃生舱口的更多信息:https://docs.aws.amazon.com/cdk/v2/guide/cfn_layer.html