[英]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)。
lambda 的 IAM 角色應有權代入(賬戶 B)的角色
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "*" } ] }
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 應該具有從賬戶 B 承擔角色(角色 B)並獲得臨時憑證的代碼
使用這些憑據,lambda 應該調用步驟 function。
如果您想在 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 何時完成:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.