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

我在帐户 A 中部署了一个 lambda 堆栈,在帐户 B 中部署了一个 stepfunction 堆栈部署程序。现在如何使用 python cdk 从 lambda 调用此 stepfunction?具体我需要给他们什么权限?



噜噜哒
浏览 126回答 2
2回答

PIPIONE

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 内部lambda 应具有从帐户 B 承担角色(角色 B)并获取临时凭证的代码使用这些凭据,lambda 应该调用 step 函数。

GCT1015

如果你想在 cdk 部署发生时触发一些东西:似乎是一个奇怪的用例,但我认为这里的解决方案是定义自定义资源。cdk 和 cloudformation 都支持。因为您使用的是自定义资源,所以您需要自己进一步处理创建、更新、删除事件。类似地发送完成响应,我建议您使用 cfnresponsemodule 发回完成响应,否则 cdk 将永远无法判断您的自定义资源函数何时完成。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python