amazon-web-services - 在 AWS 组织中部署 lambda 函数
问题描述
我创建了一个 AWS lambda 函数来关闭我账户中的 EC2 实例。该函数在特定时间从 CloudWatch 调用。
假设您必须在 AWS 组织中完成相同的任务。您拥有对主账户的完全控制权,并且您是组织的所有者。如果您想在某个时间关闭组织中的所有 EC2 实例,首先可以从您的主账户中控制吗?如果是,那么方法是什么?
Master CloudWatch --calls--> Master Lambda --> 关闭组织中的 EC2 实例
成员 CloudWatch --> 成员 Lambda --> 关闭其组织中的 EC2。
如果 2. 是唯一的选项,是否可以将 CloudWatch 规则和 Lambda 函数从主账户推送到每个成员账户?
- 还有其他方法可以解决这个问题吗?
非常感谢!
解决方案
选项一可能是两者中更好的一个,因为它更简单一些(无需处理跨账户事件)。
为此,您需要了解AWS Security Token Service 的 Assume Role。
这将允许您的 lambda 系统地:
- 在账户 1 中担任可以列出和关闭 EC2 实例的角色
- 关闭 EC2 实例
- 假设帐户 2 中的一个角色……等等。
为此,您必须在每个“从属”账户中承担一个 IAM 角色,以及一个允许sts:AssumeRole
在主账户中使用的 IAM 角色来调用该 lambda。
我会挑战你,以确保这是你所需要的。通常,如果您可以让您的账户彼此之间只有非常松散的依赖关系,那么在 AWS 中的生活会容易得多;而是考虑一种方法,每个账户负责根据触发器关闭自己的 EC2 实例。
推荐阅读
- android - Android RxJava 和 Realm - RxJava 错误处理是否会捕获从 Realm 发生的错误?
- python - 在 pandas 中按多个条件分组
- swift - Swift:将字节数组转换为 CIImage
- javascript - JavaScript 为数组中的每个值添加键
- javascript - What kind of Javascript rich text editor support formula?
- http - Mule 调用 rest api 失败,“响应代码 404 映射为失败。”
- ios - 从 Firebafirebase Crash Reporting OLD 迁移到 Firebase/Crashlytics
- lisp - 检查子列表中具有值的关键字的出现
- javascript - Amplify.configure 不是函数
- c# - 如何解决引用或程序集依赖性