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

EventBridge跨账号事件无法送达目标事件总线求助

跨账号EventBridge事件未送达目标总线的排查与修复

以下是针对你的代码问题的具体修复点和排查步骤:


1. 目标账号Event Bus策略主体错误

你当前的Event Bus策略允许源账号root用户发送事件,但实际发送事件的是源账号中cloudwatch-backup-event-role这个IAM角色,因此需要修改策略的principals为该角色的ARN:

data "aws_iam_policy_document" "event_bus_policy" {
  statement {
    sid     = "AWSBackupCopyCompleteEvent"
    actions = ["events:PutEvents"]
    principals {
      type = "AWS"
      identifiers = [
        "arn:aws:iam::SOURCE_ACCOUNT_ID:role/cloudwatch-backup-event-role" # 替换为源账号角色的完整ARN
      ]
    }
    resources = [data.aws_cloudwatch_event_bus.default_bus.arn]
    # 可选:添加区域限制增强安全性
    condition {
      test     = "StringEquals"
      variable = "aws:SourceRegion"
      values   = ["eu-west-1"]
    }
  }
}

2. 源账号事件规则detail-type不匹配

AWS Backup触发的事件类型是Copy Job State Changed(末尾带d),但你源账号规则里写的是Copy Job State Change,这个差异可能导致事件匹配异常,修正如下:

resource "aws_cloudwatch_event_rule" "rds_backup_complete" {
  name        = "rds-backup-complete"
  description = "Rule to trigger event when RDS backup is complete"
  state       = "ENABLED"

  event_pattern = jsonencode({
    source      = ["aws.backup"],
    detail-type = ["Copy Job State Changed"], # 修正为正确的事件类型
    detail = {
      "state"         = ["COMPLETED"],
      "resourceType" = ["RDS", "Aurora"],
      "destinationBackupVaultArn" : [{
        "prefix": "arn:aws:backup:eu-west-1:DESTINATION_ACCOUNT_ID:backup-vault:",
        }]
    }
  })
}

3. 验证事件送达状态

  • 目标账号端:在EventBridge控制台开启default总线的「事件捕获」,查看是否有来自源账号的事件。如果有事件但未触发规则,说明事件模式不匹配;如果没有事件,说明权限问题未解决。
  • 源账号端:查看EventBridge规则的「触发历史」,确认事件是否成功发送,是否有403权限拒绝等错误提示。
  • CloudTrail日志:在目标账号搜索PutEvents操作,检查请求的来源账号、状态码,定位具体报错原因。

4. 确认资源ARN正确性

检查源账号IAM策略中的目标总线ARN、目标账号规则中的账号ID,确保区域、账号ID没有拼写错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:29:58