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

使用ApplicationLoadBalancedFargateService替换ALB安全组的方法

解决AWS CDK中ApplicationLoadBalancedFargateService的ALB安全组覆盖问题

当使用ApplicationLoadBalancedFargateService创建ALB时,CDK会自动生成默认安全组并开放对应端口给所有IP。要替换为仅允许特定IP访问,有两种可行方案:

方案1:修改默认安全组规则

直接获取CDK自动创建的ALB安全组,移除全开放规则后添加自定义IP规则:

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
});

// 获取ALB的默认安全组
const albDefaultSg = service.loadBalancer.connections.securityGroups[0];

// 移除默认的全443端口开放规则
albDefaultSg.connections.allowFromAnyIpv4(ec2.Port.tcp(443), ec2.SecurityGroupRuleRemoval.REMOVE);

// 添加指定IP的访问规则
albDefaultSg.addIngressRule(
  ec2.Peer.ipv4('11.22.33.44/32'),
  ec2.Port.tcp(443),
  'Allow inbound traffic from Australia DC'
);

方案2:手动指定自定义安全组

在创建服务时直接指定自定义安全组,跳过CDK的默认安全组生成逻辑:

// 先创建自定义安全组
const customSg = new ec2.SecurityGroup(this, 'AdminVpnSecurityGroup', {
  vpc: context.vpc,
  allowAllOutbound: true
});

customSg.addIngressRule(
  ec2.Peer.ipv4('11.22.33.44/32'),
  ec2.Port.tcp(443),
  'Allow inbound traffic from Australia DC'
);

// 创建服务时指定负载均衡器的安全组
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,
  loadBalancerConfiguration: {
    securityGroups: [customSg]
  }
});

两种方案都能实现仅允许特定IP访问ALB的需求,方案2更适合需要完全控制安全组规则的场景,方案1则适合在默认基础上调整规则的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 01:07:35