Security Group

Jong_cc·2026년 1월 11일

Security Groups ?
Security Groups는 AWS 네트워크 보안의 근간이다. EC2 인스턴스로 들어오거나 나가는 트래픽을 제어하는 가상 방화벽 역할을 한다.

Allow rules only:
보안 그룹은 오직 허용(Allow) 규칙만 가질 수 있다. 특정 트래픽을 명시적으로 거부(Deny)하는 기능은 없다.

Referencing:
규칙을 설정할 때 특정 IP 범위뿐만 아니라 다른 보안 그룹(Security Group ID)을 참조할 수 있다.

Stateful:
보안 그룹은 상태를 기억한다. Inbound로 들어온 트래픽이 허용되었다면, 돌아나가는 Outbound 트래픽은 설정과 상관없이 자동으로 허용된다.
( 기본적으로 모든 inbound 트래픽 차단, outbound 트래픽 허용 )

Security Groups Deeper Dive
보안 그룹이 구체적으로 어떤 것들을 규제하는지 정리한다.

Traffic Control 메커니즘
Internet ←→ Security Group ←→ EC2 Instance

Control points:
포트(Ports) 접근 권한, 인증된 IP 범위(IPv4, IPv6), 인바운드 및 아웃바운드 네트워크 트래픽을 조절한다.

Outside the EC2:
보안 그룹은 EC2 인스턴스 외부에서 작동한다. 만약 트래픽이 보안 그룹에서 차단된다면, EC2 인스턴스 자체는 해당 트래픽이 왔다는 사실조차 알지 못한다.

Region/VPC Locked: 보안 그룹은 특정 리전과 VPC 조합에 종속된다. 다른 리전으로 복사해서 쓸 수는 없다.

트래픽 허용 기본값 (Default Behavior):

All inbound traffic is blocked by default:
외부에서 들어오는 모든 트래픽은 기본적으로 차단된다. (필요한 것만 열어줘야 함)

All outbound traffic is authorised by default:
인스턴스에서 외부로 나가는 트래픽은 기본적으로 모두 허용된다.

알아둬야 할 중요한 포인트 (Good to know)
실제 운영이나 트러블슈팅 시 유용한 팁들이다.

Attached to multiple instances:
하나의 보안 그룹을 여러 인스턴스에 적용할 수 있고, 반대로 하나의 인스턴스에 여러 보안 그룹을 붙일 수도 있다.

Separate SSH access:
SSH 접속 전용 보안 그룹을 따로 관리하는 것이 보안상 좋다.

Troubleshooting: * Time out:
트래픽이 응답 대기 시간을 초과한다면 높은 확률로 보안 그룹 설정 문제다. (트래픽이 아예 도달하지 못함)

Connection refused:
연결이 거부되었다면 보안 그룹은 통과했지만, 소프트웨어가 실행 중이 아니거나 설정 오류인 경우다.

다른 보안 그룹 참조 (Referencing Other SGs)
IP 주소 대신 보안 그룹 ID를 규칙에 넣는 방식이다.

예를 들어, 보안 그룹 A를 가진 인스턴스가 보안 그룹 B를 참조하는 규칙을 갖고 있다면, 보안 그룹 B를 사용하는 모든 인스턴스의 트래픽을 허용하게 된다.

서버가 늘어나거나 IP가 바뀌어도 보안 그룹 기반으로 통신을 허용하므로 관리가 매우 유연해진다.

  • IP 주소 변경에 관계없이 통신 허용
  • Auto Scaling 환경에서 유용
  • 계층별 보안 구성 가능

Classic Ports to know
네트워크 통신에서 표준으로 쓰이는 포트 번호들이다. 텍스트로 정리해둔다.

Port 22: SSH (Secure Shell) - 리눅스 인스턴스 로그인용.

Port 21: FTP (File Transfer Protocol) - 파일 전송.

Port 22: SFTP (Secure File Transfer Protocol) - SSH 기반 보안 파일 전송.

Port 80: HTTP - 비보안 웹사이트 접속.

Port 443: HTTPS - 보안 웹사이트 접속.

Port 3389: RDP (Remote Desktop Protocol) - 윈도우 인스턴스 원격 로그인용.

SSH Summary (How to access)
리모트 머신을 커맨드 라인으로 제어하기 위해 SSH는 필수다.

Linux / Mac OS X: 터미널에서 ssh 명령어를 통해 바로 접속 가능하다.

Windows: 예전에는 Putty 등을 썼지만, 최신 윈도우는 터미널에서 바로 접속하거나 전용 툴을 사용한다.

가장 중요한 점은 Port 22가 인바운드 보안 그룹에서 열려 있어야 한다는 것이다.

💡 정리하며 (Self-Note)
웹 서비스를 한다면 80(HTTP)443(HTTPS)은 기본으로 열어야 한다.

관리용으로는 22(SSH)3389(RDP)가 필요한데, 보안을 위해 My IP 옵션으로 내 컴퓨터에서만 접속되도록 제한하는 게 국룰이다.

Best Practices

  1. SSH 전용 Security Group 별도 관리
  2. 최소 권한 원칙 적용
  3. 포트별 세분화 규칙 설정
  4. 정기적인 규칙 검토

All inbound traffic is blocked by default라는 점을 항상 명심하자. 설정 안 하면 아무것도 안 들어온다.

  • Security Group 변경사항은 즉시 적용
  • 차단된 트래픽은 EC2 인스턴스에 도달하지 않음
  • 로그 분석 시 Security Group 레벨에서 먼저 확인
profile
능동적인 삶을 위하여

0개의 댓글