我有一个 cdk 堆栈,其中包含使用 ApplicationLoadBalancedFargateService (ref.) 构建的 ECS 容器,它允许来自任何地方的请求。现在我有一个更新的要求,仅允许来自特定 IP 的应用程序访问。到目前为止,我在 ApplicationLoadBalancedFargateService 中没有找到任何将安全组分配给负载均衡器的选项。我尝试用
进行测试const service = new ApplicationLoadBalancedFargateService(this, 'Admin', {
cluster: context.ecsCluster,
memoryLimitMiB: webService.memoryLimitMiB,
desiredCount: webService.desiredCount,
cpu: webService.cpu,
taskImageOptions: imageOptions,
taskSubnets: vpcParams.vpcSubnets,
protocol: elbv2.ApplicationProtocol.HTTPS,
sslPolicy: elbv2.SslPolicy.TLS12,
certificate
}
const securityGroup = new ec2.SecurityGroup(this, 'AdminVpnSecurityGroup', {
vpc: context.vpc,
allowAllOutbound: true
});
securityGroup.addIngressRule(
ec2.Peer.ipv4('11.22.33.44/32'),
ec2.Port.tcp(443),
'Allow inbound traffic from Australia DC'
);
service.loadBalancer.addSecurityGroup(securityGroup);
这会向我的 ALB 添加一个额外的安全组,但允许“0.0.0.0/0”的现有规则仍保留在那里,实际上我想覆盖它。
我在 AWS 文档中没有找到任何允许我删除现有安全组或任何要覆盖的内容。非常感谢对此的任何帮助。 谢谢
您可以在 ApplicationLoadBalancedFargateService 构造上设置属性“openListener: false”。 这将从默认安全组中删除“0.0.0.0/0”的默认入口规则。
然后您可以将辅助组添加到 ALB,如示例中所示。
只是想知道是否有任何方法可以替换默认的安全组,或者即使您添加自己的安全组,它也会始终存在吗?