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

如何创建跨AWS账户触发Lambda/Step Function的EventBridge规则?

跨账户EventBridge触发Lambda与Step Function解决方案

一、账户A的EventBridge触发账户B的Lambda

Lambda的资源权限仅能在账户B中配置,操作步骤如下:

  • 给目标Lambda添加基于资源的权限策略,允许账户A的EventBridge规则触发它:
    用AWS CLI执行(替换占位符为实际信息):
    aws lambda add-permission \
      --function-name "arn:aws:lambda:<区域>:<账户BID>:function:<Lambda函数名>" \
      --statement-id "AllowEventBridgeAccountATrigger" \
      --action "lambda:InvokeFunction" \
      --principal "events.amazonaws.com" \
      --source-arn "arn:aws:events:<区域>:<账户AID>:rule:<账户A的EventBridge规则名>"
    
    或者在Lambda控制台「配置」→「权限」→「基于资源的策略」中手动添加,核心逻辑是:允许events.amazonaws.com作为主体,限定来源为账户A的EventBridge规则ARN,授权动作lambda:InvokeFunction。
  • 完成后,在账户A创建EventBridge规则时,直接将目标设为账户B的Lambda ARN即可,无需额外在账户A配置权限。

二、账户A的EventBridge触发账户B的Step Function

需同时配置账户B的IAM角色与账户A的规则权限,修正之前的错误配置:

1. 账户B侧配置

创建一个IAM角色,用于授权EventBridge触发Step Function:

  • 信任策略:允许账户A的EventBridge服务假定该角色(可通过SourceArn限定仅目标规则触发):
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "events.amazonaws.com"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "aws:SourceArn": "arn:aws:events:<区域>:<账户AID>:rule:<账户A的EventBridge规则名>"
            }
          }
        }
      ]
    }
    
  • 权限策略:授予该角色启动Step Function的权限:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "states:StartExecution",
          "Resource": "arn:aws:states:<区域>:<账户BID>:stateMachine:<Step Function状态机名>"
        }
      ]
    }
    

2. 账户A侧配置

  • 创建一个IAM角色,用于账户A的EventBridge规则扮演账户B的上述角色:
    权限策略示例:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "sts:AssumeRole",
          "Resource": "arn:aws:iam::<账户BID>:role:<账户B中创建的角色名>"
        }
      ]
    }
    
  • 创建EventBridge规则时,目标选择「Step Functions 状态机」,勾选「跨账户」并输入账户B的Step Function ARN;在「执行角色」处选择刚才在账户A创建的IAM角色,而非账户B的角色。

内容的提问来源于stack exchange,提问作者I.H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:48:12