😄

Terraformでセキュリティグループを作るメモ

2024/09/29に公開

Terraformでセキュリティグループを作るメモ

セキュリティグループの作成

  • セキュリティグループのルールは"aws_security_groupブロックに直接記述するか、- "aws_security_group_rule"に分割して記述することができるらしい
  • プロトコルをすべて許可する場合はprotocol=-1と記述
  • ポートをすべて空けるにはfrom_port=0to_port=0と記述
  • 参考サイトのZennの記事によると、aws_security_groupリソースを定義した後、aws_security_group_ruleリソースでルールを追加すると、競合が発生し、変更があったと認識されるので注意しなければならない
// セキュリティグループの作成
resource "aws_security_group" "allow_https" {
  name = "allow_https"
  description = "allow https"
  vpc_id = aws_vpc.~.id
  tags = {
    Name = "allow_https"
  }
  
  egress {
    from_port        = 0
    to_port          = 0
    protocol         = "-1"
    cidr_blocks      = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }
}
resource "aws_security_group_rule" "allow_https_in_rule" {
  security_group_id = aws_security_group.allow_https.id
  type = "ingress" 
  protocol = "tcp"
  from_port = 443
  to_port = 443
  
  cidr_blocks = ["0.0.0.0/0"]
}

resource "aws_security_group_rule" "allow_https_out_rule" {
  security_group_id = aws_security_group.allow_https.id
  type = "egress" 
  protocol = "tcp"
  from_port = 443
  to_port = 443
  
  cidr_blocks = ["0.0.0.0/0"]

  // source_security_group_idでセキュリティグループをソース指定してグループを作成することも可能
  source_security_group_id = aws_security_group.allow_https.id
}

参考

最後に

間違っていることがあればコメントに書いていただけると幸いです。
よろしくお願いいたします。

GitHubで編集を提案

Discussion