すべてのアドレスから RDP を許可する AWS セキュリティグループ

RDP による管理アクセスを、承認された管理者とネットワーク経路に制限してください。

説明

セキュリティグループで 0.0.0.0/0 または ::/0 から TCP 3389 への通信を許可すると、すべてのアドレスから RDP 接続を試みられるルールになります。実際にインターネットから到達できるかどうかは、リソースのアドレス、ルーティング、サービスの待ち受け状態にも左右されます。このルール自体が公開アドレスを作成したり、ログインを許可したりするわけではありません。

インターネットから到達可能な RDP サービスは、自動スキャン、パスワード推測、漏えいした認証情報を使う攻撃の対象になり得ます。管理接続は VPN や踏み台などの管理された経路に制限する必要があります。

想定される影響

  • インターネットから到達できる場合、外部のクライアントがリモート接続やログインを試みることができます。
  • 弱い認証設定や RDP サービスの脆弱性が悪用されると、サーバーが侵害される可能性があります。

対処方法

  • TCP 3389 をすべての IPv4 または IPv6 アドレスに許可するルールを削除し、必要な管理者の送信元だけを許可してください。
  • VPN、踏み台、承認された管理ネットワークを使い、認証の保護とサービスの更新を維持してください。
  • ほかのセキュリティグループや SSH・WinRM などの管理ポートも確認し、正常な管理接続が成功し、不要な外部接続が遮断されることを試験してください。

例

同じセキュリティグループで RDP の送信元範囲を比較する部分的な例です。対象 VPC とリソースの関連付けは実際の環境に合わせて設定してください。

変更前

hcl
resource "aws_security_group" "windows_admin" {
  name        = "allow-rdp"
  description = "RDP open to the internet"

  ingress {
    description = "RDP from anywhere"
    from_port   = 3389
    to_port     = 3389
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

TCP 3389 にすべての IPv4 アドレスを許可しています。宛先にインターネットから到達できる場合、RDP 接続の試行を受ける可能性があります。

変更後

hcl
resource "aws_security_group" "windows_admin" {
  name        = "allow-rdp"
  description = "RDP restricted to admin network"

  ingress {
    description = "RDP from admin network only"
    from_port   = 3389
    to_port     = 3389
    protocol    = "tcp"
    cidr_blocks = ["10.20.0.0/24"]
  }
}

送信元を 10.20.0.0/24 に制限しています。プライベートアドレスだから信頼するのではなく、実際に承認された管理ネットワークかを確認してください。このルールは VPN やルーティングを作成しません。

参考資料