🙌
Terraformのnetwork-aclのモジュール
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