🙌

Terraformのnetwork-aclのモジュール

2023/10/27に公開

network-aclのモジュールファイル

network-acl.tfファイル
# Network ACLリソースを作成
resource "aws_network_acl" "example" {
  vpc_id = var.vpc_id  // VPC IDはvariables.tfで定義

  // インバウンドルールの設定
  ingress {
    rule_no    = 100        // ルール番号
    action     = "allow"    // 許可するアクション
    from_port  = 0          // 開始ポート(0は全てのポート)
    to_port    = 0          // 終了ポート(0は全てのポート)
    protocol   = "-1"       // プロトコル(-1は全てのプロトコル)
    cidr_block = "0.0.0.0/0"// 許可するIP範囲
  }

  // アウトバウンドルールの設定
  egress {
    rule_no    = 100        // ルール番号
    action     = "allow"    // 許可するアクション
    from_port  = 0          // 開始ポート(0は全てのポート)
    to_port    = 0          // 終了ポート(0は全てのポート)
    protocol   = "-1"       // プロトコル(-1は全てのプロトコル)
    cidr_block = "0.0.0.0/0"// 許可するIP範囲
  }

  // タグの設定
  tags = {
    Name = "sample-dev-nacl"  // Network ACLの名前
  }
}


variables.tfファイル
# VPC IDの設定
variable "vpc_id" {
  description = "The ID of the VPC where the NACL will be created."  // Network ACLを作成するVPCのID
  type        = string
}



output.tfファイル
# Network ACL IDの出力
output "network_acl_id" {
  value       = aws_network_acl.example.id  // 作成したNetwork ACLのID
  description = "The ID of the created Network ACL."  // 説明
}



providers.tfファイル
# 必要なプロバイダとそのバージョンを定義
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"  // AWSプロバイダのソース
      version = "~> 5.0"          // バージョン指定
    }
  }
}

# AWSプロバイダの設定
provider aws {
  region = "ap-northeast-1"  // AWSリージョン(東京リージョン)
}


README.mdファイル

network-acl.tfファイル

項目 説明
resource "aws_network_acl" AWS Network ACL(Network Access Control List)を定義するTerraformリソースです。
vpc_id Network ACLが作成されるVPCのIDを指定します。このIDはvariables.tfで定義されています。
ingress インバウンド(入力)の通信ルールを設定します。
rule_no ルールの順序を示す番号です。低い番号が優先されます。
action 通信を許可するか拒否するかを指定します。この例ではallowが指定されています。
from_port, to_port 許可されるポート範囲を指定します。この例では全てのポート(0 - 0)が指定されています。
protocol 許可されるプロトコルを指定します。この例では-1が指定されており、全てのプロトコルが許可されています。
cidr_block 許可されるIPアドレス範囲をCIDR形式で指定します。この例では0.0.0.0/0が指定されており、全てのIPアドレスが許可されています。
egress アウトバウンド(出力)の通信ルールを設定します。同様のフィールドが用意されています。
tags AWSリソースに付けるタグを定義します。この例ではNameタグが設定されています。

variables.tfファイル

項目 説明
variable "vpc_id" Network ACLが作成されるVPCのIDを指定します。このIDはNetwork ACLの作成に使用されます。

output.tfファイル

項目 説明
output "network_acl_id" 生成されたNetwork ACLのIDを出力します。このIDは他のTerraformコードやモジュールで使用することができます。

Discussion