설명
SSH, RDP, 파일 공유처럼 운영 자산에 접근하는 서비스의 포트를 모든 IPv4·IPv6 주소에 허용하면 불필요한 외부 연결 시도가 늘어날 수 있습니다. 포트 번호만으로 실제 서비스를 확정할 수는 없으므로 리스닝 프로세스, 프로토콜과 업무상 필요성을 함께 확인하세요.
실제 외부 접근에는 주소, 경로, 호스트 방화벽도 영향을 줍니다. 네트워크 허용을 줄이는 것과 서비스의 인증·암호화를 강화하는 것은 함께 수행해야 합니다.
잠재적 영향
- 접근 가능한 관리·파일 공유 서비스가 계정 공격이나 취약점 악용 시도의 대상이 될 수 있습니다.
- 서비스가 침해되면 데이터 유출이나 내부 자산 접근으로 이어질 수 있습니다.
해결 방법
- 불필요한 규칙을 제거하고 관리 연결은 실제 관리자 주소, VPN 또는 배스천 경로로 제한하세요. IPv4와 IPv6를 모두 검토하세요.
- 서비스마다 필요한 프로토콜과 포트를 확인하고, 암호화되지 않은 기존 프로토콜은 지원되는 보호 방식으로 전환하세요. 포트 번호를 바꾸는 것만으로 서비스가 암호화되지는 않습니다.
- 다른 연결 그룹과 호스트 제어까지 확인하고 필요한 통신, 인증 및 불필요한 연결 차단을 시험하세요.
예시
실제 VPC ID를 지정하세요. 이 비교는 FTP 데이터 포트가 필요 없고 내부 HTTPS 애플리케이션만 필요한 환경을 가정합니다. FTP 서비스를 HTTPS로 전환하는 코드는 아닙니다. 두 번째 예시의 주소를 실제 클라이언트 대역으로 바꾸고 서비스·인증서·인스턴스 연결은 별도로 구성하세요.
변경 전
yaml
Parameters:
myVPC:
Type: AWS::EC2::VPC::Id
Resources:
InstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Expose admin port
VpcId:
Ref: myVPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 20
ToPort: 20
CidrIp: 0.0.0.0/0
TCP 20을 모든 IPv4 주소에 허용합니다. 이 포트는 FTP 데이터 전송에 쓰일 수 있지만 규칙 자체가 FTP나 관리 서비스를 실행하지는 않습니다.
변경 후
yaml
Parameters:
myVPC:
Type: AWS::EC2::VPC::Id
Resources:
InstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Allow only application traffic
VpcId:
Ref: myVPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 443
ToPort: 443
CidrIp: 10.10.10.0/24
필요한 내부 애플리케이션의 TCP 443만 허용합니다. 포트를 허용하는 것만으로 TLS가 구성되는 것은 아니므로 실제 서비스 설정도 확인하세요.