添加规则到自动创建的安全组

Adding rule to the security group which is created automatically

我正在使用 AWS CDK 创建一个 ApplicationLoadBalancer 端口 80 接受外部连接。

我想使用target的8080端口做健康检查

const lb = new elb.ApplicationLoadBalancer(this, "LB", {
  vpc: cluster.vpc,
  loadBalancerName : loadBalancerName,
  internetFacing: true,
  vpcSubnets: {  subnetType: ec2.SubnetType.PUBLIC },
});
const listener = lb.addListener("Listener", { port: 80 });

const targetGroup = listener.addTargets("ECS", {
  protocol: elb.ApplicationProtocol.HTTP,
  port: 80,
  targets: [ecsAdminService]
});
targetGroup.configureHealthCheck({
  path: "/",
  port: "8080"
})

在这种情况下 ApplicationLoadBalancer 自动创建安全组。

但是,它只有出站规则port 80。我要添加出站规则port 8080

如何更改安全组使其自动生成?

当您使用 CDK 创建负载均衡器时,如果未提供安全组,CDK 将自动为您创建一个安全组。

因此,如果要管理安全组规则,您可以使用您需要的规则创建一个安全组并将其附加到创建的 ALB:

const securityGroup1 = new ec2.SecurityGroup(this, 'SecurityGroup1', { vpc });

securityGroup1.addIngressRule(
  ec2.Peer.anyIpv4(),
  ec2.Port.tcp(80),
  'allow HTTP traffic from anywhere',
);

const lb = new elbv2.ApplicationLoadBalancer(this, 'LB', {
    vpc,
    internetFacing: true,
    securityGroup: securityGroup1, // Optional - will be automatically created otherwise
});