AWS S3バケットHCLをJSONに変換する

バージョニング、暗号化、ライフサイクルルールを含む完全なS3バケットTerraform設定をHCLからJSON形式に変換します。

Resources

詳細な説明

S3バケット設定

モダンなTerraform AWSプロバイダー(v4+)はバケットのサブ設定に別々のリソースを使用します。これらの複数リソースHCL設定をJSONに変換すると、関連リソースがどのように構成されるかが分かります。

HCL設定

resource "aws_s3_bucket" "assets" {
  bucket = "my-app-assets-2024"

  tags = {
    Name        = "Assets"
    Environment = "production"
  }
}

resource "aws_s3_bucket_versioning" "assets" {
  bucket = "my-app-assets-2024"

  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket_server_side_encryption_configuration" "assets" {
  bucket = "my-app-assets-2024"

  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm = "AES256"
    }
  }
}

JSON構造

異なるタイプの複数リソースは、resourceキーの下にそれぞれ独自のエントリを持ちます。JSON構造はリソースタイプ、リソース名でグループ化されます。

深くネストされたブロック

暗号化設定は3レベルのブロックネスト(rule > apply_server_side_encryption_by_default)を示し、それぞれがネストされたJSONオブジェクトになります。

セキュリティのベストプラクティス

この設定はAWSのセキュリティ推奨事項に従っています:AES256によるサーバーサイド暗号化、データ保護のためのバージョニング有効化、明確なタグ付け戦略。

ユースケース

静的ウェブサイトホスティング、アプリケーションアセットストレージ、データレイク設定のためのS3バケットの設定。AWS CloudFormationテンプレートや他のインフラツールからTerformを生成する際のJSON変換に有用です。

試してみる — HCL ↔ JSON Converter

フルツールを開く