从Lambda跨帐户调用CloudFormation API

时间:2019-10-13 18:58:13

标签: amazon-web-services aws-lambda amazon-cloudformation

我当前正在从帐户A中的Lambda调用CloudFormation CreateStack API- createStack createChangeSet 。我可以调用这些,然后在帐户A中创建cloudformation堆栈。

现在我想在其他帐户中执行cloudformation堆栈,比方说帐户B。帐户A中的我的lambda可以调用帐户B中的 createStack createChangeSet API吗?基本上,我希望在其他帐户中创建资源。

我该怎么做,我需要设置哪个权限以及在哪里。

2 个答案:

答案 0 :(得分:1)

https://aws.amazon.com/blogs/devops/aws-building-a-secure-cross-account-continuous-delivery-pipeline/包含有关操作方法的详细信息和代码示例。

基本上,您需要更改每个部署所使用的角色。然后,Codepipeline将使用该arn运行部署。如果该arn在其他帐户中,则部署将在该帐户中进行。

答案 1 :(得分:-1)

是的,可以做到的。

要考虑的一件事,将lambda部署到帐户B并在其中调用它以实现所需的结果可能很容易。

要在帐户A中运行它并在帐户B中创建资源,您需要确保帐户A允许lambda权限调出帐户B的cloudformation。这可以通过检查(必要时进行修改)来完成您的lambda角色的IAM政策。

要使帐户A中的Lambda能够影响帐户B中的更改,您的Lambda中的CloudFormation客户端需要使用帐户B中定义的IAM角色或用户的凭据,这将允许其对createStack,createChangeSet等的权限,此外,它可能还需要获得其所创建资源的权限(例如Dynamo createTable)