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 上仅使用 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, 云基础设施, 安全基线, 教学环境