仅允许从 Amazon CloudFront 安全访问 ALB

0

【以下的问题经过翻译处理】 我的客户正在从本地环境进行迁移,他问我如何只从CloudFront安全地访问ALB。我们在这个主题(基于安全组自动更新)上有一篇博文< https://aws.amazon.com/blogs/security/how-to-automatically-update-your-security-groups-for-amazon-cloudfront-and-aws-waf-by-using-aws-lambda/>。但在这篇博文的开头提到:

注意:自2019年12月3日起,本文中描述的功能和服务已经发生了变化,可能会导致本文中描述的过程已过时且不再准确。如果我们更新了这篇文章或创建了替代文章,我们将在此处添加通知。

我们现在有新的解决方案吗?

profile picture
专家
已提问 3 个月前12 查看次数
1 回答
0

【以下的回答经过翻译处理】 其他防止用户直接访问ALB的方法是利用CloudFront上的自定义标头和ALB上的WAF。

步骤1:配置CloudFront以向通过CloudFront传递的请求添加自定义标头。

步骤2:将AWS WAF附加到ALB

步骤3:在WAF上创建“String Match”规则/条件,仅允许带有CloudFront添加的自定义标头的请求,如果请求中没有该标头,则阻止请求。

在CloudFront上:

编辑Origin 在“Origin Settings”中,添加一个自定义标头,键可以是任何内容,例如“X-Origin-Header”,值是一些字母数字密钥,CloudFront将在通过它的请求中添加这个值。

在ALB上:

在ALB上添加AWS WAF,并创建一个“String Matching”条件,将“Header”键设置为“X-Origin-Header”,值为您在CloudFront分发中输入的值。 将此条件添加到规则,并将规则添加到ALB上的WebACL。

请求的生命周期:

在这里,每当用户尝试通过CloudFront访问应用程序时,请求中会添加一个带有密钥字符串值的自定义标头,位于ALB前面的WAF只有在请求包含由CloudFront传递的自定义标头时,才会将请求转发到ALB。

如果用户尝试直接访问ALB,请求将不包含自定义标头,并且WAF将以403状态码阻止该请求。

欲了解更多信息,请参考这篇文章< https://www.metaltoad.com/blog/how-to-protect-origin-with-aws-waf-shield>,并让我知道您是否需要任何解答。

这种方法的主要优点是您不必应对CloudFront IP地址频繁变更的情况。

profile picture
专家
已回答 3 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则