Как добавить публичные c подсети в группу безопасности? - PullRequest
2 голосов
/ 10 апреля 2020

Я написал этот код, чтобы добавить публичные c подсети VP C в группу 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 голосов
/ 15 апреля 2020

Согласно https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html#security -группам-правилам источником / назначением правила группы безопасности может быть один из

  • IP-адрес (диапазон)
  • Группа безопасности
  • AWS служебный префикс

Исходя из вышеизложенного, вам потребуется поискать блоки CIDR ваших подсетей publi c и добавить их в качестве источников для входа правила. Однако, похоже, что поиск блоков CIDR в vpc / подсетях на данный момент не так прост - https://github.com/aws/aws-cdk/issues/2232. Вам нужно будет либо помнить ваши блоки CIDR в коде, если вы создаете подсети, либо иметь блоки CIDR в качестве констант в вашем коде, если вы используете существующие VP C и подсети.

Альтернатива, возможно, более подходящим и удобным является использование групп безопасности в качестве источника для ваших правил. Добавьте все ресурсы в ваших подсетях publi c в группы безопасности и управляйте правилами групп безопасности на их основе.

...