通过SSH认证实现WinSCP向AWS S3存储桶传输数据的可行性咨询
可行方案参考
方案1:EC2跳板中转
- 实现逻辑:S3原生不支持SSH协议直接访问,可通过有权限访问S3的EC2作为中转层,全程用SSH密钥完成认证,无需创建IAM用户
- 操作步骤:
- 为你的EC2实例绑定EC2实例角色,为角色附加目标S3桶的读写权限,该角色的临时凭证由AWS自动定期轮换,无需人工操作
- WinSCP新建站点,协议选择SCP/SFTP,填写EC2的公网访问地址、SSH登录密钥对,完成SSH认证登录EC2
- 本地文件可直接通过WinSCP上传到EC2的临时目录,再在EC2执行
aws s3 cp /本地文件路径 s3://目标桶路径/命令同步到S3;也可在EC2配置目录监听脚本,新文件上传后自动同步到S3,不需要人工介入
- 优势:成本低,只需要用到现有EC2资源,所有AWS侧凭证自动轮换,完全规避IAM用户静态凭证90天强制轮换要求
方案2:AWS Transfer Family SFTP托管服务
- 实现逻辑:AWS官方托管的SFTP服务,后端可直接绑定S3桶,支持纯SSH密钥认证,不需要关联任何IAM用户
- 操作步骤:
- 开通AWS Transfer Family服务,创建SFTP服务器,身份提供商选择SSH密钥托管模式
- 为SFTP服务器绑定服务角色,授予对应S3桶的访问权限,角色凭证由AWS自动轮换
- 在SFTP服务中创建自定义用户,仅上传你本地的SSH公钥即可,不需要配置任何AWS相关凭证
- WinSCP新建SFTP站点,填写SFTP服务器的公网端点、创建的自定义用户名,用本地SSH私钥完成认证,直接上传文件就会自动存入绑定的S3桶,和普通SFTP操作完全一致
- 优势:全托管无需维护服务器,没有中转操作步骤,传输链路稳定,全程仅用SSH密钥认证,完全不需要处理IAM用户凭证
注意事项
- 不存在WinSCP直接通过SSH协议访问S3的方案,所有SSH认证的实现都需要中间服务层做协议转换
- 以上两个方案均不需要创建绑定IAM策略的IAM用户,用到的IAM角色凭证均由AWS自动轮换,完全满足你规避IAM用户静态凭证90天强制轮换的需求
- SSH密钥的轮换规则可由你自行定义,不受AWS IAM凭证规则限制
内容的提问来源于stack exchange,提问作者Ethan Toth
相关产品推荐
相关产品推荐

