Amazon MQ ブローカーの暗号化キー設定の確認

Amazon MQ の既定の保存時の暗号化と、組織の KMS キー管理要件を確認してください。

説明

メッセージブローカーは、アプリケーション間のメッセージや接続情報を扱います。Amazon MQ は保存データを常に暗号化し、既定では AWS 所有キーを使用します。encryption_options の省略は平文保存を意味しません。

独自のキーポリシーやライフサイクル管理が必要な場合は、ActiveMQ ブローカーにカスタマーマネージド KMS キーを指定してください。既定のキーが組織の要件を満たすかも確認が必要です。

想定される影響

キー管理要件を満たせなかったり、必要なキーの権限を失ったりすると、規制への対応やブローカーの運用に影響する場合があります。保存時の暗号化は、メッセージへのアクセス権限や通信の保護の代わりにはなりません。

対処方法

  • 要件に応じて既定のキーかカスタマーマネージドキーを選択してください。後者には kms_key_id と use_aws_owned_key = false を指定してください。
  • 実際のキーと権限を確認し、Terraform の計画でブローカーの置き換えを確認してください。暗号化キーの設定変更には置き換えが必要なため、メッセージの保全とクライアントの切り替えを計画してください。

例

ActiveMQ の設定の抜粋です。参照するリソースと変数を定義し、サポートされるエンジンバージョンとインスタンスの組み合わせを選択してください。パスワードは安全に供給し、その値が保存される Terraform の状態へのアクセスを制限してください。

既定の暗号化キー

hcl
resource "aws_mq_broker" "mq_broker" {
  broker_name = "example"

  configuration {
    id       = aws_mq_configuration.test.id
    revision = aws_mq_configuration.test.latest_revision
  }

  engine_type        = "ActiveMQ"
  engine_version     = var.activemq_engine_version
  host_instance_type = "mq.t2.micro"
  security_groups    = [aws_security_group.test.id]

  user {
    username = "ExampleUser"
    password = var.broker_password
  }
}

既定の保存時の暗号化が適用されます。独自のキー管理要件があるか確認してください。

カスタマーマネージドキーの指定

hcl
resource "aws_mq_broker" "mq_broker" {
  broker_name = "example"

  configuration {
    id       = aws_mq_configuration.test.id
    revision = aws_mq_configuration.test.latest_revision
  }

  engine_type        = "ActiveMQ"
  engine_version     = var.activemq_engine_version
  host_instance_type = "mq.t2.micro"
  security_groups    = [aws_security_group.test.id]

  user {
    username = "ExampleUser"
    password = var.broker_password
  }

  encryption_options {
    kms_key_id        = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    use_aws_owned_key = false
  }
}

例の ARN を、同じリージョンで使用できる実際のキー ARN に置き換えてください。キーの指定だけでは、メッセージの権限やネットワーク設定は完成しません。

参考資料