使用 ApplicationLoadBalancedFargateService 构造时用新的负载均衡器安全组覆盖

问题描述 投票:0回答:2

我有一个 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 文档中没有找到任何允许我删除现有安全组或任何要覆盖的内容。非常感谢对此的任何帮助。 谢谢

amazon-ecs aws-application-load-balancer aws-security-group
2个回答
2
投票

您可以在 ApplicationLoadBalancedFargateService 构造上设置属性“openListener: false”。 这将从默认安全组中删除“0.0.0.0/0”的默认入口规则。

然后您可以将辅助组添加到 ALB,如示例中所示。


0
投票

只是想知道是否有任何方法可以替换默认的安全组,或者即使您添加自己的安全组,它也会始终存在吗?

© www.soinside.com 2019 - 2024. All rights reserved.