网易首页 > 网易号 > 正文 申请入驻

不用后端代码,我给静态文档站上了把锁

0
分享至

你的内部文档正在裸奔。部署在S3上的Docusaurus站点——那些API规范、运维手册、新人指南——任何人拿到URL就能直接访问。S3加CloudFront确实给了HTTPS、缓存和全球分发,但偏偏没给登录页。

多数团队的选择只有两个:要么把文档搬到Notion、Confluence这类平台然后放弃控制权,要么一股脑塞进VPN里完事。两种方案都能用,但烦人的 trade-off 很快就会找上门。


我想要第三条路:静态站点保持原样(我用的是Docusaurus,换别的也一样),继续放在S3+CloudFront上(便宜、快、零维护),同时在前面加一层真正的认证,而且不动站点代码、不动构建流水线。

最终产物是 docusaurus-cognito-auth ——一套基于Lambda@Edge和AWS Cognito的纯无服务器认证层。本文是架构拆解、决策思路,以及踩过的坑。

技术栈极简:四个AWS服务各干各的。S3存静态文件,私有桶,不开网站托管,部署靠aws s3 sync单独走。CloudFront挡在前面,管TLS、缓存、压缩、全球边缘节点,通过OAC访问S3,桶完全私有,只有CloudFront能读。

认证逻辑全在Lambda@Edge。两个函数,都是CloudFront的viewer-request触发器:一个查JWT cookie,一个处理OAuth回调。Cognito当身份提供商,User Pool带Hosted UI,注册登录、密码重置、邮件验证全包。Lambda跟它的token端点通信,用JWKS验签。

核心约束:认证层和静态站点彻底解耦。换站点(Docusaurus、Next.js导出、纯HTML)不用重部署认证;改认证不用重建站点。两个独立 concern,两个独立发布周期。


请求流程其实就两种情况。有合法cookie时:浏览器→CloudFront→auth-check Lambda→验签通过→S3→返回页面。函数提取auth_token,用RS256验JWT签名、查过期时间、issuer、audience,全过就原样返回请求对象,CloudFront继续去S3拿页面。用户无感知,边缘执行约1毫秒。

无cookie或验签失败时:auth-check把请求重定向到Cognito Hosted UI,带好回调URL和PKCE参数。用户登录后,Cognito跳回第二个Lambda函数,它用授权码换token,设好cookie,再302回原始页面。全程无后端服务器。

几个关键决策。JWT放cookie而非localStorage,是为了让浏览器自动带上,Lambda@Edge能直接读。RS256而非HS256,因为验签只需公钥,Lambda不用存Cognito客户端密钥。OAC而非 OAI,OAC是AWS推荐的新方案,支持更多特性。Private S3 bucket而非静态网站托管,彻底杜绝桶策略泄露风险。

踩过的坑。Lambda@Edge有诸多限制:必须us-east-1部署,viewer-request有128KB请求体上限,不支持环境变量(配置硬编码或从SSM拉),日志分散到各个边缘区域CloudWatch,调试极痛苦。Cognito Hosted UI的回调URL必须精确匹配,多一个斜杠都失败。Cookie的Domain和Path设置要仔细,跨子域场景容易翻车。

成本方面,个人或小团队几乎免费。Lambda@Edge按调用次数和运行时间计费,认证检查1毫秒级别,月调用百万次约几美元。Cognito User Pool前5万用户免费。CloudFront和S3按原有流量走,无额外开销。

这套方案的代价是AWS锁定。Lambda@Edge和Cognito都是AWS专属,迁移成本不低。但对于已经深度使用AWS的团队,这是用最小侵入性给静态资产加认证的务实选择——不用写一行后端代码,不用改站点构建,部署一次,长期受益。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
CBA最豪华阵容之争!上海男篮半决赛对阵北京队

CBA最豪华阵容之争!上海男篮半决赛对阵北京队

上观新闻
2026-05-13 12:58:08
何超琼没想到,弟弟何猷君竟走上自己的老路,狠狠为赌王家族长脸

何超琼没想到,弟弟何猷君竟走上自己的老路,狠狠为赌王家族长脸

揽星河的笔记
2026-05-13 13:26:05
OPPO再致歉:从严处罚高级副总裁段要辉

OPPO再致歉:从严处罚高级副总裁段要辉

21世纪经济报道
2026-05-11 14:48:08
万亿巨头,涨停!

万亿巨头,涨停!

证券时报
2026-05-13 14:13:20
但斌:一个被低估的时代主线,未来几年CPU增长或远超GPU!

但斌:一个被低估的时代主线,未来几年CPU增长或远超GPU!

呼呼历史论
2026-05-12 18:22:34
谷歌地图CarPlay版将接入Gemini,车载AI导航要变天

谷歌地图CarPlay版将接入Gemini,车载AI导航要变天

摸鱼算法
2026-05-12 07:51:43
逆转张本不到24小时,梁靖崑坦白夺冠秘籍,张继科之前说得没错

逆转张本不到24小时,梁靖崑坦白夺冠秘籍,张继科之前说得没错

林子说事
2026-05-13 13:16:07
太可怕了!继注射药物、热巴事件后,王阳再揭娱乐圈最脏的一面

太可怕了!继注射药物、热巴事件后,王阳再揭娱乐圈最脏的一面

橙星文娱
2026-04-17 13:19:56
菲律宾一夜变天!伊梅临阵反水,13票把亲弟盟友踢出参议院

菲律宾一夜变天!伊梅临阵反水,13票把亲弟盟友踢出参议院

说历史的老牢
2026-05-13 04:18:14
OPPO余某“底裤”被扒光!知情人曝更多 难怪敢嚣张恐被公司开除

OPPO余某“底裤”被扒光!知情人曝更多 难怪敢嚣张恐被公司开除

天天热点见闻
2026-05-12 04:54:10
一位67岁大爷哭诉:每月5000块钱的退休金,却还要为养老问题担忧

一位67岁大爷哭诉:每月5000块钱的退休金,却还要为养老问题担忧

烙任情感
2026-05-12 09:27:46
特朗普访华携血浆抵京,安保堪比小型战争,542吨恐惧随行

特朗普访华携血浆抵京,安保堪比小型战争,542吨恐惧随行

甜美蜜桃派
2026-05-12 20:11:19
万茜的老公

万茜的老公

鲸让我照顾海
2026-05-12 08:55:50
一日惊变,13票闪电换帅,杜特尔特家族成功的绝地反杀?

一日惊变,13票闪电换帅,杜特尔特家族成功的绝地反杀?

遁走的两轮
2026-05-13 15:11:12
48岁欧阳夏丹现状:离开央视,被教授邀请现身挪威,至今未婚未育

48岁欧阳夏丹现状:离开央视,被教授邀请现身挪威,至今未婚未育

白面书誏
2026-05-07 17:50:08
难怪打伊朗导弹不够用,特朗普绕开国会偷偷卖盟友,把美军坑惨了

难怪打伊朗导弹不够用,特朗普绕开国会偷偷卖盟友,把美军坑惨了

万物知识圈
2026-05-13 14:26:01
他若不死必是十大元帅之首?毛主席:他比我厉害十倍

他若不死必是十大元帅之首?毛主席:他比我厉害十倍

小豫讲故事
2026-05-04 06:00:15
俄罗斯很怀疑,没对红场动手的乌克兰,下个目标或是克里米亚大桥

俄罗斯很怀疑,没对红场动手的乌克兰,下个目标或是克里米亚大桥

阿芒娱乐说
2026-05-13 14:47:00
内娱嘴亲烂了也没他俩眼神动人!道哥实锤:这才是真CP感

内娱嘴亲烂了也没他俩眼神动人!道哥实锤:这才是真CP感

可乐谈情感
2026-05-11 20:53:09
假如许世友的两套作战方案得到采纳,估计越南历史会被重写

假如许世友的两套作战方案得到采纳,估计越南历史会被重写

勇哥读史
2026-05-11 14:54:10
2026-05-13 16:03:00
闪存猎手
闪存猎手
全网蹲好价的野生捕手,算力与羊毛都不可辜负。
2578文章数 24关注度
往期回顾 全部

科技要闻

谷歌剧透安卓重大升级 Gemini深度集成底层

头条要闻

女生没电脑每天在电竞馆学习十几个小时 女店主:免费

头条要闻

女生没电脑每天在电竞馆学习十几个小时 女店主:免费

体育要闻

14年半,74万,何冰娇没选那条更安稳的路

娱乐要闻

白鹿掉20万粉,网友为李晨鸣不平

财经要闻

盘中最高4041.99点!创业板创历史新高

汽车要闻

4月BBA无一款车型销量破万 新能源渗透率首破60%

态度原创

教育
本地
健康
手机
家居

教育要闻

英伦滤镜之外:在不平等研究课堂上,直面学术体系的不平等

本地新闻

用苏绣的方式,打开江西婺源

干细胞能让人“返老还童”吗

手机要闻

消息称追觅AURORA手机将于今年第四季度发布

家居要闻

内在自叙,无域有方

无障碍浏览 进入关怀版