【问题标题】:Access ElasticBeanstalk only via CloudFront仅通过 CloudFront 访问 ElasticBeanstalk
【发布时间】:2016-06-11 11:35:33
【问题描述】:

我当前的设置包括 CloudFront 和 Elastic Beanstalk。如何配置对应LoadBalancer的安全组,只有来自CloudFront的请求才能通过LoadBalancer?

【问题讨论】:

标签: amazon-web-services amazon-elastic-beanstalk amazon-cloudfront


【解决方案1】:

这可以通过使用云端 IP 地址设置安全组并将 EC2 实例限制到该安全组来完成。由于Cloudfront IP一直在变化,this will be updated with a Lambda Function

Full Directions Are Here,但这里是悬崖笔记:

  1. AWS 控制台 -> EC2 -> 安全组

  2. 在与您的 EB 实例相同的 VPC 中创建一个安全组,确保创建以下标签:

    • 自动更新:真
    • 名称:云端
    • 协议:http(或者也可以是 https,或者如果您修改脚本,则可以自定义)。
  3. 创建包含以下内容的 IAM 策略:

{ “版本”:“2012-10-17”, “陈述”: [ { “效果”:“允许”, “行动”: [ “日志:创建日志组”, "日志:CreateLogStream", “日志:PutLogEvents” ], “资源”:“arn:aws:logs:::” }, { “效果”:“允许”, “行动”: [ "ec2:DescribeSecurityGroups", "ec2:AuthorizeSecurityGroupIngress", “ec2:撤销安全组入口” ], “资源”:“” } ] }

  1. 在 IAM 中使用上述策略创建角色

  2. 创建一个 Lambda 函数 based on this source code,并为其分配在步骤 #5 中创建的角色。

  3. Use the sample at the bottom of the source code to test the function.

  4. 当由于您提取的 JSON 与测试请求中的哈希值不匹配而失败时,请从错误消息中获取其期望的哈希值,并将测试样本中的 md5 值替换为该值。

  5. 重新运行测试。这次一定会成功的。

注意:查看您创建的组,它们现在填充了一大堆 CloudFront IP 条目。

  1. AWS 控制台 -> Elastic Beanstalk -> 应用程序 -> 环境 -> 配置 -> 实例 - 更新组以包含您创建的组的组 ID。

Lambda 函数将使您的 IP 列表保持同步。

【讨论】:

    【解决方案2】:

    您可以在 Elastic BeanStalk 上放置 IAM 角色,以仅允许来自 CloudFront 的传入消息。或者您只能允许从某个端口访问 ELB 实例,然后将 CloudFront 过滤到该端口。例如,Port 443HTTPS,通过 Port 443 授予 CloudFrontELB 的访问权限,然后在您的 Security-Group 上,仅允许从 CloudFront 将访问的 IP 对实例进行入站访问

    签出this

    【讨论】:

    • 您有此用例的 IAM 角色示例吗?
    【解决方案3】:

    您可以创建一个仅允许 CloudFront 的安全组并使其自动更新。您还可以在分配和 Elastic Beanstalk 环境之间添加自定义标头(预共享密钥)。

    1. https://github.com/awslabs/aws-cloudfront-samples
    2. https://aws.amazon.com/about-aws/whats-new/2015/12/now-add-or-modify-request-headers-forwarded-from-amazon-cloudfront-to-origin/

    【讨论】:

      猜你喜欢
      • 2021-08-12
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 2022-06-11
      • 2015-03-14
      • 2012-09-17
      相关资源
      最近更新 更多