情况

情况

情况

我们有一个用于尝试的 AWS 沙盒账户。它不用于生产,纯粹是为了玩 AWS 提供的所有玩具。我们希望鼓励每个人探索和学习。

我们的资产中有许多 AWS 账户,包括但不限于:

  • 沙箱
  • 发展
  • 测试
  • 生产

财务和环境责任对我们来说很重要。

要求

  • 必须
    • 自动销毁沙盒帐户中的所有内容。
    • 只能运行特定帳戶。
  • 应该
    • 销毁实例后X小时。
  • 可以

潜在解决方案

aws-nuke

我见过aws-nuke。如果我们在周三和周日的午夜运行此程序,它将终止所有实例。这听起来像是一个很棒的解决方案,但它也有点危险,因为它可能会因我的错误而终止其他帐户上的实例。它目前还适用于阻止核弹列表,而不是明确的允许核弹列表,这是另一个潜在的安全问题。我已经登录AWS-Nuke#751来解决这个问题。

最大正常运行时间策略

我正在研究的另一种方法是使用策略(IAM?)来设置所有东西的最大正常运行时间。我觉得这种方法不太可能泄露到我们的其他账户中,而且可能更加细致入微。我不确定,

  • 如何最好地实现这一点
  • 它是否需要在 lambda 中运行,或者只是一种策略
  • 是否实际上比在整个庄园运行 aws-nuke 更安全。

如有任何指点,我将不胜感激。

答案1

在以前的一个雇主那里,有人编写了一个 Lambda 函数来列出所有正在运行的实例,如果它们没有特定的标签,则每晚 7 点停止它们。这是一种非常简单、有效的处理方法。python 库boto3非常易于使用。

lambda 部署在组织中并使用跨账户角色,但您也可以轻松地通过 StackSet 将其部署到所有组织账户中,并使其仅针对该账户实例。

相关内容