Karakuri.com

ベンチャー企業で働くソフトウェアエンジニアの技術録

TerraformでAurora MySQLに対してEC2のみアクセスを許可するセキュリティグループを作成する

スポンサーリンク

Aurora MySQLとその周りのインフラをTerraformで構築していたのですが、VPC内のEC2からのみAuroraへのアクセスを許可するセキュリティグループの作成に少し手間取ったのでメモを残しておきます。

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "~> 3.0"
  ...
}

module "ec2_security_group" {
  source  = "terraform-aws-modules/security-group/aws"
  version = "~> 4.0"

  name        = "ec2-security-group"
  description = ""
  vpc_id      = module.vpc.vpc_id

  ingress_cidr_blocks = ["0.0.0.0/0"]
  ingress_rules       = ["all-icmp", "ssh-tcp"]
  egress_rules        = ["all-all"]
}

module "aurora_security_group" {
  source  = "terraform-aws-modules/security-group/aws"
  version = "~> 4.0"

  name        = "aurora-security-group"
  description = ""
  vpc_id      = module.vpc.vpc_id

  ingress_with_source_security_group_id = [
    { 
      rule = "mysql-tcp", 
      source_security_group_id = module.ec2_security_group.security_group_id 
    },
  ]
  egress_rules        = ["all-all"]
}

Terrafoem Registryに登録されている terraform-aws-modules を使って構築しました。
github.com

これによってAuroraにはVPC内のEC2にSSH接続する以外の方法でアクセスできないようになります。