簡體   English   中英

使用 cdk 從賬戶 B 中的 lambda 調用賬戶 A 中的步驟 function

[英]Invoke step function in account A from a lambda in account B using cdk

我有一個部署在帳戶 A 中的 lambda 堆棧,以及帳戶 B 中的 stepfunction 堆棧部署程序。現在如何使用 python 從 lambda 調用此 stepfunction? 具體來說,我需要給他們什么權限?

lambda(賬戶 A)分配了一個 IAM 角色 (RoleA)。 步驟 function(賬戶 B)分配了一個 IAM 角色 (RoleB)。

權限

  1. lambda 的 IAM 角色應有權代入(賬戶 B)的角色

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "*" } ] }
  2. Step 函數 IAM 角色(角色 B)應該有一個可信策略,允許 Lambda 的 IAM 角色代入它。 以下信任策略中的123456789012是Account 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 應該調用步驟 function。

如何在與 lambda 不同的賬戶中擔任 IAM 角色

如果您想在 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

因為您使用的是自定義資源,所以您需要自己進一步處理 Create、Update、Delete 事件。 同樣發送完成響應,我建議您使用 cfnresponsemodule 發送回完成響應,否則 cdk 將永遠無法判斷您的自定義資源 function 何時完成:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM