0
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?

Terraform 入門:S3バケット"Warning: Argument is deprecated"の警告文を修正して作成してみた

Last updated at Posted at 2025-03-03

はじめに

Terraformを使ってAWS S3バケットを作成する際に、仕様変更によりエラーや警告が発生することがあります。

本記事では、その中でも aws_s3_bucketacl 属性が非推奨になった警告の詳細と、修正方法について解説します。

書こうと思ったきっかけ

Terraformのバージョンアップに伴い、S3バケットの acl 属性が非推奨となり、新しいリソース aws_s3_bucket_acl を使用する必要が出てきました。

この変更に気づかずに既存のコードを適用すると警告が表示されるため、同じ問題に直面する人のために記事を書こうと思いました。

警告の内容

TerraformでAWS S3バケットを作成する際に、以下のような警告が発生することがあります。

│ Warning: Argument is deprecated
│
│   with aws_s3_bucket.example,
│   on main.tf line 7, in resource "aws_s3_bucket" "example":
│    7:   acl    = "private"
│
│ Use the aws_s3_bucket_acl resource instead
│
│ (and one more similar warning elsewhere)

この警告は、Terraformのバージョンアップにより aws_s3_bucket リソース内の acl 属性が非推奨になったことによるものです。代わりに aws_s3_bucket_acl リソースを使用する必要があります。

修正方法

修正前のコード

resource "aws_s3_bucket" "example" {
  bucket = "my-example-bucket"
}

resource "aws_s3_bucket_acl" "example_acl" {
  bucket = aws_s3_bucket.example.id
  acl    = "private"
}

修正後のコード

resource "aws_s3_bucket" "example" {
  bucket = "my-example-bucket"
  force_destroy = true
}

resource "aws_s3_bucket_ownership_controls" "example" {
  bucket = aws_s3_bucket.example.id

  rule {
    object_ownership = "BucketOwnerEnforced"
  }
}

修正のポイント

  1. aws_s3_bucket_acl リソースを削除し、新しい aws_s3_bucket_ownership_controls リソースを使用。
  2. object_ownership = "BucketOwnerEnforced" を設定して、ACL を不要にする。
  3. force_destroy = true を追加し、削除時の管理を簡単に。

修正後の適用手順

修正後のTerraformコードを適用するには、以下のコマンドを実行します。

terraform init
terraform plan
terraform apply

terraform apply 実行時に yes を入力すると、修正後の設定が適用されます。

実際のターミナル画面

Screenshot 2025-03-03 at 18.20.14.png

まとめ

Terraformの新しい仕様に対応するため、S3バケットのACL設定を削除し、aws_s3_bucket_ownership_controls を使用することで、最新のTerraformのベストプラクティスに準拠した構成が可能になります。

0
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
0
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?