AWS에서 EC2를 생성하면서 설정해야 하는 항목 중에는 보안 그룹(Securiy Group)이 있습니다. 이번에는 이 보안 그룹이 무엇이고 어떻게 설정할 수 있는지 알아보려고 합니다.
보안 그룹(Security Group)이란 AWS 클라우드에서의 네트워크 보안을 의미합니다.
보안 그룹(Security Group)은 AWS 클라우드 인프라에서 네트워크 트래픽을 제어하는 가상 방화벽 역할을 합니다. 이를 통해 EC2 인스턴스와 같은 AWS 리소스에 대한 인바운드(들어오는) 및 아웃바운드(나가는) 네트워크 트래픽을 허용하거나 차단할 수 있습니다.
보안 그룹을 집의 울타리와 대문에 비유할 수 있습니다.
예를 들어, 대문을 열어둔 상태(포트를 허용)에서는 외부 사용자가 특정 경로를 통해 집 안으로 들어올 수 있지만, 대문이 닫혀 있다면 접근이 차단됩니다.
트래픽 제어
보안 그룹은 다음 두 가지 유형의 트래픽을 관리합니다:
규칙 기반 제어
보안 그룹은 허용(Allow) 규칙만 지원하며, 특정 IP 주소 범위와 포트 번호를 기반으로 트래픽을 허용할 수 있습니다.
참고: 명시적으로 차단(Deny) 규칙은 설정할 수 없으며, 허용되지 않은 모든 트래픽은 기본적으로 차단됩니다.
상태 저장(Stateful)
보안 그룹은 상태 저장(Stateful)이므로, 인바운드 요청이 허용되면 해당 요청에 대한 응답은 자동으로 허용됩니다.
탄력적 적용
보안 그룹은 여러 EC2 인스턴스에 동시에 적용할 수 있으며, 하나의 EC2 인스턴스에도 여러 보안 그룹을 적용할 수 있습니다.
보안 그룹 설정 시 다음 요소를 정의해야 합니다:
IP 범위
192.168.1.0/24
)을 통해 접근을 허용하거나 제한할 수 있습니다. 프로토콜
포트
설명(Comment)
아래는 보안 그룹의 설정 예시입니다:
프로토콜 | 포트 범위 | 소스 IP/CIDR 블록 | 설명 |
---|---|---|---|
TCP | 22 | 203.0.113.0/24 | SSH 접근 허용 |
TCP | 80 | 0.0.0.0/0 | HTTP 트래픽 허용 |
TCP | 443 | 0.0.0.0/0 | HTTPS 트래픽 허용 |
기본적으로 모든 아웃바운드 트래픽은 허용됩니다. 필요 시 특정 범위로 제한 가능합니다.
보안 그룹 이름과 설명을 작성한 후 22번(ssh) 포트로 들어오는 모든 요청과 80번(HTTP) 포트로 들어오는 모든 요청을 허용해 주었습니다.
최소 권한 원칙 적용
고정된 IP 사용 권장
CIDR 블록 주의
0.0.0.0/0
는 모든 IP를 허용하므로, 사용할 경우 반드시 주의가 필요합니다. 특히 SSH(포트 22)를 열어두는 것은 보안 위험을 초래할 수 있습니다. 모니터링
네트워크 ACL
IAM 역할 및 정책