🚋

TerraformでEC2を作成し、そのパブリックIPをセキュリティグループで許可する

2023/05/25に公開

0.0.0.0/0を防止する一助になれば

やりたいこと

  • terraformでec2を作成する
  • ec2のパブリックIPを、セキュリティグループのインバウンドルールに使用する
  • 一度のterraform applyで上記を実現する

EC2のpublic_ip属性を使う

ことでEC2のパブリックIPを取得出来ます。
それをセキュリティグループで指定すれば良いです。

サンプル

main.tf
## EC2
resource "aws_instance" "test-instance-1" {
... 略 ...
}

## SG
resource "aws_security_group" "test-sg-2" {
.. 略 ..
  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["${aws_instance.test-instance-1.public_ip}/32"] # ここ
  }
}

属性の見方

terraformのリソース別のドキュメントに記載があります。
どのような値を取得出来るのか参考にしましょう。
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance#attributes-reference

Discussion