Terraformで暗号化されたルートボリュームを持つEC2インスタンスを作成する
2019-07-18
素直にTerraformでEncrypted root volumeなインスタンスを作成しようとしても出来ません。
ebs_block_device
パラメーターは encrypted = true
を指定できますが, root_block_device
パラメーターはそれを指定できないからです。
https://www.terraform.io/docs/providers/aws/r/instance.html#block-devices
EBSボリュームのデフォルト暗号化を有効化する
https://aws.amazon.com/jp/blogs/news/new-opt-in-to-default-encryption-for-new-ebs-volumes/
アップデートにより, EBSボリュームをデフォルト暗号化で作成できるようになっています。
こちらを設定することで, Terraform側では特に意識することなくインスタンスを作成するだけでルートボリュームも暗号化されます。
https://www.terraform.io/docs/providers/aws/r/ebs_encryption_by_default.html
resource "aws_ebs_encryption_by_default" "example" {
enabled = true
}
この機能を有効化することにより古いインスタンスタイプ(C1/M1/M2/T1)は起動することができなくなります。が, 今更使う必要もないかと思うので気にしません。