aws 云平台常见操作
S3
s3 配置跨域
当使用 aws 的 cloudfront 或其他第三方 cdn (如 cdn77)为域名加速,资源是回源到 aws s3 的情况下,一般都需要配置 允许跨域,此种情况需要在 aws s3 存储桶中配置允许跨域 [1]
配置步骤如下:
定位到目标 s3 桶,进入
权限
管理页面找到
CORS
配置,配置以下 JSON 格式内容,允许所有源的跨域[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]Cloudfront 中,回源到此 S3 的加速域名配置中,
行为
按照下图配置,主要为开启OPTIONS
缓存,并在响应标头策略中选择:CORS-with-preflight-and-SecurityHeadersPolicy
[2]
此配置为可选配置,可以解决客户端偶尔会遇到的因跨域问题而导致的资源获取失败问题。
存储桶同步数据
Data Transfer Hub 数据在线传输解决方案 。
- 海外账号选择
从亚马逊云科技海外区域控制台中启动方案
- 弹出页面中点击下一步,在
指定堆栈详细信息
页面配置堆栈名称
以及AdminEmail
(后面登陆 Potal 需要发送到邮箱的初始密码,要确保邮箱可登录)
- 后面步骤使用默认选项,一直下一步,直到点击
提交
- 等待 5-10 分钟后,全部资源创建完成,点击刚刚创建的堆栈的
输出
页面,其中有数据在线传输
配置的 Potal 链接(PortalUrl
),点击此 url,使用堆栈配置的邮箱中的密码登陆,第一次登陆后需要改密码。
- 登陆后,创建迁移任务。任务创建并运行后,可以在监控页面看到迁移时的相关监控数据
如果同步目标存储桶中的数据量太大,建议关闭
是否需要数据比对
选项,开启此选项,执行真正的数据同步前,需要完成对目标存储桶中数据的扫描,数据量越大,耗时越久
此同步工具会产生费用
Cloudfront
Cloudfront 配置 referer 校验
referer 校验
是一种常用的基础的防盗链手段,可以限制非法的 Referer 来源请求资源。参考配置步骤如下:
登陆 aws 帐号后,定位到
Cloudfront --> 函数(Function)
页面点击
Create function(创建函数)
,为函数命名,例如CheckRefererFunction
。编辑函数代码
function handler(event) {
var request = event.request;
var headers = request.headers;
// 获取 Referer 头,如果不存在,则设置为空
var referer = headers.referer ? headers.referer.value : "";
// 定义允许的 Referer 列表
var allowedReferers = [
"https://example.com/",
"https://example.com"
];
// 检查 Referer 是否在允许列表中
var isAllowed = allowedReferers.some(function(allowedReferer) {
return referer.startsWith(allowedReferer);
});
if (!isAllowed) {
// 如果 Referer 不被允许,返回 403 Forbidden 响应
return {
statusCode: 403,
statusDescription: "Forbidden",
headers: {
"content-type": { value: "text/plain" }
},
body: "Access denied"
};
}
// 如果 Referer 合法,允许请求继续
return request;
}在测试页面添加自定义 Header 进行测试,看函数是否按照预期工作,函数功能正常后 Publish (发布)函数
定位到
Cloudfront --> Distributes(分配)
页面,选择要关联函数的 Distribute。找到Actions(行为)
进行编辑在
Function associations
中配置关联 CloudFront 函数。