使用 Terraform 创建/销毁 AWS 帐户?

Create / Destroy AWS account using Terraform?

我正在尝试创建一个工具来轻松地在我的 AWS 组织中创建和销毁 AWS 帐户(或者如果无法删除它们,至少将它们从组织中删除)。这些帐户将成为预算较少的沙盒,并在几周后销毁。

我发现 Terraform 有一个名为 aws_organizations_account 的特定资源。

但是,有人提到删除此 Terraform 资源 只会从组织中删除 AWS 帐户。 Terraform 不会关闭帐户。会员账户必须事先做好独立账户的准备。有关详细信息,请参阅 AWS Organizations 文档。

我使用 Terraform 部署了一个 aws_organizations_account 资源,它有效。但是当我试图删除那个资源时,我是一个警告问题 The member account must be configured with a valid payment method, such as a credit card

main.tf

resource "aws_organizations_account" "account" {
  name      = "sandbox1"
  email     = "first.last+sandbox1@company.com"
  role_name = "myOrganizationRole"
}

有什么办法可以解决这个问题吗?

Is there any way to get around this issue?

遗憾的是,没有。当您从 AWS 组织中删除 AWS 账户时,它会变成 普通独立账户 。您需要自定义解决方案来从 AWS Org 中删除帐户,这将要求您完全满足其列出的所有先决条件 here。其中之一是 与要删除的帐户相关联的有效联系和付款信息

您可以 delete the account(从 AWS 组织中删除它们不同),但这不能从 AWS 组织中完成。帐户也已从内部使用 root 关闭。

我们的情况非常相似(沙盒帐户)。我们仍然需要能够取消配置作为团队成员的帐户。考虑到合并账单和无法删除或删除成员帐户,我们允许在删除 IAM 用户和登录配置文件时保留这些帐户。我们这样做的方法是对用户使用一组数据,对帐户使用另一组数据。这留下了一种不同类型的状态,在用户删除期间不会失败。

我撰写并分享了我们的地形设置:https://cromwellhaus.com/leaving-aws-subaccounts-behind

您可以更细致地处理您想要的帐户方面。

删除帐户现在可以使用 close account api. 此功能通过 close_on_deletion 标志在 terraform 上启用。