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 安全最佳实践,使用临时凭证并应用最小权限原则。
## 🏗️ 架构图

## 🛠️ 使用的 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 上传

### S3 存储桶中的文件

### 已附加的 IAM Role

## 🔐 安全最佳实践
- EC2 实例上不存储任何 access key 或密码。
- 使用 IAM Role 而不是 IAM User 凭证。
- 临时凭证由 AWS 自动管理。
- 仅授予所需的权限(最小权限)。
## 💼 实际用例
这种架构通常用于生产环境中,在这些环境中,运行在 EC2 上的应用程序需要将日志、备份、报告、图像或其他文件上传到 S3,而无需暴露 AWS 凭证。
标签:AWS, DPI, 云计算, 文件存储, 最佳实践, 权限管理, 模型越狱, 系统运维, 规则引擎