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

跨AWS账户连接Redshift Serverless的实现方法

跨AWS账户访问无公网Redshift Serverless的实现方案

针对你的场景,Redshift Serverless支持跨账户访问,核心是打通VPC网络并配置对应权限,具体操作如下:

一、打通跨账户VPC网络

因为你的Redshift Serverless工作组没有公网访问能力,必须通过VPC内网连通,有两种常用方式:

1. VPC对等连接

  • 可在账户A的VPC发起对账户B VPC的对等连接请求,或由账户B发起后让账户A接受。
  • 给双方VPC的路由表添加路由条目,将对方VPC的CIDR段指向对等连接资源。
  • 配置安全组:账户A中Redshift Serverless工作组关联的安全组,需允许账户B客户端所在子网/安全组访问5439端口(Redshift默认端口);同时账户B的客户端安全组要允许出站到该端口。

2. AWS Transit Gateway(适合多VPC/多账户场景)

  • 在任意账户创建Transit Gateway,通过RAM共享给另一个账户。
  • 将账户A和账户B的目标VPC分别关联到这个Transit Gateway。
  • 配置Transit Gateway的路由表,确保两个VPC的CIDR段路由互通。
  • 安全组规则配置同上。

二、配置跨账户访问权限

需要在账户A中授权账户B的IAM实体(用户/角色)能访问Redshift Serverless资源:

  • 创建或修改IAM角色的信任策略,允许账户B的主体进行访问,示例策略:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {"AWS": "arn:aws:iam::[账户B-ID]:user/[你的用户名]"},
          "Action": ["redshift-serverless:GetCredentials", "redshift-serverless:Connect"],
          "Resource": "arn:aws:redshift-serverless:[区域]:[账户A-ID]:namespace/[你的命名空间名称]"
        }
      ]
    }
    
  • 也可以在账户B中,给用于连接的IAM实体添加redshift-serverless:GetCredentials权限,允许其调用账户A的Redshift Serverless服务。

三、发起连接

方式1:SQL客户端(如psql、DataGrip)

  • 用账户B的IAM身份调用GetCredentials API(或AWS CLI命令)获取临时连接凭证:
    aws redshift-serverless get-credentials --namespace-name [命名空间名称] --db-user [数据库用户名] --profile [账户B的CLI配置文件]
    
  • 使用返回的临时用户名、密码,加上Redshift Serverless工作组的内网端点地址、5439端口、目标数据库名称,在SQL客户端中完成连接。

方式2:Redshift Query Editor v2

  • 在账户B的Query Editor v2中,添加账户A的Redshift Serverless资源,通过跨账户角色授权后,即可直接在编辑器中访问数据。

关键注意事项

  • 确保两个账户的VPC CIDR段不冲突,否则VPC对等或Transit Gateway路由会失效。
  • 所有连接必须走VPC内网,不要尝试公网访问路径。
  • 安全组规则遵循最小权限原则,只允许必要的源访问Redshift端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:57:21