본문 바로가기
AWS/SAA

[AWS/EC2] EC2 인스턴스의 보안 그룹 이해하기

by jonnwon 2024. 5. 22.
728x90
반응형

개요

AWS EC2 인스턴스의 보안 그룹은 네트워크 트래픽을 제어하는 중요한 역할을 한다. 이번 포스트에서는 보안 그룹의 개념과 구성 요소, 그리고 이를 효과적으로 활용할 수 있도록 알아보고자 한다.

보안 그룹이란?

보안 그룹은 AWS 클라우드에서 네트워크 보안을 실행하는 핵심 도구로, EC2 인스턴스에 들어오고 나가는 트래픽을 제어한다. 보안 그룹은 허용 규칙만 포함하며, 허용된 트래픽만 EC2 인스턴스에 접근할 수 있다. 보안 그룹 규칙은 IP 또는 다른 보안 그룹을 참조할 수 있다.

보안 그룹의 구성 요소

  1. 인바운드 규칙: 외부에서 EC2 인스턴스로 들어오는 트래픽을 제어한다.
  2. 아웃바운드 규칙: EC2 인스턴스에서 외부로 나가는 트래픽을 제어한다.
  3. 프로토콜: TCP, UDP, ICMP 등 다양한 프로토콜을 설정할 수 있다.
  4. 포트 범위: 트래픽이 통과할 수 있는 포트 범위를 지정한다.
  5. 소스 IP: 허용된 IP 주소 범위를 지정한다. 0.0.0.0/0은 모든 IP 주소를 의미한다.

보안 그룹의 주요 특징

  • 인스턴스 간 연결: 여러 인스턴스에 동일한 보안 그룹을 연결할 수 있다.
  • 지역 및 VPC: 보안 그룹은 특정 지역과 VPC 내에서만 유효하다.
  • 외부 방화벽: 보안 그룹은 EC2 인스턴스 외부에 위치하여 트래픽을 제어한다.
  • SSH 접근: SSH 접근을 위해 별도의 보안 그룹을 유지하는 것이 좋다.
  • 트래픽 차단: 모든 인바운드 트래픽은 기본적으로 차단되고, 모든 아웃바운드 트래픽은 기본적으로 허용된다.

보안 그룹 심층 분석

보안 그룹은 EC2 인스턴스에서 "방화벽" 역할을 한다. 다음과 같은 사항을 규제한다:

  • 포트 접근: 특정 포트에 대한 접근을 허용 또는 차단한다.
  • 허용된 IP 범위: IPv4 및 IPv6 주소 범위를 지정하여 접근을 제어한다.
  • 인바운드 트래픽 제어: 외부에서 인스턴스로 들어오는 네트워크 트래픽을 제어한다.
  • 아웃바운드 트래픽 제어: 인스턴스에서 외부로 나가는 네트워크 트래픽을 제어한다.

보안 그룹 설정 예시

  • SSH 접근 허용: 포트 22에서 SSH 트래픽을 허용하여 특정 IP에서만 접근할 수 있도록 설정한다.
  • HTTP 트래픽 허용: 포트 80에서 HTTP 트래픽을 허용하여 웹 서버로의 접근을 허용한다.
  • HTTPS 트래픽 허용: 포트 443에서 HTTPS 트래픽을 허용하여 보안된 웹 서버로의 접근을 허용한다.

보안 그룹 활용 방법

보안 그룹을 활용하여 EC2 인스턴스의 네트워크 트래픽을 효과적으로 관리할 수 있다. 예를 들어, 인스턴스에 연결된 보안 그룹의 인바운드 규칙을 통해 외부에서 인스턴스로 접근할 수 있는 트래픽을 제한하고, 필요한 포트와 프로토콜을 허용한다.

고급 보안 그룹 사용

  • 보안 그룹 참조(security group reference): 다른 보안 그룹을 참조하여 복잡한 네트워크 규칙을 설정할 수 있다. 예를 들어, 보안 그룹 1의 인바운드 규칙에서 보안 그룹 2의 트래픽을 허용하면, 보안 그룹 2에 연결된 모든 인스턴스가 보안 그룹 1에 연결된 인스턴스와 통신할 수 있다.

보안 그룹 설정 시 유의 사항

  • 여러 인스턴스에 연결 가능: 하나의 보안 그룹을 여러 인스턴스에 연결할 수 있다.
  • 지역 및 VPC에 고정: 보안 그룹은 특정 지역과 VPC 내에서만 유효하다.
  • EC2 인스턴스 외부에 위치: 보안 그룹은 EC2 인스턴스 외부에 위치하여 트래픽을 제어한다. 트래픽이 차단되면 EC2 인스턴스는 이를 인식하지 못한다.
  • SSH 접근을 위한 별도 보안 그룹 유지: SSH 접근을 위해 별도의 보안 그룹을 유지하는 것이 좋다.
  • 타임아웃과 연결 거부 에러 구분: 애플리케이션에 접근할 수 없고 타임아웃이 발생하면 보안 그룹 문제이고, 연결 거부 오류가 발생하면 애플리케이션 문제거나 실행되지 않았음을 의미한다.

포트 및 프로토콜

  • SSH (포트 22): Linux 인스턴스에 로그인하기 위한 시큐어 셸.
  • FTP (포트 21): 파일 전송 프로토콜.
  • SFTP (포트 22): SSH를 사용한 보안 파일 전송 프로토콜.
  • HTTP (포트 80): 보안되지 않은 웹사이트 접근.
  • HTTPS (포트 443): 보안된 웹사이트 접근.
  • RDP (포트 3389): Windows 인스턴스에 로그인하기 위한 원격 데스크톱 프로토콜.

보안 그룹 구성 예시

1. SSH 보안 그룹 설정:

  • 포트: 22
  • 프로토콜: TCP
  • 소스 IP: 특정 IP 주소 (예: 203.0.113.0/24)

2. 웹 서버 보안 그룹 설정:

  • HTTP (포트 80):
    • 프로토콜: TCP
    • 소스 IP: 0.0.0.0/0
  • HTTPS (포트 443):
    • 프로토콜: TCP
    • 소스 IP: 0.0.0.0/0

결론

AWS EC2 인스턴스의 보안 그룹은 네트워크 트래픽을 제어하는 중요한 도구로, 효과적인 보안 설정을 통해 인스턴스와 애플리케이션을 보호할 수 있다. 보안 그룹의 기본 원칙과 주요 특징을 이해함으로써, AWS 환경에서의 네트워크 보안을 강화할 수 있다.

 

 

 

참고

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/security-group-rules.html

728x90