cloud
AWS VPC(Virtual Private Cloud)에서는 다양한 계층에서 트래픽을 제어할 수 있는 보안 기능을 제공합니다. 그중 보안그룹(Security Group) 은 인스턴스 단위에서 동작하며, VPC 내 서비스에 접근할 수 있는 트래픽을 가장 세밀하게 제어하는 핵심 요소입니다. 쉽게 설명하면, 보안그룹은 각 인스턴스에 설치된 ‘개별 현관문 자물쇠’ 역할을 합니다.
보안그룹은 EC2 인스턴스, ENI(Elastic Network Interface), 로드밸런서 등 리소스 단위에서 동작하는 방화벽입니다. 서브넷 전체를 일괄적으로 제어하는 네트워크 ACL과 달리, 보안그룹은 특정 인스턴스에 대해 어떤 트래픽이 들어올 수 있는지 매우 세밀하게 설정할 수 있습니다.
예를 들어, 같은 서브넷에 위치한 두 서버라 하더라도 보안그룹을 다르게 설정하면 서로 다른 접근 정책을 가질 수 있습니다. A 서버에는 SSH(22번)만 허용하고, B 서버에는 HTTP(80번)와 HTTPS(443번)만 허용하는 식으로 개별 제어가 가능하죠.
보안그룹은 애플리케이션별로 필요한 포트만 열고 나머지는 모두 차단하는 화이트리스트 기반 보안 모델을 제공합니다. 또한 보안그룹은 기본적으로 모든 트래픽이 차단되어 있으며, 관리자가 명시적으로 허용 규칙을 추가해야만 통신이 가능합니다.
이러한 구조 덕분에 보안그룹은 서버 단위의 필요한 연결만 노출하고, 불필요한 접근을 제거하는 데 매우 유용합니다.
보안그룹에는 AWS 네트워크 보안에서 중요한 몇 가지 특성이 있습니다.
보안그룹은 인스턴스 또는 네트워크 인터페이스에 직접 붙습니다.
따라서 같은 서브넷에 배치된 인스턴스라도 각기 다른 보안 정책을 가질 수 있습니다.
보안그룹은 Stateful(상태 저장) 구조이기 때문에, Inbound 요청이 허용되면 그에 대한 Outbound 응답은 별도 규칙 없이도 자동으로 허용됩니다. 예를 들어, 80번 포트 Inbound만 허용하더라도 서버가 그 요청에 대해 응답하는 Outbound 트래픽은 자동 승인됩니다.
이것이 ACL과의 가장 중요한 차이입니다. ACL은 Stateless하기 때문에 Inbound와 Outbound를 각각 따로 허용해야 하며, Inbound를 허용했다고 해서 Outbound 응답이 자동으로 허용되지 않습니다. 따라서 ACL에서는 동일한 연결에 대해 두 방향을 모두 설정해야 합니다.
이 차이 때문에 보안그룹은 설정이 더 직관적이며 관리가 단순합니다.
보안그룹은 Deny 규칙을 지원하지 않습니다.
즉, “특정 IP는 막아라”와 같은 명시적 차단 규칙은 작성할 수 없으며, 허용 규칙이 없으면 자동으로 차단됩니다.
기본 Outbound는 모든 트래픽 허용이지만, 필요할 경우 인스턴스에서 외부로 나가는 트래픽도 제한할 수 있습니다.
AWS에서는 한 인스턴스에 최대 5개의 보안그룹을 할당할 수 있습니다.
각 보안그룹의 허용 규칙은 합집합 형태로 적용됩니다.
보안그룹과 네트워크 ACL은 모두 AWS VPC에서 트래픽을 제어하는 방화벽 역할을 하지만, 적용 범위와 동작 모델이 다릅니다.
두 보안 모델은 대체 관계가 아니며, 실무에서는 보안그룹과 ACL을 조합하여 레이어드(Layered) 보안을 구성합니다.
예를 들어, ACL에서는 서브넷 레벨에서 외부 IP 대역을 일차적으로 필터링하고 보안그룹에서는 인스턴스별 서비스 포트를 세밀하게 허용하거나, ACL은 전체 허용하고 보안그룹에서 화이트 IP 리스트로 관리할 수도 있습니다.
이런 구조로 운영하면 보안 사고에 대한 방어력을 크게 높일 수 있습니다.
| 구분 | 보안그룹(Security Group) | 네트워크 ACL |
|---|---|---|
| 적용 범위 | 인스턴스 단위 | 서브넷 단위 |
| 상태성 | Stateful | Stateless |
| 규칙 종류 | Allow만 가능 | Allow & Deny 모두 가능 |
| 평가 방식 | 모든 규칙을 동시에 평가 | 규칙 번호 순서대로 평가 |
| 기본 동작 | 모든 트래픽 차단 | 모든 트래픽 차단 |
| 활용 목적 | 인스턴스 세밀 제어 | 네트워크 전반 기본 정책 적용 |
보안그룹은 AWS VPC에서 인스턴스 단위의 접근 제어를 담당하는 핵심 보안 기능입니다. Stateful 구조로 설정이 간단하며, 필요한 트래픽만 명시적으로 허용하는 방식으로 작동합니다. 서브넷 단위에서 포괄적인 정책을 담당하는 ACL과 함께 적용하면, VPC 환경은 더욱 안전한 네트워크 체계를 갖출 수 있습니다. 결론적으로 보안그룹은 개별 서버의 “현관문 잠금장치”이며, ACL은 “건물 외곽 울타리”에 해당합니다. 두 기능을 조합하면 AWS 환경에서 보다 견고하고 체계적인 보안 체계를 구축할 수 있습니다.