AWS DVA 항해기 - EC2 보안그룹

0

AWS-DVA

목록 보기
6/8

❓EC2 보안 그룹(Security Group, SG)

EC2(정확히는 ENI: 네트워크 인터페이스)에 붙는 상태저장(Stateful) 가상 방화벽

EC2 안팎으로 트래픽이 허용되는 방식을 제어

보안그룹(Security Group)은 허용 규칙만 포함

보안 그룹 규칙은 IP 또는 다른 보안 그룹을 참조하여 정의할 수 있음

인바운드 트래픽(외부에서 EC2 인스턴스로 들어가는 것이 허용되는지)
아웃바운드 트래픽(EC2 인스턴스에서 외부로 나가는 것이 허용되는지) 알려주는 것

보안 그룹이 규제하는 요소

  • 포트
  • 승인된 IP 범위 - IPv4 & IPv6
  • 인바운드(외부에서 인스턴스로 들어오는) 네트워크 제어
  • 아웃바운드(인스턴스에서 외부로 나가는) 네트워크 제어

1) Type (타입)

콘솔에서 고르는 사전 템플릿 / 선택 시 아래 Protocol/Port가 자동 채워지게 됨

예시)

  • SSH → TCP / 22

  • HTTP → TCP / 80

  • HTTPS → TCP / 443

  • Custom TCP/UDP → 직접 포트 입력

  • All TCP / All UDP / All ICMP → 해당 프로토콜 전 포트/코드 허용

  • 팁💡 템플릿은 편의일 뿐이며 실무에선 Custom TCP/UDP로 필요한 포트만 여는 게 안전함

2) Protocol (프로토콜)

트래픽의 전송 프로토콜

  • 자주 쓰는 값

    • TCP: 대부분의 웹/DB(80, 443, 3000, 5432, 3306 …)
    • UDP: DNS(53), 일부 게임/스트리밍/QUIC 등
    • ICMP/ICMPv4/ICMPv6: 핑(ping), 네트워크 진단(포트 개념 없음 → “타입/코드”로 표시)
    • All(-1): 모든 프로토콜 허용(지양)
  • 팁💡: ALB 헬스체크나 NLB/UDP 등 서비스가 실제 쓰는 프로토콜과 일치해야 함.

3) Port range (포트 범위)

허용할 포트(또는 범위).

예시)

  • 22: SSH

  • 80–81: 80과 81 둘 다

  • 3000: 앱 포트 하나

  • 0–65535: 모든 포트(지양)

SG는 Stateful이라서, 인바운드로 443만 열어도 응답 트래픽은 자동 허용됨
→ “응답 포트”를 따로 열 필요 없음.

4) Source (소스) / (아웃바운드에선 Destination)

누구에게서 오는 트래픽을 허용할지를 지정.

지정 방법

  • CIDR: 203.0.113.10/32(단일 IP), 10.0.0.0/16(대역), 0.0.0.0/0(모든 IPv4), ::/0(모든 IPv6)

  • Security Group 참조: “ALB-SG → APP-SG”, “APP-SG → DB-SG”처럼 SG를 소스로 지정
    (IP가 바뀌어도 안전, 마이크로세그멘테이션에 최적)

  • Prefix List: VPC 엔드포인트/온프레 IP 목록 등 재사용 가능한 CIDR 묶음

보안 그룹의 특징

  1. 여러 인스턴스에 연결할 수 있다

  2. 특정 지역과 VPC 조합에만 제한된다(정확히 한 리전의 한 VPC에만 속하고 그 범위에서만 쓸 수 있다=> 다른 지역으로 전환하는 경우 새 보안 그룹을 생성해야 함)

  3. 기본적으로 모든 인바운드 트래픽은 차단되고 모든 아웃바운드 트래픽은 승인됨

다른 보안 그룹을 참조할 때의 이점

IP 주소없이도 다른 인스턴스끼리 통신 가능

반드시 알아야 할 포트

  • 22 = SSH => 리눅스에서 EC2 인스턴스로 로그인
  • 21 = FTP => FTP(포트 21) 로 FTP 서버에 로그인해서, 그 서버가 가리키는 공유 스토리지(공유 폴더) 위치에 파일을 올린다
  • 22 = SFTP => SSH를 통해 파일 업로드
  • 80 = HTTP => 보안되지 않은 웹사이트에 접속
  • 443 = HTTPS => 보안된(SSH 인증서가 적용된) 웹사이트에 접속
  • 3389 = RDP(Remote Desktop Protocol) => 윈도우에 원격 접속할 때 쓰는 프로토콜

보안그룹 생성

아까 EC2를 생성하면서 보안그룹을 생성했었는데 launch-wizard 1이 바로 그 친구다

보안그룹을 클릭하면 상세 정보를 볼 수 있다

profile
숲(구조)을 보는 개발자

0개의 댓글