terraform-awsconfig-2

AWS Configを1クリックセットアップで作成するには、AWS Management Consoleからのボタン1つで完了するオプションがありますが、Terraformを使用してそれを自動化したい場合は、いくつかのリソースを設定する必要があります。以下は、Terraformを使用してAWS Configをセットアップするための基本的なコード例です。

前提条件

  • Terraform CLIがインストールされている。
  • AWSアカウントがあり、適切な認証情報が設定されている。

Terraformのコード例

provider "aws" {
  region = "us-west-2"  # 使用するリージョンに変更して下さい
}

# AWS Configのロールを作成
resource "aws_iam_role" "config_role" {
  name = "aws-config-role"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "config.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
EOF
}

# ロールに必要なポリシーを添付
resource "aws_iam_role_policy_attachment" "config_role_policy" {
  role       = aws_iam_role.config_role.name
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSConfigRole"
}

# S3バケットの作成 (AWS Configの情報を保存)
resource "aws_s3_bucket" "config_bucket" {
  bucket = "my-config-bucket-${var.aws_account_id}"
  acl    = "private"

  versioning {
    enabled = true
  }
}

# AWS Configのデリバリーチャネルを作成
resource "aws_config_delivery_channel" "config_channel" {
  name           = "default"
  s3_bucket_name = aws_s3_bucket.config_bucket.bucket

  depends_on = [
    aws_iam_role_policy_attachment.config_role_policy
  ]
}

# AWS Configのレコーダーを作成
resource "aws_config_configuration_recorder" "config_recorder" {
  name     = "default"
  role_arn = aws_iam_role.config_role.arn

  recording_group {
    all_supported = true
    include_global_resource_types = true
  }

  depends_on = [
    aws_config_delivery_channel.config_channel
  ]
}

# AWS Configのレコーダーを開始
resource "aws_config_configuration_recorder_status" "config_status" {
  name    = aws_config_configuration_recorder.config_recorder.name
  is_active = true
}

説明

  • aws_iam_role: AWS Configが使用するIAMロールを作成します。
  • aws_iam_role_policy_attachment: 作成したIAMロールに必要なポリシーを添付します。
  • aws_s3_bucket: AWS Configがログを保存するS3バケットを作成します。
  • aws_config_delivery_channel: AWS Configの配送チャネルを構成します。このチャネルは構成履歴とスナップショットを指定したS3バケットに送信します。
  • aws_config_configuration_recorder: AWS Configの構成レコーダーを設定します。
  • aws_config_configuration_recorder_status: レコーダーを有効にします。

使い方

  1. 上記のコードを main.tf ファイルとして保存します。
  2. 必要に応じて、適切なAWSリージョンやS3バケット名などを変更します。
  3. Terraformを初期化し、計画を作成して適用します。
terraform init
terraform plan
terraform apply

このコードを利用することで、AWS Configの基本的なセットアップがTerraformを使用して自動的に行われます。特定のリソースやポリシーの詳細は、必要に応じて調整してください。

コメント

タイトルとURLをコピーしました