我使用 Amazon Elastic Compute Cloud (Amazon EC2) 密钥对配置了 AWS Elastic Beanstalk 环境。实例安全组向互联网开放了 SSH 端口 22 (0.0.0.0/0)。我想限制 Elastic Beanstalk 实例中的特定 CIDR 或安全组的 SSH 访问权限。
解决方案
**注意:**Elastic Beanstalk 使用 AWS CloudFormation 管理资源。如果您在 CloudFormation 之外手动更改 Amazon EC2 实例,则可能会出现错误。
要限制对特定 CIDR 范围或安全组的访问权限,请配置以下设置。
限制对特定 CIDR 范围的 SSH 访问权限
完成以下步骤:
-
创建具有以下设置的配置文件:
option_settings:
aws:autoscaling:launchconfiguration:
SSHSourceRestriction: tcp, 22, 22, my-cidr-range
**注意:**将 my-cidr-range 替换为您的 CIDR 范围。
-
将文件移至应用程序源包根目录下的 .ebextensions 文件夹:
.ebextensions/SSHSourceRestriction.config
-
将源包部署到环境中。
限制对特定安全组的 SSH 访问权限
完成以下步骤:
-
创建具有以下设置的配置文件:
option_settings:
aws:autoscaling:launchconfiguration:
SSHSourceRestriction: tcp, 22, 22, my-security-group
**注意:**将 my-security-group 替换为您的安全组名称。
-
将文件移至应用程序源包根目录下的 .ebextensions 文件夹:
.ebextensions/SSHSourceRestriction.config
-
将源包部署到环境中。
相关信息
GitHub 网站上的 elastic-beanstalk-samples