プロバイダーが AWS である多くの Terraform プロジェクトで見られる繰り返し可能な構成があります 。すべてのアウトバウンド トラフィックを許可するアウトバウンド (エグレス) ルールの構成です。
私が理解している限り、AWS ユーザー ガイドに記載されているように、これは AWS のデフォルトの動作です。
デフォルトでは、セキュリティ グループには、すべてのアウトバウンド トラフィックを許可するアウトバウンド ルールが含まれています。ルールを削除して、特定のアウトバウンド トラフィックのみを許可するアウトバウンド ルールを追加できます。セキュリティ グループにアウトバウンド ルールがない場合、インスタンスからのアウトバウンド トラフィックは許可されません。
セキュリティ グループの一般的な Terraform セットアップの例 - 私の質問の焦点は、エグレス ブロックです。
resource "aws_security_group" "my_sg" {
name = "my_sg"
description = "Some description"
vpc_id = "${aws_vpc.my_vpc.id}"
tags {
Name = "my_sg_tag"
}
#Not redundant - Because a new security group has no inbound rules.
ingress {
from_port = "80"
to_port = "80"
protocol = "TCP"
cidr_blocks = ["0.0.0.0/0"]
}
#Isn't this redundant?
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
この構成は文書化のために作成されたものですか、それとも技術的な理由がありますか?