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

AWS跨账户调用Redshift Data API提示集群不存在问题求助

根因说明

Secrets Manager中存储的Redshift凭证仅包含数据库用户名、密码等访问凭证,不会自动携带集群所属的AWS账户ID信息。Redshift Data API在未指定集群所属账户的前提下,默认会在发起API调用的当前账户(即账户B)下查找对应标识符的集群,自然无法定位到账户A下的资源,触发本次报错。

排查修复步骤
  • 基础信息校验
    先确认三类信息无错误:
    1. 账户A下Redshift集群所属区域,和你初始化RedshiftData客户端时指定的eu-west-2完全一致
    2. 代码中填写的ClusterIdentifier和账户A下Redshift集群的官方标识符完全匹配,无拼写、大小写错误
    3. 目标Redshift集群当前处于可用状态,未被暂停、删除或归档
  • 补充跨账户必填参数
    Redshift Data API的executeStatement接口针对跨账户访问场景,需额外添加ClusterOwnerAccount参数,参数值为Redshift集群所属账户A的12位AWS账户ID,修改后的参数示例如下:
    const params : aws.RedshiftData.ExecuteStatementInput = {
      ClusterIdentifier: '<clusteridentifier>',
      ClusterOwnerAccount: '<账户A的12位AWS账户ID>', // 新增该行参数
      Database: 'products',
      SecretArn: 'arn:aws:secretsmanager:<region>:<accountNo>:secret:<secretname>',
      Sql: `select * from product_table where id = xxx`,
      StatementName: 'statement-name',
      WithEvent: true
    };
    
  • 权限配置核对
    除已验证的Secrets Manager访问权限外,还需确认两类权限配置正确:
    1. 账户B的Lambda执行角色IAM策略中,已添加redshift-data:ExecuteStatement、redshift-data:GetStatementResult等相关操作的允许规则
    2. 账户A的Redshift集群资源策略已允许账户B的Lambda角色通过Redshift Data API访问集群;若集群为私有部署,还需确认Lambda与集群之间的网络连通性正常(如VPC对等连接、中转网关配置正确)
  • 功能验证
    调整代码后重新调用接口,确认SQL可正常执行返回结果;若仍有报错,可根据返回的新错误信息针对性排查权限、网络类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 04:36:07