如何将公共子网添加到安全组?

时间:2020-04-10 15:05:14

标签: aws-cdk

我编写了这段代码,将VPC的公共子网添加到rdsSecurityGroup。

for publicSubnet in self.vpc.public_subnets:
    self.rdsSecurityGroup.add_ingress_rule(peer=publicSubnet,
                                           connection=ec2.Port.tcp(3306))

但是我得到了这个错误:

jsii.errors.JSIIError: peer.toIngressRuleConfig is not a function

我该如何解决?

1 个答案:

答案 0 :(得分:0)

根据https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html#security-group-rules,安全组规则的源/目标可以是以下之一:

  • IP地址(范围)
  • 安全组
  • AWS服务前缀

基于上述,您将需要查找公共子网的CIDR块并将其添加为入口规则的源。但是,目前看来,查找vpc /子网的CIDR块并不那么容易-https://github.com/aws/aws-cdk/issues/2232。如果要创建子网,则需要记住代码中的CIDR块,或者在使用现有VPC和子网的情况下,将CIDR块作为代码中的常量。

或者,也许更合适和方便的方法是使用安全组作为规则的来源。将公共子网中的所有资源添加到安全组,并根据这些资源管理安全组规则。