为了账号安全,请及时绑定邮箱和手机立即绑定

使用 cdk 从账户 B 中的 lambda 调用账户 A 中的步骤函数

使用 cdk 从账户 B 中的 lambda 调用账户 A 中的步骤函数

噜噜哒 2023-04-25 17:20:26
我在帐户 A 中部署了一个 lambda 堆栈,在帐户 B 中部署了一个 stepfunction 堆栈部署程序。现在如何使用 python cdk 从 lambda 调用此 stepfunction?具体我需要给他们什么权限?
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

lambda(账户 A)分配了一个 IAM 角色(RoleA)。Step 函数(账户 B)分配了一个 IAM 角色(RoleB)。


权限

lambda 的 IAM 角色应有权承担来自(账户 B)的角色


{

  "Version": "2012-10-17",

  "Statement": [

    {

      "Effect": "Allow",

      "Action": "sts:AssumeRole",

      "Resource": "*"

    }

  ]

}

Step functions IAM 角色(角色 B)应该有一个可信策略,允许 Lambda 的 IAM 角色代入它。下面的信任策略中123456789012是账户A的账号


{

  "Version": "2012-10-17",

  "Statement": [

    {

      "Effect": "Allow",

      "Principal": {

        "AWS": [

          "arn:aws:iam::123456789012:root"

        ]

      },

      "Action": "sts:AssumeRole"

    }

  ]

}

在 lambda 内部

  1. lambda 应具有从帐户 B 承担角色(角色 B)并获取临时凭证的代码

  2. 使用这些凭据,lambda 应该调用 step 函数。


查看完整回答
反对 回复 2023-04-25
?
GCT1015

TA贡献1827条经验 获得超4个赞

如果你想在 cdk 部署发生时触发一些东西:

似乎是一个奇怪的用例,但我认为这里的解决方案是定义自定义资源。cdk 和 cloudformation 都支持。

因为您使用的是自定义资源,所以您需要自己进一步处理创建、更新、删除事件。类似地发送完成响应,我建议您使用 cfnresponsemodule 发回完成响应,否则 cdk 将永远无法判断您的自定义资源函数何时完成。


查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信