5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Terraform】AWSのS3をbackendに設定するための必要最低限の設定

Posted at

はじめに

AWSのS3をTerraformのbackend(tfstateファイルの保管場所)として利用するために必要最低限の設定についてまとめました。

backend保管のイメージ

tfstateファイルをローカル保存ではなく、S3内に保存することでチームでtfstateファイルを共有可能です。

backend.drawio.png

S3 の設定

1.S3 Bucket の作成

項目 設定
Bucket name 任意の名前
AWS Region ap-northeast-1
Object Ownership ACLs enabled
Block Public Access settings for this bucket Block all public access
Bucket Versioning Enable
Default encryption Disable
Advanced settings Disable

Terraformの公式ドキュメントを確認すると、Bucket Versioning を有効化にすることが推奨されています。

Warning! It is highly recommended that you enable Bucket Versioning on the S3 bucket to allow for state recovery in the case of accidental deletions and human error.
引用 : https://developer.hashicorp.com/terraform/language/settings/backends/s3

2.Bucket policy の設定

対象のIAMユーザーからのみS3 Bucket へのアクセスを通すようにする。
※今回は、必要最低限の設定のため、IAMユーザーとしています。

Bucket policy
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::************:user/Terraform"
			},
			"Action": "s3:*",
			"Resource": "arn:aws:s3:::terraform-backend1103/*"
		}
	]
}

AWS Policy Generatorを利用すれば、直接JSONを記述しなくてもコードを生成することが可能。

項目 設定
Select Policy Type S3 Bucket Policy
Effect Allow
AWS Service 許可したいIAMユーザーのARN
Actions Block all public access
Amazon Resource Name (ARN) backendを格納するS3のARN

参考

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?