2024-07-03 07:45:18 发布
网友
我在帐户a中部署了一个lambda堆栈,在帐户B中部署了一个stepfunction堆栈部署器。现在我如何使用python cdk从lambda调用这个stepfunction?具体来说,我需要给他们什么权限
lambda(账户A)已分配IAM角色(RoleA)。步骤功能(帐户B)已分配IAM角色(角色B)
lambda的IAM角色应具有从(帐户B)承担该角色的权限
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "*" } ] }
步骤功能IAM角色(角色B)应具有允许Lambda的IAM角色承担的受信任策略。在以下信任策略中123456789012是帐户A的帐号
123456789012
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:root" ] }, "Action": "sts:AssumeRole" } ] }
lambda应该具有从帐户B承担角色(角色B)并获取临时凭据的代码
使用这些凭证,lambda应该调用step函数
How to assume an IAM role in a different account from lambda
如果要在cdk部署发生时触发某些事件:
这似乎是一个奇怪的用例,但我认为这里的解决方案是定义一个自定义资源。 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将无法判断您的自定义资源功能何时完成:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html
lambda(账户A)已分配IAM角色(RoleA)。步骤功能(帐户B)已分配IAM角色(角色B)
权限
lambda的IAM角色应具有从(帐户B)承担该角色的权限
步骤功能IAM角色(角色B)应具有允许Lambda的IAM角色承担的受信任策略。在以下信任策略中
123456789012
是帐户A的帐号lambda内部
lambda应该具有从帐户B承担角色(角色B)并获取临时凭据的代码
使用这些凭证,lambda应该调用step函数
How to assume an IAM role in a different account from lambda
如果要在cdk部署发生时触发某些事件:
这似乎是一个奇怪的用例,但我认为这里的解决方案是定义一个自定义资源。 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将无法判断您的自定义资源功能何时完成:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html
相关问题 更多 >
编程相关推荐