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

跨AWS账户:Redshift用访问密钥连接外部S3桶的方法及疑问

解决方案

你的思路误区

创建嵌入外部账户AK/SK的IAM角色是不可行的——IAM角色依赖信任关系而非硬编码密钥来获取权限,无法直接将外部账户的密钥绑定到你账户下的IAM角色中。

推荐方案:跨账户IAM角色信任(AWS最佳实践)

这是最安全且符合AWS规范的方式,无需暴露长期密钥:

  1. 联系外部S3账户的管理员,创建一个IAM角色:
    • 信任策略配置为允许你的Redshift账户ID(或Redshift集群的服务角色ARN)扮演该角色
    • 给该角色附加S3权限策略,允许对目标桶执行s3:ListBucket、s3:GetObject等必要操作
  2. 在你的Redshift账户中,给你用于Load Data的IAM角色添加sts:AssumeRole权限,允许其扮演外部账户创建的那个角色
  3. 在Redshift的Load Data对话框中,选择你账户下的这个IAM角色,然后在COPY命令的配置中指定外部角色的ARN:
    COPY your_table
    FROM 's3://external-bucket/path/'
    IAM_ROLE 'arn:aws:iam::外部账户ID:role/外部角色名称'
    -- 补充你的数据格式等其他参数
    

临时应急方案:直接使用访问密钥(不推荐)

如果你暂时无法协调外部账户配置跨账户角色,可以直接在Load Data流程中使用已验证的AK/SK:

  • 在Load Data对话框的Authentication环节,选择「Access keys」选项
  • 输入你持有的外部账户的ACCESS_KEY_ID和SECRET_ACCESS_KEY
  • 确认Redshift集群的网络配置允许访问S3(私有子网需配置S3 VPC端点,公网子网需确保集群有公网访问能力)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:07:26