我目前的设置包括CloudFront和Elastic Beanstalk。如何配置相应LoadBalancer的安全组,以便只有来自CloudFront的请求才能通过LoadBalancer?
答案 0 :(得分:1)
可以通过使用云前端IP地址设置安全组并将EC2实例限制为该安全组来完成此操作。由于Cloudfront IP一直在变化,this will be updated with a Lambda Function。
Full Directions Are Here,但这里有悬崖说明:
AWS控制台 - > EC2 - >安全组
在与EB实例相同的VPC中创建安全组,确保创建以下标记:
使用以下内容创建IAM策略:
{ “版本”:“2012-10-17”, “声明”:[ { “效果”:“允许”, “行动”:[ “日志:CreateLogGroup” “日志:CreateLogStream” “日志:PutLogEvents” ] “资源”:“arn:aws:logs:::” }, { “效果”:“允许”, “行动”:[ “EC2:DescribeSecurityGroups” “EC2:AuthorizeSecurityGroupIngress” “EC2:RevokeSecurityGroupIngress” ] “资源”:“” } ] }
在IAM中,使用上述政策创建角色
创建一个Lambda函数based on this source code,并为其指定在步骤#5中创建的角色。
Use the sample at the bottom of the source code to test the function
当它因为您提取的JSON与测试请求中的哈希不匹配而失败时,请从错误消息中获取预期的哈希值,并将该测试样本中的md5值替换为该值。
重新运行测试。这次它会成功。
注意:看看您创建的群组,现在他们已经填充了一大堆CloudFront IP条目。
Lambda函数将使您的IP列表保持同步。
答案 1 :(得分:0)
您可以在 Elastic BeanStalk 上添加 IAM角色,以仅允许来自 CloudFront 的传入邮件。或者,您只能允许从某个端口访问 ELB实例,然后将 CloudFront 过滤到该端口。例如,Port 443
为HTTPS
,通过Port 443
授予 CloudFront ELB ,然后在您的安全组上,仅允许来自 CloudFront 将访问它的IP的入站访问实例。
检查this
答案 2 :(得分:0)
您可以创建仅允许CloudFront并自动更新的安全组。您还可以在发行版和Elastic Beanstalk环境之间添加自定义标头(预共享密钥)。