暗号化されていない AWS ブロックデバイスマッピング

EC2 のブロックデバイスマッピングで EBS の暗号化を明示し、実際のボリュームを確認してください。

説明

ブロックデバイスマッピングは、インスタンスの作成時に繰り返し使用する基本設定です。非暗号化 EBS ボリュームを作成する設定が再利用されると、複数のサーバーのアプリケーションデータやログに影響する可能性があります。

実際の暗号化には、元のスナップショットやアカウント・リージョンの EBS 既定の暗号化も関係します。設定の省略や false だけで判断せず、作成されたボリュームを確認してください。

想定される影響

非暗号化ボリュームやスナップショットを不正に取得されると、機密データが漏えいするリスクが高まります。組織のストレージ暗号化基準を満たせない場合もあります。

対処方法

  • 新規 EBS ボリュームの root_block_device と ebs_block_device に encrypted = true を明示し、作成テンプレートにも適用してください。
  • 使用する各リージョンの EBS 既定の暗号化と KMS 権限を確認してください。新規の Auto Scaling 設定には起動テンプレートを使用してください。
  • 既存の非暗号化ボリュームは、暗号化したスナップショットのコピーから新しいボリュームを作成して移行してください。Terraform の置き換え、データの整合性、接続の切り替えを検討してください。

例

EC2 インスタンスに追加の EBS ボリュームを接続する抜粋です。有効な AMI とネットワークなど、残りの設定を用意してください。

変更前

hcl
resource "aws_instance" "example" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "m4.large"

  ebs_block_device {
    device_name = "/dev/sdf"
    volume_size = 20
    encrypted   = false
  }
}

追加ボリュームの暗号化を明示的には要求していません。元のデータやリージョンの既定値に応じた実際の状態を確認してください。

変更後

hcl
resource "aws_instance" "example" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "m4.large"

  ebs_block_device {
    device_name = "/dev/sdf"
    volume_size = 20
    encrypted   = true
  }
}

追加ボリュームの暗号化を要求します。ルートボリュームも別途確認し、既存ボリュームが自動で暗号化されるとは考えないでください。

参考資料