在 AWS 组织中部署 lambda 函数

Deploy lambda functions in an AWS Organization

我创建了一个 AWS lambda 函数来关闭我账户中的一个 EC2 实例。该函数在特定时间从 CloudWatch 调用。

假设您必须在 AWS 组织中完成相同的任务。您可以完全控制主账户,并且您是组织的所有者。 如果你想在某个时间关闭组织中的所有EC2实例,首先,可以从你的主账户控制吗?如果是,那么方法是什么?

  1. 掌握 CloudWatch --calls--> 掌握 Lambda --> 关闭组织中的 EC2 实例

  2. 成员 CloudWatch --> 成员 Lambda --> 关闭了他们组织中的 EC2。

如果2.是唯一的选择,是否可以将CloudWatch规则和Lambda函数从主账户推送到每个成员账户?

  1. 还有其他方法可以解决这个问题吗?

非常感谢!

选项一可能是两者中较好的一个,因为它更简单(无需处理跨帐户事件)。

要做到这一点,您需要了解 AWS Security Token Service's Assume Role

这将使您的 lambda 系统地:

  • 在账户 1 中担任可以列出和关闭 EC2 实例的角色
  • 关闭 EC2 实例
  • 在帐户 2 中担任角色...等等

为此,您必须在每个 'slave' 账户中创建一个 IAM 角色,并允许在主账户中使用 sts:AssumeRole 来调用该 IAM 角色lambda 与

我会向您挑战,以确保这就是您所需要的。通常情况下,如果您可以让您的账户彼此之间的依赖性非常松散,那么在 AWS 中生活会容易得多;而是考虑一种方法,其中每个帐户负责根据触发器关闭自己的 EC2 实例。