如果在AWS上以多个用户进行基础架构管理,可以将tfstate文件存储在S3上

首先

我通过使用Udemy学习了Terraform,因此这是关于在AWS上进行多用户基础设施管理的学习备忘录。

 

用AWS来协同管理基础设施的多个用户。

在每个环境中运行Terraform时,tfstate文件会被创建在每个环境中,导致不一致性。因此,我们使用S3来管理tfstate文件。

为了确保不能将管理外的存储桶用于生产环境或防止误应用导致的问题,建议将Terraform的管理目标和tfstate存储位置设置为不同的账户。

将tfstate存储到S3中

让我们在S3存储桶中进行设置,以保管tfstate文件。

首先,我们将从AWS控制台创建一个S3存储桶。

スクリーンショット 2022-10-16 20.07.15.png

我要编辑桶策略。

首先,将块公共访问(存储桶设置)暂时关闭。
然后,使用策略生成器创建存储桶策略。

スクリーンショット 2022-10-16 20.11.58.png
スクリーンショット 2022-10-16 20.14.55.png

将已创建的策略输入到存储桶策略中即可完成。
不需要 Sid,可以删除。
最后,重新启用存储桶设置中的公共访问阻止。

编辑 Terraform 块

在terraform区块中添加后端,并填写已创建的存储桶名称。

terraform {
  required_version = ">=0.13"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0" 
    }
  }
  backend "s3" {
    bucket  = "作成したバケット名"
    key     = "tfstateのファイル名(****.tfstate)"
    region  = "リージョン"
    profile = "作成したプロフィール"

  }
}

最终将进行初始化。

$ terraform init

如果没有显示任何错误消息,那么设置已经完成。
tfstate文件将会在您创建的S3存储桶中生成。

bannerAds