보안 그룹 SSH 전체 공개

SSH 관리 접속을 필요한 출발지로 제한하고 인증과 키 관리를 강화하세요.

설명

보안 그룹에서 TCP 22를 0.0.0.0/0 또는 ::/0에 허용하면 모든 해당 주소가 SSH 접속 허용 대상이 됩니다. 실제 접속에는 네트워크 경로와 SSH 서비스도 필요하며, 이 규칙 자체가 SSH 인증을 우회하지는 않습니다.

SSH는 필요한 관리용 IP나 보안 그룹에서만 허용하세요. 다른 연결 그룹이 포트 22 또는 모든 프로토콜을 넓게 허용하면 좁은 규칙을 추가해도 제한 효과가 없습니다.

잠재적 영향

  • 도달 가능한 관리 포트로 스캔과 무차별 대입 시도가 유입될 수 있습니다.
  • 유출된 키나 취약한 계정·서비스 설정이 있으면 서버 침해로 이어질 수 있습니다.

해결 방법

  • TCP 22의 출발지를 승인된 관리 주소나 적절한 보안 그룹으로 제한하고 IPv4·IPv6 허용을 함께 검토하세요.
  • 불필요한 넓은 규칙을 제거하고, 필요하면 제한된 배스천이나 필요한 IAM·에이전트·경로를 갖춘 Session Manager를 사용하세요.
  • SSH 인증, 키 폐기·교체와 접근 기록을 관리하고 정상 관리 접속이 유지되는지 시험하세요.

예시

VPC ID를 실제 값으로 바꾸세요. 인스턴스와 라우팅은 생략했으며, 이전의 넓은 규칙이 배포 후 남지 않도록 확인해야 합니다.

변경 전

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: SSH security group
      VpcId: vpc-0123456789abcdef0
  OpenSSHIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: !Ref InstanceSecurityGroup
      IpProtocol: tcp
      FromPort: 20
      ToPort: 22
      CidrIpv6: "::/0"

TCP 20–22를 모든 IPv6 주소에 허용하므로 SSH도 포함됩니다.

변경 후

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: SSH security group
      VpcId: vpc-0123456789abcdef0
  RestrictedSSHIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: !Ref InstanceSecurityGroup
      IpProtocol: tcp
      FromPort: 22
      ToPort: 22
      CidrIp: 203.0.113.10/32

단일 IPv4 주소의 TCP 22만 허용합니다. 203.0.113.10/32는 문서용 주소이므로 실제 관리 접속의 출발지로 교체하고, 필요한 IPv6 관리 경로는 별도로 제한하세요.

참조