You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS上通过密钥对为客户端配置SFTP访问S3存储桶的权限

前提准备
  • 已完成AWS Transfer Family SFTP服务器创建,端点类型按业务需求选择公网/VPC,身份提供商选择服务托管
  • 待授权访问的目标S3存储桶已创建,无覆盖性拒绝的桶策略配置
  • 客户端已提前生成SSH密钥对,公钥格式为标准ssh-rsa或ssh-ed25519开头的单行字符串,无多余换行和特殊字符
具体操作步骤

步骤1:创建SFTP服务关联的IAM权限角色

  • 进入IAM控制台,选择创建新角色,受信任实体类型选择AWS服务,使用案例搜索并勾选Transfer,进入下一步
  • 附加自定义的S3访问权限策略,参考最小权限配置示例如下:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::替换为你的目标桶名"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::替换为你的目标桶名/分配给该用户的目录前缀/*"
        }
    ]
}
  • 完成角色创建,记录该角色的ARN值备用

步骤2:创建SFTP用户并绑定客户端公钥

  • 进入Transfer Family控制台,打开已创建的SFTP服务器详情页,切换到用户标签页,点击添加用户
  • 填写分配给客户端的SFTP登录用户名,角色选择上一步创建的IAM角色
  • 主目录填写格式为/目标桶名/分配给该用户的目录前缀,可勾选锁定到主目录选项,避免用户越权访问其他路径
  • 在SSH公钥输入框中,完整粘贴客户端提供的公钥内容,确认无多余空格和换行
  • 其余配置保持默认即可,点击完成用户创建

步骤3:客户端登录验证

  • 客户端本地保存好对应的SSH私钥文件,调整私钥权限为仅所有者可读:Linux/macOS执行chmod 400 本地私钥文件路径,Windows在私钥文件属性-安全设置中禁用继承,仅保留当前用户的读取权限
  • 执行登录命令测试:sftp -i 本地私钥文件路径 SFTP用户名@SFTP服务器端点域名
  • 登录成功后执行ls可查看对应S3目录下的文件,执行put/get命令测试文件读写,操作正常则配置完成
注意事项
  • 若使用ED25519类型密钥,需确认AWS区域支持该密钥类型,不兼容的场景可替换为2048位及以上的RSA密钥
  • 出现权限报错时,优先检查IAM角色的权限范围,再确认S3桶策略是否存在拒绝该角色访问的规则
  • 密钥轮换时直接在SFTP用户配置页更新公钥即可,无需修改其他配置

内容的提问来源于stack exchange,提问作者vivek nanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:27:03