모든 주소에서 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이나 라우팅을 만들어 주지는 않습니다.

참조