Azure RDP ルールの公開アクセス範囲の確認

RDP 接続を承認済みの管理経路とアドレスに制限してください。

説明

Azure のネットワークセキュリティルールが、すべてのアドレスから RDP ポートへの接続を許可すると、管理サービスへのアクセス範囲が必要以上に広くなるおそれがあります。外部から実際に接続できる場合、パスワードの推測、漏えいした資格情報の使用、脆弱性の悪用の対象になり得ます。

実際の接続可否は、NSG の関連付け、有効なルールの優先順位、ルーティング、ホストのファイアウォール、RDP サービスの状態によって異なります。ネットワークの許可だけでログインが認められるわけではありません。

想定される影響

  • 不要な外部からの RDP ログイン試行が増える可能性があります。
  • アカウントやサービスが侵害されると、システムや内部リソースへのアクセスにつながるおそれがあります。

対処方法

不要な RDP 許可ルールを削除し、必要な場合は承認済みの管理用アドレスだけを許可してください。Azure Bastion や VPN などの管理経路を使い、NSG とホストのファイアウォールにも同じアクセス方針を適用してください。必要な管理接続が成功し、未承認のアドレスからの接続が遮断されることを確認してください。

例

同じルールで許可する送信元だけを絞る例です。10.20.0.0/24 は、実際の承認済み管理ネットワークに置き換え、その接続経路を用意してください。

変更前

hcl
resource "azurerm_network_security_rule" "rdp_open" {
  name                        = "allow-rdp"
  priority                    = 100
  direction                   = "Inbound"
  access                      = "Allow"
  protocol                    = "TCP"
  source_port_range           = "*"
  destination_port_range      = "3389"
  source_address_prefix       = "*"
  destination_address_prefix  = "*"
  resource_group_name         = azurerm_resource_group.example.name
  network_security_group_name = azurerm_network_security_group.example.name
}

すべての送信元から TCP 3389 への接続を許可します。

変更後

hcl
resource "azurerm_network_security_rule" "rdp_open" {
  name                        = "allow-rdp"
  priority                    = 100
  direction                   = "Inbound"
  access                      = "Allow"
  protocol                    = "TCP"
  source_port_range           = "*"
  destination_port_range      = "3389"
  source_address_prefix       = "10.20.0.0/24"
  destination_address_prefix  = "*"
  resource_group_name         = azurerm_resource_group.example.name
  network_security_group_name = azurerm_network_security_group.example.name
}

送信元を管理サブネットに制限します。その利用者に RDP アクセスが必要であることと、他の広範な許可ルールが制限を無効にしないことも確認してください。

参考資料