joshuamichaelhall/federal-cloud-resume

GitHub: joshuamichaelhall/federal-cloud-resume

基于 AWS Serverless 架构的个人简历网站模板,集成访问计数功能并遵循联邦安全合规标准。

Stars: 1 | Forks: 0

# 联邦云简历 **在线网站:** https://joshuahall.tech 生产级 Serverless 云简历,展示了 AWS 架构基础知识和安全最佳实践。由一名拥有 3 年以上 MSP 安全经验的 CMMC 注册从业者(已通过 CCP 考试)构建。 ## 架构概述 本项目使用 AWS 托管服务实现了一个 Serverless Web 应用程序: ``` User Browser ↓ HTTPS CloudFront (CDN + SSL) ↓ S3 (Static Website Hosting) ↓ JavaScript fetch() API Gateway (REST API) ↓ Lambda (Python 3.12) ↓ DynamoDB (Visitor Counter) ``` ## 技术栈 **前端:** - HTML5/CSS3 - 响应式设计,采用适合联邦风格的样式 - JavaScript - 用于访问计数器的 API 集成 **后端:** - Python 3.12 - Lambda 函数运行时 - Boto3 - 用于 DynamoDB 操作的 AWS SDK **基础设施:** - **S3** - 静态网站托管 - **CloudFront** - 具有边缘缓存的全球 CDN - **ACM** - SSL/TLS 证书管理 - **API Gateway** - RESTful API 端点 - **Lambda** - 用于访问计数器的 Serverless 计算 - **DynamoDB** - 具有原子计数器的 NoSQL 数据库 - **IAM** - 最小权限访问策略 ## 安全实现 - **HTTPS 强制执行** - 通过 CloudFront 使用 ACM 证书 - **IAM 最小权限** - Lambda 执行角色仅限于 DynamoDB UpdateItem - **CORS 配置** - 正确的跨源资源共享 - **原子操作** - DynamoDB 条件更新防止竞态条件 - **加密** - 数据静态加密和传输中加密 (HTTPS) ## 架构决策 **为什么选择 Serverless?** - 零服务器管理开销 - 按使用量付费的定价模式 - 针对流量高峰自动扩容 - 内置高可用性 **为什么选择 DynamoDB 而不是 RDS?** - Serverless 计费模式(按请求付费) - 个位数毫秒级延迟 - 原子计数器操作 - 无需管理连接池 **为什么选择 CloudFront?** - 全球边缘缓存降低延迟 - SSL/TLS 终止 - 通过 AWS Shield Standard 提供 DDoS 保护 - 静态内容交付具有成本效益 ## 项目结构 ``` . ├── index.html # Main resume page ├── styles.css # Professional styling ├── lambda/ │ └── visitor-counter.py # Lambda function for DynamoDB updates └── README.md # This file ``` ## 本地开发 要在本地使用此项目: ``` # 克隆 repository git clone https://github.com/joshuamichaelhall/federal-cloud-resume.git cd federal-cloud-resume # 在 browser 中打开 open index.html # 注意:Visitor counter 需要 AWS infrastructure ``` ## 部署 本项目使用 AWS 控制台通过以下手动步骤进行部署: 1. 为静态网站托管配置 S3 存储桶 2. 具有自定义域名的 CloudFront 分配 3. 用于 HTTPS 的 ACM 证书 4. 具有按需计费的 DynamoDB 表 5. 具有 Python 3.12 运行时的 Lambda 函数 6. 具有 Lambda 代理集成的 API Gateway REST API 7. 用于最小权限访问的 IAM 角色和策略 **未来增强:** 使用 Terraform 或 CloudFormation 转换为基础设施即代码。 ## 成本分析 低流量简历网站的每月预估成本: - **S3:** ~$0.50 (1GB 存储,极少的请求) - **CloudFront:** ~$1.00 (前 1TB 免费额度) - **Lambda:** 免费额度 (100 万请求/月) - **API Gateway:** ~$0.50 (100 万请求免费额度) - **DynamoDB:** 免费额度 (25GB, 25 WCU/RCU) - **Route 53:** $0.50/月 (托管区域) **总计:** ~$2.50/月(第一年完全在 AWS 免费额度内) ## 性能指标 - **CloudFront 缓存命中率:** 静态资源 >95% - **API Gateway 延迟:** <50ms (us-east-1) - **Lambda 冷启动:** ~200ms - **Lambda 热执行:** ~10ms - **DynamoDB 读/写:** <10ms ## 安全控制对标 本项目展示了与联邦框架一致的安全控制: - **NIST 800-53 SC-8** - 传输保密性 (HTTPS/TLS) - **NIST 800-53 AC-6** - 最小权限 (IAM 策略) - **NIST 800-53 SC-28** - 静态信息保护 (DynamoDB 加密) - **NIST 800-53 AU-2** - 可审计事件 (CloudWatch 日志记录) 与保护云端托管资产的 CMMC Level 2 控制相关。 ## 经验教训 **技术方面:** - Lambda 代理集成需要特定的 API Gateway 响应格式 - CORS 配置必须在 API Gateway 和 Lambda 上一致 - DynamoDB 原子计数器无需锁即可防止竞态条件 - 立即更新内容需要 CloudFront 失效 **架构方面:** - Serverless 显著降低了运维复杂性 - 边缘缓存极大地改善了全球用户体验 - IAM 最小权限可防止权限升级风险 - 监控和日志记录应从第 1 天开始实施 ## 未来增强 本项目的潜在改进: - [ ] CloudFormation 或 Terraform IaC 模板 - [ ] 使用 GitHub Actions 的 CI/CD pipeline - [ ] 用于监控的 CloudWatch 仪表盘 - [ ] 用于增强安全性的 WAF 规则 - [ ] Lambda 函数单元测试 - [ ] 用于 API 调用的 CloudTrail 日志记录 - [ ] 使用 Lambda 预置并发进行成本优化 ## 联系方式 **Joshua Michael Hall** - 网站: https://www.joshuamichaelhall.com - LinkedIn: https://www.linkedin.com/in/joshuamichaelhall/ - GitHub: https://github.com/joshuamichaelhall ## 致谢 本项目是在 Anthropic 的 Claude AI 助手协助下开发的,它提供了以下帮助: - 代码模板 - 文档编写和组织 - 故障排除和调试协助 - 研究和想法生成 Claude 被用作开发辅助工具,所有最终的编辑和实现均由 Joshua Michael Hall 完成。 **项目状态:** ✅ 生产就绪且已上线 **完成日期:** 2025年11月21日 **在线网址:** https://joshuahall.tech **作者:** CMMC 注册从业者 | AWS Solutions Architect Associate | Security+
标签:ACM证书, API Gateway, AWS, CISA项目, CloudFront, CMMC, DPI, DynamoDB, HTTPS, IAM最小权限, Lambda, NoSQL数据库, Python, S3静态网站, Serverless, 云简历, 后端开发, 基础架构即代码, 数据可视化, 无后门, 网站访问计数器, 联邦合规, 解决方案工程