公開アクセスが可能な AWS MQ ブローカー

公開アクセスが不要なメッセージブローカーにはプライベートな接続経路を使用してください。

説明

公開 MQ ブローカーのエンドポイントは、インターネットから接続を試行できる経路を提供します。ブローカーは内部イベントやアプリケーション通信を扱うため、公開アクセスの必要性を確認してください。公開エンドポイントだけで匿名のメッセージアクセスが許可されるわけではなく、認証と権限が別途適用されます。

想定される影響

  • 不要な外部接続やパスワードの推測が増えるおそれがあります。
  • アカウントやブローカーが侵害されると、メッセージの漏えい・改ざんやサービス停止につながる可能性があります。

対処方法

  • 公開接続が不要なら publicly_accessible を false にし、クライアントのプライベート接続経路を準備してください。
  • ActiveMQ のセキュリティグループとユーザー権限を実際のクライアントと必要な操作に限定し、TLS を使用してください。
  • このプロパティの変更は Terraform でブローカーの置き換えを伴います。メッセージの保持、新しいブローカー、クライアントの切り替えを計画し、必要な接続と不要なアクセスの拒否を確認してください。

例

ActiveMQ の作成設定の抜粋です。activemq_engine_version にはサポート対象のバージョンを渡し、インスタンスタイプとの互換性を確認してください。ユーザーとネットワークは別途設定し、パスワードと Terraform の状態を保護してください。

変更前

hcl
resource "aws_mq_broker" "mq_broker" {
  broker_name         = "example"
  engine_type         = "ActiveMQ"
  engine_version      = var.activemq_engine_version
  host_instance_type  = "mq.t2.micro"
  publicly_accessible = true
}

公開ブローカーエンドポイントを要求します。認証と権限も別途設定する必要があります。

変更後

hcl
resource "aws_mq_broker" "mq_broker" {
  broker_name        = "example"
  engine_type        = "ActiveMQ"
  engine_version     = var.activemq_engine_version
  host_instance_type = "mq.t2.micro"
}

プロパティを省略すると、プロバイダーの既定値 false が適用されます。既存ブローカーを変更する前に、置き換えとクライアントのプライベート接続を確認してください。

参考資料