添加规则到自动创建的安全组
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
});
我正在使用 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
});