能否使用EventBridge Pipe跨账户触发另一账户的SNS Topic
解决EventBridge Pipe跨账户转发报错:"Creating cross-account pipe is not permitted."
错误原因
这个错误是因为EventBridge Pipe默认禁止跨账户目标配置,必须通过权限策略和正确的资源配置来解锁跨账户转发能力。
修复步骤
给账户A的SNS Topic添加跨账户发布权限
修改SNS Topic的访问策略,允许账户B的EventBridge Pipe服务向其发布消息。示例策略(替换占位符为实际值):{ "Effect": "Allow", "Principal": { "Service": "pipes.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:[区域]:[账户A-ID]:[你的Topic名称]", "Condition": { "StringEquals": { "aws:SourceAccount": "[账户B-ID]" } } }创建Pipe时指定目标的完整ARN
在账户B配置EventBridge Pipe的Target时,必须填写账户A SNS Topic的完整ARN,不能使用简写或相对路径,确保格式为arn:aws:sns:[区域]:[账户A-ID]:[你的Topic名称]。为Pipe的执行角色添加跨账户SNS权限
给账户B中Pipe使用的IAM执行角色添加允许发布到账户A SNS Topic的权限,角色策略示例:{ "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:[区域]:[账户A-ID]:[你的Topic名称]" }确认账户A的SNS Topic未限制跨账户访问
检查账户A的SNS Topic是否有其他策略阻止跨账户发布,确保所有相关策略都允许来自账户B的请求。
关键注意点
- 所有涉及的资源(EventBridge Pipe、SQS、SNS)必须处于同一AWS区域,跨区域跨账户转发会触发更多限制,当前场景下优先使用同区域配置。
- 验证Pipe执行角色的信任策略是否包含
pipes.amazonaws.com作为可信服务主体,否则Pipe无法正常获取权限。
内容的提问来源于stack exchange,提问作者BaronVonChai
相关产品推荐
相关产品推荐

