如何在 AWS Elastic Beanstalk 中添加具有配置的额外网络安全组?
我遇到的问题是,每次创建 elastic beanstalk 环境时都需要手动添加 rds 安全组。创建新环境时,elastic beanstalk 总是会创建一个新的默认安全组,但我不想覆盖它。
答案1
如果您从 Web 控制台创建新的 Elastic Beanstalk,则似乎可以在 VPC 配置步骤中设置单个安全组。这仅在您使用 VPC 时才适用。
创建 Elastic Beanstalk 后,您可以通过编辑“实例”部分下的配置来添加安全组。
否则,您可以选择使用 API 或命令行(AWS CLI) 来启动您的 elastic beanstalk。我对 Web 控制台感到很失望,因为它不允许您设置所有可用的 elastic beanstalk 选项,尤其是在启动时。
我刚刚使用命令行启动了我的 elastic beanstalk 环境。如果您想查看现有环境的选项设置,可以使用描述配置设置命令。然后,您可以保存选项、修改它们,并在创建环境时使用它们。请参阅关于设置配置选项的 AWS 文档。
AWS 给出的示例是
aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --version-label v1 --template-name savedconfig --option-settings file://healthcheckurl.json
其中 healthcheckurl.json 的内容是 JSON 格式的选项数组。
答案2
将现有安全组添加到 EB EC2 实例的最简单方法是使用https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config
例如:
$ cat .ebextensions/securitygroup-addexisting.config
option_settings:
- namespace: aws:autoscaling:launchconfiguration
option_name: SecurityGroups
value: rds-launch-wizard-1