fremahabankroh/aws-iam-s3-security-project

GitHub: fremahabankroh/aws-iam-s3-security-project

一个面向蓝队的 AWS 云安全实操项目,通过 IAM 用户管理与 S3 自定义策略的系统化测试,展示最小权限访问控制的完整落地过程。

Stars: 0 | Forks: 0

IAM 用户已创建 # aws-iam-s3-security-project 云安全项目:AWS IAM 用户创建、自定义 S3 存储桶策略和权限测试。为蓝队作品集而构建。 # AWS IAM + S3 云安全项目 ## 项目概述 一个实操云安全项目,演示如何使用 IAM 控制 对 AWS S3 的访问。旨在模拟云安全和蓝队工程师在 真实场景中做出的访问控制决策。 ## 展示技能 - AWS Identity and Access Management (IAM) - 最小权限原则 - JSON 策略编写与测试 - 云存储安全 (S3) - 访问控制验证与文档记录 ## 架构 ![Architecture diagram](https://raw.githubusercontent.com/fremahabankroh/aws-iam-s3-security-project/main/docs/architecture-diagram.png) ## 构建步骤 — 逐步说明 ### 步骤 1 — 创建 IAM 用户 创建了仅具有控制台访问权限的 `s3-project-user`。 创建时未附加任何权限(零信任起点)。 ### 为 s3-project-user 创建访问密钥 CLI 是理想的选择 访问密钥已使用描述进行标记,注明了其用途和范围——这是一种真实的凭证管理实践,有助于安全地进行密钥轮换和审计追踪。 ### 未启用 MFA 在生产环境中,所有 IAM 用户都应强制启用 MFA。在本项目中,为了简化测试而故意禁用了 MFA,但通过 IAM 策略条件强制启用 MFA 将是下一步的加固措施 在安装 AWS CLI 之后,使用 `aws sts get-caller-identity` 验证了 CLI 身份——确认已正确配置为最小权限的 IAM 用户进行编程访问,而非 root 账户。 Screenshot 2026-05-10 at 9 01 45 PM ### 步骤 2 — 创建 S3 存储桶 存储桶:`my-iam-project-fremzbankshunt` | 区域:eu-north-1 已屏蔽公共访问。上传了两个测试文件。 ### 存储桶版本控制 默认启用了服务端加密 (SSE-S3),确保所有对象在静态时自动加密。这满足了核心的数据保护控制要求,而无需额外的密钥管理开销。版本控制至关重要。 Screenshot 2026-05-10 at 1 58 41 PM ### 步骤 3 — 编写自定义 IAM 策略 完整文档请参见 policy/s3-access-policy.json。 关键决策: - 允许:ListBucket, GetObject, PutObject, DeleteObject - 拒绝:DeleteBucket, PutBucketPolicy, PutBucketAcl 截图 2026-05-10 下午 5 58 53 ### 步骤 4 — 测试权限 | 操作 | 预期 | 结果 | |--------|----------|--------| | 列出存储桶内容 | 允许 | ✅ 通过 | | 下载文件 | 允许 | ✅ 通过 | | 上传文件 | 允许 | ✅ 通过 | | 删除文件 | 允许 | ✅ 通过 | | 删除存储桶 | 拒绝 | ✅ 通过 | | 更改存储桶策略 | 拒绝 | ✅ 通过 | 在测试期间,尝试通过 CLI 以 s3-project-user 身份删除存储桶的操作被显式拒绝策略所阻止——即使使用了 `--force` 标志。删除操作只能通过管理员控制台进行,这表明显式拒绝是绝对的,受限制的用户无法通过编程方式覆盖。 截图 2026-05-10 下午 8 56 02 ## 掌握的关键概念 ### 最小权限原则 仅授予所需的最低权限... ### IAM 策略结构 每个策略语句都包含 Effect、Action 和 Resource... ## 下一步计划 - 在 IAM 策略中添加强制 MFA - 设置 AWS CloudTrail 以记录所有 S3 API 调用 - 用 IAM 角色替换 IAM 用户访问密钥... ## 使用的工具 AWS IAM · AWS S3 · AWS Console · JSON ⚠️ 本仓库未存储任何凭证、访问密钥或敏感数据。
标签:AWS, AWS CLI, DPI, GitHub Advanced Security, Homebrew安装, IAM, JSONLines, JSON策略, MFA, S3, Streamlit, 云存储安全, 代码分析, 凭证管理, 安全加固, 安全合规, 最小权限原则, 权限测试, 网络代理, 网络安全, 网络扫描, 访问控制, 身份与访问管理, 防御策略, 隐私保护, 零信任