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接続する以外の方法でアクセスできないようになります。