使用 AWS CDK 允许从一个安全组进入另一个安全组

Allow ingress from one security group to another using AWS CDK

如何使用 AWS CDK 将两个安全组连接在一起?

这是允许 IPv4 流量通过端口 443 进入的示例

ec2SecurityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(443), 'Test rule', false)

这来自文档:

public addIngressRule(peer: IPeer, connection: Port, description?: string, remoteRule?: boolean): void

这是我能想到的最好的(其中 'elbSecurityGroup' 是另一个安全组):

const p = Peer.anyIpv4()
p.connections.allowFrom(elbSecurityGroup.connections, Port.tcp(443))
ec2SecurityGroup.addIngressRule(p, Port.tcp(443), 'Test rule', false)

但这并没有任何意义。必须有更好的方法来初始化对等点。打字稿说

Constructor of class 'Peer' is protected and only accessible within the class declaration.

如果我尝试:

const p = new Peer()

这可以通过直接访问安全组或其他构造上的 'connections' 来完成

ec2SecurityGroup.connections.allowFrom(elbSecurityGroup, Port.tcp(443), 'Application Load Balancer')

或者从一个 EC2 实例对象直接到另一个 EC2 实例:

ec2Instance1.connections.allowFrom(ec2Instance2, Port.tcp(4321), 'Inbound')
ec2Instance2.connections.allowTo(ec2Instance1, Port.tcp(4321), 'Outbound')

这将 create/alter 一个由附加到 EC2 实例的 CDK 创建的安全组。