DharmikDevops/ec2-s3-secure-upload-iam-role

GitHub: DharmikDevops/ec2-s3-secure-upload-iam-role

演示如何使用 IAM Role 和临时凭证让 EC2 实例安全地向 S3 上传文件,无需存储任何长期密钥。

Stars: 0 | Forks: 0

# 🔐 使用 IAM Role 实现 EC2 到 S3 的安全文件上传 ## 📌 概述 本项目演示了一种安全的方法,使 EC2 实例能够使用 IAM Role 将文件上传到 S3 存储桶,而无需存储任何 access key 或凭证。 该解决方案遵循 AWS 安全最佳实践,使用临时凭证并应用最小权限原则。 ## 🏗️ 架构图 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/87ef3f91a4031208.png) ## 🛠️ 使用的 AWS 服务 - AWS EC2 - AWS S3 - AWS IAM (Role & Policy) - AWS CLI ## 🧠 工作原理 1. 创建具有所需 S3 权限的 IAM Role。 2. 将该 Role 附加到 EC2 实例。 3. EC2 自动从 AWS 获取临时凭证。 4. 在 EC2 实例内部创建一个文件。 5. 使用 AWS CLI 将文件上传到 S3 存储桶。 6. 文件被安全地存储在 S3 存储桶中。 ## ⚙️ 实施步骤 1. 创建 S3 存储桶。 2. 创建具有所需 S3 权限的 IAM Policy。 3. 创建 IAM Role 并附加该 Policy。 4. 将 IAM Role 附加到 EC2 实例。 5. 使用 SSH 连接到 EC2 实例。 6. 创建一个测试文件。 7. 使用 AWS CLI 将文件上传到 S3 存储桶。 8. 验证文件是否已成功上传。 ## 📸 截图 ### 从 EC2 上传 ![EC2 上传](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/76be20cfa5031213.png) ### S3 存储桶中的文件 ![S3 文件](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0e9aa55ea6031219.png) ### 已附加的 IAM Role ![IAM Role](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/4a428e920b031224.png) ## 🔐 安全最佳实践 - EC2 实例上不存储任何 access key 或密码。 - 使用 IAM Role 而不是 IAM User 凭证。 - 临时凭证由 AWS 自动管理。 - 仅授予所需的权限(最小权限)。 ## 💼 实际用例 这种架构通常用于生产环境中,在这些环境中,运行在 EC2 上的应用程序需要将日志、备份、报告、图像或其他文件上传到 S3,而无需暴露 AWS 凭证。
标签:AWS, DPI, 云计算, 文件存储, 最佳实践, 权限管理, 模型越狱, 系统运维, 规则引擎