部署你的第一个边缘函数 Lambda@Edge并查看运行日志

更新于2024年1月,创建的函数可使用Nodejs 16/18运行

一、背景

AWS的CDN服务CloudFront在Edge端(边缘侧)具有一定的算力,可运行简单程序满足应用交互需要,这些场景包括:

  • 身份验证
  • 无须连接源站(ALB/EC2/S3)的情况下进行业务逻辑运算给源站卸载(Offload)压力
  • 按访问者的环境(如浏览器)、或访问设备等信息定制输出结果
  • 为静态源站(S3)增加处理能力
  • 防爬虫等应用层防护(可与ALB/WAF搭配防护)

实现这些场景,可通过Edge的边缘侧算力实现。具体实现又有两个产品:Lambda@Edge和CloudFront Function。

Continue reading “部署你的第一个边缘函数 Lambda@Edge并查看运行日志”

为API Gateway使用自定义域名和mTLS双向证书认证

一、背景

通常使用的HTTPS接口采用的是服务器端Transport Layer Security(以下简称TLS)认证。TLS认证默认是由服务器提供证书,服务器端证书经过全球数家证书颁发机构和顶级CA签署认证的证书,来标识服务器自己的真实、正确的身份。在亚马逊云科技的云平台上,这一服务器端证书通常由ACM生成并管理,配置到Amazon CloudFront、Amazon ELB、Amazon API Gateway(以下简称API Gateway)等服务上。

为了进一步增强安全性,TLS协议建立连接时候,服务器可以要求客户端也提供自己X.509格式的证书用于验明身份。由于服务器和客户端双方都需要提供证书,这种认证方式被称为 mutual Transport Layer Security (以下简称mTLS),也称为双向TLS。

Continue reading “为API Gateway使用自定义域名和mTLS双向证书认证”

为Amazon API Gateway启用IAM身份验证

一、背景

新创建的Amazon API Gateway (以下简称API Gateway)的Regional级别的接口是可以通过互联网进行公开调用的。在API为应用内部调用的场景下,需要设置身份验证。主要的身份验证手段有:IAM身份验证、Lambda转发器验证(Backend可使用数据库)、OAuth/JWT认证。此外,在API Gateway上使用mTLS,配置双向证书,也可以显著提升安全性。

本文介绍如何开启IAM身份验证。

Continue reading “为Amazon API Gateway启用IAM身份验证”

使用Amazon WAF对Amazon API Gateway的接口做IP地址白名单保护

一、背景

Amazon API Gateway(以下简称)是AWS的托管的API网关服务。许多企业需要将自身应用的数据接口暴露给第三方合作伙伴,但使用专线成本较高,或者因面向多个互联网服务交互,因此将接口暴露在互联网上。为提升接口安全性,可采用为API Gateway设置来源IP地址限制的办法,提升安全。API Gateway支持设置Resource Policy,通过资源策略中填写IP Condition来限制可以访问的IP访问,包括白名单允许,或者显式拒绝。

使用API Gateway自带的策略控制IP地址有一些局限,因为资源策略是随着API Gateway的部署Stages下发生效的,因此有时候仅需要IP地址的策略变更,但是为了让其生效,需要对整个接口开发的版本和Stages阶段创建新的版本,并进行流量切换。如此过程对整个应用开发和运行体系的影响较大。那么有什么办法实施Out-of-band方式(带外)的IP策略管控呢?这里就可以用到Amazon WAF。

Continue reading “使用Amazon WAF对Amazon API Gateway的接口做IP地址白名单保护”

为SES配置SNS Event追踪每一封发送的状态

一、背景

AWS Simple Email Service是用于大规模发送推广邮件的服务,用于支撑会员系统等合理合法的邮件群发。

SES的最佳实践是:每个邮件地址调用1次SES接口,单独发送一个唯一的地址。参考如下介绍。

发送限制基于的是收件人而不是电子邮件。例如,一封包含 10 个收件人的电子邮件占用 10 份配额。但是,建议不要在一次 SendEmail 调用中向多个收件人发送电子邮件,因为如果对 Amazon SES 的调用失败(例如,请求格式错误),整个电子邮件都将被拒绝,没有任何收件人能收到预期的电子邮件。我们建议您为每个收件人调用一次 SendEmail

https://docs.aws.amazon.com/zh_cn/ses/latest/DeveloperGuide/manage-sending-limits.html

SES默认是只显示管理整个domain的状态,包括邮件总数、退信比例等。如果希望追踪单封邮件发送,可以使用如下办法。

Continue reading “为SES配置SNS Event追踪每一封发送的状态”