AWS 시작하기 2. AWS 보안 그룹

AWS 보안 그룹 (Security Group)“은 AWS의 가상 방화벽으로, EC2 인스턴스 및 다른 AWS 리소스에 대한 네트워크 트래픽을 제어하는 데 사용됩니다.

특정 포트 혹은 IP 등을 제한 할 수 있습니다.
아래는 인바운드 규칙에 22번 포트에 대해 특정 IP만 허용한 것을 나타내는 다이어그램 입니다.

동일한 포트로 접근해도 IP가 달라 인스턴스에 접근이 막힌 것을 확인 할 수 있습니다.

AWS 보안 그룹의 역할과 기능

보안 그룹은 EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 허용하거나 차단하는 역할을 합니다.

각 보안 그룹은 특정 인스턴스에 연결되며, 트래픽 제어 규칙을 정의합니다.

인바운드 규칙 & 아웃바운드 규칙

인바운드 규칙(Inbound Rules)

  • 인스턴스로 들어오는 트래픽을 제어합니다.
  • 예를 들어, 특정 포트(HTTP – 포트 80, HTTPS – 포트 443)를 통해 들어오는 웹 트래픽을 허용할 수 있습니다.

아웃바운드 규칙(Outbound Rules)

  • 인스턴스에서 나가는 트래픽을 제어합니다.

AWS 보안 그룹의 기본 규칙

  • EC2 보안은 ‘allow’ (허용) 규칙만 존재합니다.
  • 보안 그룹은 인바운드 트래픽을 막는 것이 기본 값 입니다.
  • 모든 아웃바운드 트래픽은 허용하는 게 기본 값 입니다.
  • 보안 그룹은 다음과 주고받는 트래픽을 필터링하지 않습니다.
    • Amazon Domain Name Services (DNS)
    • Amazon Dynamic Host Configuration Protocol (DHCP)
    • Amazon EC2 instance metadata
    • Amazon ECS task metadata endpoints
    • License activation for Windows instances
    • Amazon Time Sync Service
    • Reserved IP addresses used by the default VPC router

AWS 보안 그룹 특징

  • 하나의 리소스에 여러 보안 그룹을 할당할 수 있습니다.
  • 설정된 보안 그룹은 여러 인스턴스에 적용할 수 있습니다.
  • 보안 그룹은 stateful*하게 동작합니다.
  • 보안 그룹은 region/VPC 조합으로 제한 됩니다. 다른 리전에서는 또 다른 보안 그룹을 만들거나 다른 VPC를 만들어야 합니다.
  • 보안 그룹은 EC2 인스턴스의 안쪽에 있는 게 아니라 바깥 쪽에 존재합니다.
  • EC2위에서 작동하는 앱을 접근하려는데 Time out이 뜬다면 보안그룹 이슈입니다.

상태 저장(Stateful)

보안 그룹은 상태 저장 방식으로 동작합니다. 이는 인바운드 규칙에 의해 허용된 트래픽이 자동으로 응답 트래픽을 허용한다는 의미입니다.

예를 들어, 인바운드 규칙으로 허용된 SSH 트래픽은 자동으로 그에 대한 응답 트래픽을 허용합니다.

AWS 보안 그룹 명명법 규칙

  • 보안 그룹을 생성할 때 이름과 설명을 제공해야 합니다. 다음 규칙이 적용됩니다
    • 보안 그룹 이름은 VPC 내에서 고유해야 합니다.이름과 설명은 최대 255자까지 가능합니다.
    • 이름과 설명은 최대 255자까지 가능합니다.
    • 이름과 설명은 a-z, A-Z, 0-9, 공백 및 ._-:/()#,@[]+=&;{}!$* 문자로 제한됩니다.
    • 이름에 후행 공백이 포함된 경우 이름 끝의 공백을 자릅니다. 예를 들어 이름으로 “Test Security Group “을 입력하면 “Test Security Group”으로 저장됩니다
    • 보안 그룹 이름은 sg-로 시작할 수 없습니다.

보안 그룹 Best practice

최소 권한 원칙

  • 특정 IAM 보안 주체에게만 보안 그룹을 생성하고 수정할 수 있는 권한을 부여합니다.
  • 오류 위험을 줄이려면 필요한 최소 수의 보안 그룹을 생성하십시오. 각 보안 그룹을 사용하여 유사한 기능 및 보안 요구 사항이 있는 리소스에 대한 액세스를 관리합니다.

설명 필드 사용

  • 각 규칙에 설명을 추가하여 규칙의 목적을 명확히 합니다. 이는 나중에 보안 그룹을 관리할 때 유용합니다.

특정 IP 주소 범위만 승인

  • EC2 인스턴스에 액세스할 수 있도록 포트 22(SSH) 또는 3389(RDP)에 대한 인바운드 규칙을 추가하는 경우 특정 IP 주소 범위만 승인하십시오. 0.0.0.0/0(IPv4) 및 ::/(IPv6)을 지정하면 누구나 지정된 프로토콜을 사용하여 모든 IP 주소에서 인스턴스에 액세스할 수 있습니다.

ACL 생성

  • VPC에 추가 보안 계층을 추가하려면 보안 그룹과 유사한 규칙으로 네트워크 ACL을 생성하는 것이 좋습니다. 보안 그룹과 네트워크 ACL의 차이점에 대한 자세한 내용은 보안 그룹과 네트워크 ACL 비교를 참조하세요.

보안 그룹 설정을 위해 알아야 하는 포트

서비스프로토콜포트 번호용도설명
SSHTCP22원격 서버 접속 및 관리EC2 인스턴스에 보안 접속
HTTPTCP80웹 트래픽웹 서버가 HTTP 요청을 받을 때 사용
HTTPSTCP443암호화된 웹 트래픽HTTPS를 통해 보안 웹 트래픽 처리
FTPTCP21파일 전송FTP를 통해 파일 업로드 및 다운로드
SFTPTCP22보안 파일 전송SSH를 통해 보안 파일 전송
SMTPTCP25, 587, 465이메일 전송SMTP를 통해 이메일 전송
IMAPTCP143, 993이메일 읽기IMAP을 통해 이메일 읽기
POP3TCP110, 995이메일 다운로드POP3를 통해 이메일 다운로드
MySQLTCP3306데이터베이스 접속MySQL 데이터베이스 서버에 접속
PostgreSQLTCP5432데이터베이스 접속PostgreSQL 데이터베이스 서버에 접속
RDPTCP3389원격 데스크탑 접속Windows 서버에 원격 데스크탑 접속
DNSUDP/TCP53DNS 조회 및 전송도메인 이름을 IP 주소로 변환
NTPUDP123시간 동기화네트워크 장치 간 시간 동기화 수행

보안 그룹 설정법

EC2 서비스의 보안 그룹은 “네트워크 및 보안” 메뉴의 “보안 그룹”을 통해 들어갈 수 있습니다.


default는 기본으로 가지는 보안 그룹이며 laucn-wizard-1 보안 그룹은 인스턴스를 생성했을 때 만들어진 보안 그룹 입니다.

보안 그룹의 규칙 변경

EC2 인스턴스에 적용 중인 보안 그룹의 인바운드 규칙을 바꾸고 싶다면 아래와 같이 진행 합니다.

인바운드 규칙 페이지에서 인바운드 규칙을 수정/삭제/추가 할 수 있습니다.

참고하면 좋은 글

Control traffic to your AWS resources using security groups – Amazon Virtual Private Cloud

Leave a Comment

목차