使用 cdk 从账户 B 中的 lambda 调用账户 A 中的步骤函数
Invoke step function in account A from a lambda in account B using cdk
我在账户 A 中部署了一个 lambda 堆栈,在账户 B 中部署了一个 stepfunction 堆栈部署程序。现在如何使用 python cdk 从 lambda 调用此 stepfunction?具体我需要给他们什么权限?
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 应该调用步骤函数。
How to assume an IAM role in a different account from lambda
如果你想在 cdk 部署发生时触发一些东西:
似乎很奇怪 use-case 但我认为这里的解决方案是定义自定义资源。
cdk 和 cloudformation 都支持:
https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html
因为您使用的是自定义资源,所以您需要自己进一步处理创建、更新、删除事件。类似地发送完成响应,我建议您使用 cfnresponsemodule 发送回完成响应,否则 cdk 将永远无法判断您的自定义资源函数何时完成:
我在账户 A 中部署了一个 lambda 堆栈,在账户 B 中部署了一个 stepfunction 堆栈部署程序。现在如何使用 python cdk 从 lambda 调用此 stepfunction?具体我需要给他们什么权限?
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 应该调用步骤函数。
How to assume an IAM role in a different account from lambda
如果你想在 cdk 部署发生时触发一些东西:
似乎很奇怪 use-case 但我认为这里的解决方案是定义自定义资源。 cdk 和 cloudformation 都支持:
https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html
因为您使用的是自定义资源,所以您需要自己进一步处理创建、更新、删除事件。类似地发送完成响应,我建议您使用 cfnresponsemodule 发送回完成响应,否则 cdk 将永远无法判断您的自定义资源函数何时完成: