EricBorba/ce-lab-architecting-secure-cloud-environment

GitHub: EricBorba/ce-lab-architecting-secure-cloud-environment

通过 AWS CLI 在云环境中实现并验证四项基础安全控制,对齐 CIS AWS Foundations Benchmark 的教学实验项目。

Stars: 0 | Forks: 0

# 实验室 M8.08 — 构建安全的云环境 ![AWS EC2](https://img.shields.io/badge/AWS-EC2%20t3.micro-FF9900?logo=amazonec2&logoColor=white) ![AWS IAM](https://img.shields.io/badge/AWS-IAM-DD344C?logo=amazonaws&logoColor=white) ![Amazon CloudWatch](https://img.shields.io/badge/AWS-CloudWatch-FF4F8B?logo=amazonaws&logoColor=white) ![Amazon S3](https://img.shields.io/badge/AWS-S3-FF9900?logo=amazons3&logoColor=white) ![AWS CloudTrail](https://img.shields.io/badge/AWS-CloudTrail-FF9900?logo=amazonaws&logoColor=white) ![Amazon VPC](https://img.shields.io/badge/AWS-VPC%20Flow%20Logs-8C4FFF?logo=amazonaws&logoColor=white) ![Amazon EBS](https://img.shields.io/badge/AWS-EBS%20Encryption-FF9900?logo=amazonaws&logoColor=white) ## 概述 在 AWS 上仅使用 CLI 进行安全基线实现。在部署任何工作负载之前配置四项基础安全控制:最小权限安全组、VPC Flow Logs、EBS 默认加密和 CloudTrail。 ## 已实施的控制 | 控制项 | 描述 | |---|---| | 最小权限安全组 | 拒绝所有入站流量,仅允许来自工程师 IP (/32) 的 SSH | | VPC Flow Logs | 将所有网络流量捕获到 CloudWatch Logs(保留 30 天) | | EBS 默认加密 | 对所有新建 EBS 卷启用账户级加密 | | CloudTrail | 将记录所有 API 调用的多区域跟踪日志发送到 S3 | ## 仓库结构 ``` . ├── README.md ├── security-baseline.md ← compliance evidence document ├── vpc-flow-logs-trust.json ← IAM trust policy for VPC Flow Logs role ├── vpc-flow-logs-permissions.json ← IAM permissions policy for VPC Flow Logs role └── screenshots/ ``` ## 验证结果 - 安全组:仅允许从工程师 IP 访问 SSH 端口 22(0 条其他入站规则) - VPC Flow Logs:`FlowLogStatus = ACTIVE`,正在传输至 `/aws/vpc/flow-logs` - EBS 加密:`EbsEncryptionByDefault = true` - CloudTrail:`IsLogging = true`,多区域,已确认 S3 传输 - 连接到 EC2 测试实例的 SSH:已确认 - 流日志显示来自工程师 IP 的端口 22 的 `ACCEPT` 记录 - CloudTrail 显示带有正确用户名的 `RunInstances` 事件 ## 截图 | # | 文件 | 描述 | |---|---|---| | 1 | [01-security-group-created-ssh-rule-verified.png](screenshots/01-security-group-created-ssh-rule-verified.png) | 创建了仅限于工程师 IP (/32) 的 SSH 规则的安全组 — 通过 `describe-security-groups` 验证 | | 2 | [02-cloudwatch-log-group-created-retention-set.png](screenshots/02-cloudwatch-log-group-created-retention-set.png) | 创建了具有 30 天保留策略的 CloudWatch 日志组 `/aws/vpc/flow-logs` | | 3 | [03-vpc-flow-logs-iam-policy-files-created.png](screenshots/03-vpc-flow-logs-iam-policy-files-created.png) | 为 VPC Flow Logs 传输角色创建了 IAM 信任和权限策略 JSON 文件 | | 4 | [04-iam-role-created-for-vpc-flow-logs.png](screenshots/04-iam-role-created-for-vpc-flow-logs.png) | 创建了带有信任策略的 IAM 角色 `lab-m8-08-vpc-flow-logs-role` | | 5 | [05-iam-inline-policy-attached-to-flow-logs-role.png](screenshots/05-iam-inline-policy-attached-to-flow-logs-role.png) | 将内联 CloudWatch Logs 权限策略附加到流日志 IAM 角色 | | 6 | [06-vpc-flow-logs-active.png](screenshots/06-vpc-flow-logs-active.png) | 在默认 VPC 上启用了 VPC Flow Logs — 状态为 `ACTIVE`,已确认目标 | | 7 | [07-ebs-encryption-by-default-enabled.png](screenshots/07-ebs-encryption-by-default-enabled.png) | EBS 默认加密已启用并验证:`EbsEncryptionByDefault = true` | | 8 | [08-cloudtrail-s3-bucket-trail-created-logging.png](screenshots/08-cloudtrail-s3-bucket-trail-created-logging.png) | 创建了 S3 存储桶,附加了存储桶策略,创建了 CloudTrail 跟踪并开始记录(`IsLogging = true`) | | 9 | [09-ami-lookup-keypair-created.png](screenshots/09-ami-lookup-keypair-created.png) | 解析了最新的 Amazon Linux 2 AMI 并创建了 SSH 密钥对 | | 10 | [10-ec2-instance-launched.png](screenshots/10-ec2-instance-launched.png) | 在正确的子网中使用基线安全组启动了 EC2 实例 | | 11 | [11-ec2-instance-running-public-ip.png](screenshots/11-ec2-instance-running-public-ip.png) | 实例处于运行状态并分配了公网 IP | | 12 | [12-ssh-connection-successful.png](screenshots/12-ssh-connection-successful.png) | 确认了到 EC2 实例的 SSH 连接 — 验证了主机名、正常运行时间和出站互联网连接 | | 13 | [13-flow-logs-ssh-accept-cloudtrail-runinstances.png](screenshots/13-flow-logs-ssh-accept-cloudtrail-runinstances.png) | VPC Flow Logs 显示来自工程师 IP 的 SSH `ACCEPT` 事件;CloudTrail 捕获了带有正确用户名的 `RunInstances` 事件 |
标签:Anthropic, AWS, CIS基准, DPI, 云基础设施, 安全基线, 教学环境