安装CloudFront代理

为了提高CloudFront Origin服务器的安全性,您可以通过Lambda@Edge.这为AWS CloudFront前端的任何web应用程序或静态内容提供了tCell支持。当您将代理作为CloudFormation堆栈部署到您自己的AWS帐户中时,对CloudFront分发版的请求会在Origin requests和Origin Responses上触发tCell代理Lambda函数。

用例

静态站点和存储在S3桶中的内容通常由CloudFront提供,因为它是一个简单的基于HTML的网站和运行的方法。通过利用TCell的CloudFront代理,您可以在这些网站上添加和强制使用CSP标头,以防止像CSRF和XS等常见攻击。

利用CloudFront作为反向代理有助于减少Origin服务器上的负载这确保您的web应用程序能够尽可能快地为来自世界各地的用户提供内容。将tCell的CloudFront代理添加到CloudFormation堆栈中,可以在原始请求和响应上提供WAF功能的额外好处,并且增加了最小的延迟。

支持的特征

  • 应用防火墙监控和阻断请注意:不支持错误码和响应大小检测。
  • 防止未经验证的HTTP重定向
  • 内容安全策略(CSP)执行
  • 可疑的演员检测与保护

先决条件

安装

下载代理

  1. 在上方导航栏中,单击tCell管理
  2. 点击下载代理
  3. 选择冰球代理。
  4. 下载. zip或者tar.gz文件。

安装代理

所有AWS资源必须在us-east-1地区的同一个帐户中创建。

  1. 部署tCell Lambda@Edge CloudFormation堆栈。
  1. 在解压后的代理归档目录下执行如下命令:山姆部署,指导
  2. 按照提示并根据需要完成字段。

部署要求

必须部署Lambda @ Edge函数美东-1

允许创建SAM CLI IAM角色

使用默认选项是的对于“允许创建SAM CLI IAM角色”。代理的云形成堆栈需要为其Lambda函数创建一个角色,以访问AWS Secrets Manager中的tCell凭证,并允许部署到Lambda@Edge。

  1. 创建一个tCell应用程序和服务器代理API键对于您想要安全的每个云端。
  2. 为每个应用程序的ID和密钥创建AWS Secrets Manager中的秘密。如果通过CloudFormation管理您的CloudFront分布,则可以通过相同的CloudFormation堆栈创建此秘密。秘密名称必须是格式CloudFrontAgent-Tcell / 值必须是服务器代理API键值。
  3. 使用tCell Lambda函数的触发器更新所有所需的CloudFront缓存行为,并为每个Origin添加tCell App ID作为Origin自定义头,以便代理报告到正确的应用程序。为了支持所有功能,tCell agent功能必须配置为接收两者origin-request起源反应事件类型,和origin-request触发器必须配置为在事件中包含请求体。

例子

创造一个秘密AWS秘密经理使用AWS CLI:

         
1
AWS秘密管理器创建秘密--region美东-1 --name cloudfrontagent-tcell / --secret-string

使用CloudFormation模板向CloudFront分发版添加Lambda@Edge触发器和Origin自定义标题:

         
1
...
2
类型:“AWS :: CloudFront ::分布”
3.
特性:
4
起源:
5
- ...
6
origincustomheaders:
7
- 头部名称:'x-tcell-app-id'
8
Headervalue:''
9
defaultcachebehavior:
10
...
11
LambdaFunctionAssociations:
12
- EventType:源 - 请求
13
IncludeBody:真
14
LambdaFunctionARN: ! ImportValue cloudfrontagent-tcell: tcellAgentFunction
15
- EventType:源 - 响应
16
LambdaFunctionARN: ! ImportValue cloudfrontagent-tcell: tcellAgentFunction

使用原点自定义标头的其他配置

除了应用程序ID,几个服务器代理选项可以使用原始自定义标头配置。

服务器代理选项 标题名称
应用程序ID X-TCell-App-ID
允许载荷 X-TCell - 允许有效载荷
记录级别 X-TCELL-LOG-LEVEL
反向代理IP地址头 X-TCell-Reverse-Proxy-IP地址标题

Managed-AllViewer源请求策略

为了最大化Tcell代理的功能,我们建议使用Managed-AllViewer原点请求策略,该ocigne策略将在发生CloudFront缓存未命令时将所有请求属性转发到原点。这有助于确保CloudFront代理具有正确应用TCell配置策略所需的所有信息。

CloudFront缓存策略

我们建议使用CloudFront缓存策略,在缓存键中包含尽可能多的请求属性,以增加代理报告的数据的有用性。例如,如果攻击者请求具有许多不同属性的相同URL,但这些属性不包括在缓存策略中,CloudFront将返回缓存的内容,而不会触发tCell代理函数,从而降低对源服务器的攻击企图的可见性。

限制

随着缓存未命中次数的增加,更多的请求被转发到原始服务器,这就增加了页面加载时间。如果站点性能太慢,且缓存键较大,请尝试从该键中删除属性,直到性能可以接受为止。