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

如何使用本地RSA私钥连接第三方托管的AWS S3 Bucket?

第三方托管S3 Bucket的安全访问解决方案

背景信息

  • 第三方托管S3存储地址:s3://base/my_bucket/
  • 安全要求:需使用SSH密钥访问(公钥已上传至供应商平台,本地私钥路径:~/.ssh/vendor_creds)
  • 已获取凭证:Access Key ID、Secret Key、S3访问URL
  • 原正常执行的拷贝命令:
    aws s3 cp s3://base/my_bucket/ /home/my_sername/temp/AWS/ --recursive
    

核心问题说明

AWS CLI本身不支持通过RSA私钥直接访问S3——S3原生依赖Access Key/Secret Key的签名验证机制,而非SSH密钥。供应商提到的SSH密钥要求,大概率是用于SFTP/SCP协议访问该S3兼容存储,或是他们额外添加的身份验证层。


解决方案1:配置AWS CLI适配S3兼容端点

如果供应商提供的S3访问URL是标准S3兼容端点,按以下步骤配置:

  1. 创建专属配置文件(避免干扰默认AWS配置):

    aws configure --profile vendor-s3
    

    按照提示依次输入:

    • Access Key ID:供应商提供的ID
    • Secret Access Key:供应商提供的密钥
    • Default region name:无特殊要求可填us-east-1
    • Default output format:可选json或直接回车留空
  2. 添加自定义端点配置:
    编辑~/.aws/config文件,找到[profile vendor-s3]区块,追加以下内容:

    s3 =
      endpoint_url = 供应商提供的S3访问URL
      signature_version = s3v4
    
  3. 使用新配置执行拷贝命令:

    aws s3 cp s3://base/my_bucket/ /home/my_sername/temp/AWS/ --recursive --profile vendor-s3
    

解决方案2:通过SFTP协议配合私钥访问

如果供应商要求的是SFTP通道访问,可使用命令行工具或Cyberduck:

  • 命令行手动下载:

    sftp -i ~/.ssh/vendor_creds 你的用户名@供应商SFTP地址
    

    (用户名需向供应商确认,通常是Access Key ID或专属账号名)
    进入SFTP会话后,执行递归下载:

    get -r base/my_bucket/* /home/my_sername/temp/AWS/
    
  • 自动化替代手动操作:
    可以编写脚本结合lftp或psftp实现定时自动下载,无需每日手动打开Cyberduck。


注意事项

建议先向供应商确认具体的访问协议:是S3兼容协议还是SFTP协议,这会直接决定采用哪种方案。如果是混合验证(既需要Access Key又需要SSH密钥),可能需要通过供应商提供的专属工具或代理访问。

内容的提问来源于stack exchange,提问作者jason m

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:00:05