有没有办法在AWS账户中核算所有AWS资源?

Phe*_*das 8 amazon-web-services terraform

我有一个AWS账户,其中多个所有者设置了多个EC2实例,负载均衡器,目标组,安全组等。我们使用terraform进行设置,但是有时由于腐败,状态会变得不一致。当前的恢复机制是手动销毁特定所有者拥有的该帐户中的所有资源。是否有一种简便的方法可以核算属于特定所有者的AWS账户中的所有资源?

Shw*_*har 18

无法删除特定用户拥有的帐户中的所有资源,但可以删除帐户中的所有资源

您可以使用aws-nuke,它是根据您描述的相同用例创建的。

  1. 首先,您需要为您的帐户设置一个帐户别名
  2. 您必须创建一个配置文件
  3. 然后,您可以使用以下命令列出将被删除的所有资源:

    aws-nuke -c config/nuke-config.yml --profile aws-nuke-example

  4. 添加 --no-dry-run 选项以永久删除同一命令中的所有资源。

  5. 还有多个过滤器选项可用,例如targetresource typeexclude等,您可以利用它们来满足您的需求。

  • 如果您对所有资源使用标签并由用户标记,则这可以提供一种由用户删除资源的方法。 (2认同)

Nit*_*san 5

同意另一个答案,即没有简单的方法可以删除孤立资源。

但我看到最初的问题是 terraform 状态已损坏。您可以查看terraform 导入功能,该功能可让您从 aws 资源生成状态文件。通过这种方式,您可以再次将您的配置连接到资源。


Mic*_*bot 2

简短的回答:不。

更长的答案:实际上,这也不是。没有内置的功能可以实现这一点。

您所描述的情况不在典型的AWS使用范围之内......通常来说,销毁帐户中的所有内容应该并不容易。

当然,您可以相当简单地编写脚本,通过将对 aws-cli 的调用包装到自定义代码来迭代资源并生成额外的请求来销毁它们...但如果您这样做,请锁定该代码,因为这种功能是本质上是危险的。