gpt4 book ai didi

amazon-rds - 如何在没有循环依赖的情况下使用 CDK 将安全组添加到现有 RDS

转载 作者:行者123 更新时间:2023-12-04 12:33:12 25 4
gpt4 key购买 nike

我有一个多堆栈应用程序,我想在一个堆栈中部署 RDS,然后在稍后的堆栈中部署一个连接到 RDS 的 Fargate 集群。
以下是 rds 的定义方式:

    this.rdsSG = new ec2.SecurityGroup(this, `ecsSG`, {
vpc: props.vpc,
allowAllOutbound: true,
});

this.rdsSG.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(5432), 'Ingress 5432');

this.aurora = new rds.ServerlessCluster(this, `rds`, {
engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,
parameterGroup: rds.ParameterGroup.fromParameterGroupName(this, 'ParameterGroup', 'default.aurora-postgresql10'),
vpc: props.vpc,
securityGroups: [this.rdsSG],
// more properties below
});
有了这个添加入口规则,一切都很好,因为 RDS 和 Fargate 都在同一个 VPC 中,我可以正常通信。即使它在自己的 VPC 中,我也担心让世界变得开放。
    const ecsSG = new ec2.SecurityGroup(this, `ecsSG`, {
vpc: props.vpc,
allowAllOutbound: true,
});

const service = new ecs.FargateService(this, `service`, {
cluster,
desiredCount: 1,
taskDefinition,
securityGroups: [ecsSG],
assignPublicIp: true,
});
我如何删除入口规则并允许从该 ecsSG 到 RDS 的入站连接,因为它是稍后部署的?如果我尝试从部署堆栈调用以下命令,则会收到循环依赖错误:
    props.rdsSG.connections.allowFrom(ecsSG, ec2.Port.allTcp(), 'Aurora RDS');
谢谢你的帮助!

最佳答案

结果证明这比我想象的要容易 - 您只需翻转连接即可,这样您就不必尝试修改 rds 以接受 ecs 的安全组,而是使用 allowTo建立与 rds 实例的连接。

    ecsSG.connections.allowTo(props.rds, ec2.Port.tcp(5432), 'RDS Instance');

关于amazon-rds - 如何在没有循环依赖的情况下使用 CDK 将安全组添加到现有 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66979012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com