セキュリティグループがインターネット全体からのSSHを許可している

SSH接続を承認された管理用ネットワークに限定してください。

説明

セキュリティグループでTCPポート22を0.0.0.0/0または::/0に許可すると、インターネット全体がSSHの許可対象になります。インターネットへの経路と待ち受け中のSSHサービスがあれば、外部から接続できます。

想定される影響

不要な接続試行や認証への攻撃が増え、認証やサービス設定の弱点を悪用されるリスクが高まるおそれがあります。

対処方法

全アドレス範囲の許可を削除し、必要な管理者、VPN、踏み台ホストからの接続だけを許可してください。直接SSH接続が不要なら、そのルールを削除してください。

例

以下は接続元を承認された管理用範囲に絞る例です。プライベートアドレスであることだけを信頼せず、実際の管理者に合った範囲を指定してください。

変更前

hcl
resource "aws_security_group" "example" {
  name        = "allow_tls"
  description = "SSH port open"

  ingress {
    description = "SSH port open"
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["192.120.0.0/16", "0.0.0.0/0"]
  }
}

変更後

hcl
resource "aws_security_group" "example" {
  ingress {
    description = "SSH from management network"
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["10.10.10.0/24"]
  }
}

参考資料