全アドレスから RDP を許可する AWS Network ACL

RDP 管理を承認された管理者と統制された接続経路に限定してください。

説明

Network ACL で全アドレスから TCP 3389 を許可すると、RDP サービスへの不要な接続経路を開く可能性があります。実際の接続は、番号の小さい ACL ルール、サブネットとの関連付け、ルーティング、セキュリティグループ、待ち受けサービスによって異なります。

想定される影響

  • パスワードの推測や漏えいした認証情報の悪用が増えるおそれがあります。
  • 脆弱な遠隔管理サービスが侵害されると、サーバーや内部システムに影響する可能性があります。

対処方法

  • 不要な全アドレスからの RDP 許可を削除し、承認された管理者アドレスや VPN・統制された管理経路だけを許可してください。
  • 番号の小さい順に適用される ACL 全体、IPv4・IPv6 範囲、関連サブネット内のリソースのセキュリティグループを確認してください。
  • Network ACL は状態を追跡しないため、応答の送信と必要なクライアントポートも設定してください。変更後、正常な管理接続と不要なアクセスの拒否を確認してください。

例

受信ルールの抜粋です。参照 VPC、サブネットとの関連付け、応答ルールを別途設定し、例のプライベート範囲を実際に承認された管理者アドレスに置き換えてください。

変更前

hcl
resource "aws_network_acl" "network_acl" {
  vpc_id = aws_vpc.main.id

  ingress = [
    {
      protocol   = "tcp"
      rule_no    = 100
      action     = "allow"
      cidr_block = "0.0.0.0/0"
      from_port  = 3389
      to_port    = 3389
    }
  ]
}

ルール 100 は全 IPv4 接続元から TCP 3389 を許可します。より小さい番号で一致するルールが優先される場合があります。

変更後

hcl
resource "aws_network_acl" "network_acl" {
  vpc_id = aws_vpc.main.id

  ingress = [
    {
      protocol   = "tcp"
      rule_no    = 100
      action     = "allow"
      cidr_block = "10.3.0.0/18"
      from_port  = 3389
      to_port    = 3389
    }
  ]
}

接続元を 10.3.0.0/18 に制限します。プライベート範囲全体が必要か確認し、実際の管理元だけを許可してください。

参考資料