목차
- VPC 구성
- Subnet
- Route table
- Internet Gateway
- VPC 피어링
- VPN 연결
- 엔드포인트
- 플로그 로우
- Elastic IP
- VPC 보안
- Network Access Control List(NACL)
- 보안 그룹
- NACL vs 보안 그룹
- VPC 보안 통제
- 아키텍처 티어
VPC 보안
Amazon 가상 프라이빗 클라우드(VPC)의 보안 개념은 리소스를 시작하고 사용할 수 있는 안전한 프라이빗 가상 네트워크 환경을 제공하는 것을 중심으로 합니다. 이러한 보안 환경은 AWS에서 제공하는 네트워킹, 액세스 제어 및 감사 기능의 조합을 사용하여 달성됩니다.
1. Network Access Control List(NACL)
Amazon VPC의 NACL(Network Access Control List, 네트워크 액세스 제어 목록)은 하나 이상의 서브넷에 들어오고 나가는 트래픽을 제어하기 위한 방화벽 역할을 하는 선택적 보안 계층입니다.
NACL에는 번호가 매겨진 규칙 기반 '허용' 및 '거부' 규칙 세트가 포함되어 있으며, Amazon VPC는 NACL과 연결된 서브넷에 들어오거나 나가는 모든 트래픽에 적용합니다. 규칙은 가장 낮은 번호부터 순서대로 처리되며, 트래픽 유형과 일치하는 첫 번째 규칙에 따라 트래픽의 허용 또는 거부 여부가 결정됩니다.
다음은 NACL의 몇 가지 주요 특징입니다.
- Stateless
상태 저장 방식의 보안 그룹과 달리 NACL은 상태 비저장 방식입니다. 즉, 인바운드 및 아웃바운드 트래픽이 별도로 처리됩니다. 반환 트래픽은 규칙에서 명시적으로 허용해야 합니다. - Default NACL
모든 VPC에는 모든 인바운드 및 아웃바운드 IPv4 트래픽을 허용하는 기본 NACL이 함께 제공됩니다. 새 사용자 지정 NACL을 만들면 기본적으로 규칙을 추가할 때까지 모든 인바운드 및 아웃바운드 트래픽을 거부합니다. - Rule Processing
규칙은 번호가 가장 낮은 규칙부터 평가됩니다. 규칙이 트래픽과 일치하면 모순될 수 있는 더 높은 번호의 규칙에 관계없이 규칙이 적용됩니다. - Rule Limit
NACL당 최대 20개의 인바운드 및 20개의 아웃바운드 규칙을 만들 수 있습니다. 그러나 이러한 제한은 늘릴 수 있습니다. - Separate Inbound and Outbound Rules
각 NACL에는 별도의 인바운드 및 아웃바운드 규칙이 포함되며, 각 규칙은 트래픽을 허용하거나 거부할 수 있습니다. - Association with Subnets
VPC의 각 서브넷은 NACL과 연결되어야 합니다. 서브넷을 NACL에 명시적으로 연결하지 않으면 서브넷이 자동으로 기본 NACL에 연결됩니다.
NACL과 보안 그룹은 함께 작동하여 VPC에 계층화된 보안을 제공할 수 있으며, NACL은 서브넷 수준에서 거시적 제어를 제공하고 보안 그룹은 인스턴스 수준에서 세분화된 제어를 제공한다는 점에 유의하세요.
보안 그룹
Amazon VPC(Virtual Private Cloud, 가상 프라이빗 클라우드)의 보안 그룹은 인바운드 및 아웃바운드 트래픽을 제어하기 위해 인스턴스의 가상 방화벽 역할을 합니다. 보안 그룹은 EC2 인스턴스와 연결되며 서브넷 수준이 아닌 인스턴스 수준에서 작동합니다. 따라서 VPC의 서브넷에 있는 각 인스턴스는 서로 다른 보안 그룹 세트에 할당될 수 있습니다.
다음은 보안 그룹에 대한 몇 가지 핵심 사항입니다.
- 스테이트풀(Stateful): 보안 그룹은 스테이트풀이므로 인스턴스에서 요청을 보내면 인바운드 보안 그룹 규칙에 관계없이 해당 요청에 대한 응답 트래픽이 유입되도록 허용됩니다. 마찬가지로 인스턴스로의 인바운드 트래픽을 허용하면 아웃바운드 규칙에 관계없이 해당 트래픽이 자동으로 다시 허용됩니다.
- 규칙(Rules): 각 보안 그룹에 연결된 인스턴스와의 트래픽을 허용하는 규칙을 추가할 수 있습니다. 인바운드(인그레스) 및 아웃바운드(엑그레스) 트래픽에 대한 규칙을 구성할 수 있습니다.
- 기본 보안 그룹(Default Security Group): 모든 VPC에는 기본 보안 그룹이 제공됩니다. 시작할 때 보안 그룹을 지정하지 않으면 인스턴스가 자동으로 기본 보안 그룹에 연결됩니다.
- 할당(Assignments): 인스턴스에 최대 5개의 보안 그룹을 할당할 수 있습니다. 보안 그룹은 허용형이므로 트래픽을 허용하는 규칙이 트래픽을 거부하는 모든 규칙보다 우선합니다.
- 애플리케이션 변경(Change Application): 보안 그룹에 대한 변경 사항은 즉시 적용됩니다. 새 규칙을 적용하기 위해 인스턴스를 다시 시작하거나 다른 종류의 추가 변경을 할 필요가 없습니다.
- IP 범위(IP Ranges): 보안 그룹 규칙은 CIDR 표기법, 다른 보안 그룹 또는 둘 다를 통해 서로 다른 IP 주소 범위를 참조할 수 있습니다.
- 규칙 유형(Rule Types): 각 규칙에 대해 프로토콜, 포트 범위, 소스(인바운드 규칙의 경우) 또는 대상(아웃바운드 규칙의 경우)을 지정할 수 있습니다.
보안 그룹은 인바운드 및 아웃바운드 통신 측면에서 인스턴스에 대한 액세스를 관리할 수 있는 강력한 도구를 제공합니다. 정확한 규칙을 설정하여 애플리케이션을 위한 안전한 환경을 만들 수 있습니다.
NACL vs 보안 그룹
네트워크 액세스 제어 목록(NACL)과 보안 그룹은 모두 AWS VPC 보안의 중요한 구성 요소이지만, 서로 다른 방식과 네트워크 수준에서 작동합니다. 다음은 두 가지를 비교한 것입니다:
- 범위
NACL은 서브넷 수준에서 작동하므로 연결된 서브넷의 모든 인스턴스에 적용됩니다. 반면에 보안 그룹은 인스턴스 수준에서 작동하며 인스턴스가 속한 서브넷에 관계없이 각 인스턴스에 개별적으로 적용될 수 있습니다. - 상태 저장
보안 그룹은 스테이트풀이므로 특정 소스에서 들어오는 트래픽을 허용하면 나가는 응답 트래픽도 자동으로 허용되며, 그 반대의 경우도 마찬가지입니다. 이와 대조적으로 NACL은 상태가 없으므로 세션의 상태를 추적하지 않습니다. 들어오는 트래픽을 허용하는 경우 나가는 응답 트래픽도 명시적으로 허용해야 합니다. - 규칙
NACL과 보안 그룹 모두 인바운드 및 아웃바운드 트래픽에 대한 허용 또는 거부 규칙을 정의할 수 있습니다. 그러나 NACL을 사용하면 일치하는 규칙이 발견될 때까지 순서대로(가장 낮은 것부터 가장 높은 것까지) 평가되는 번호가 매겨진 규칙을 설정할 수 있습니다. 보안 그룹에는 번호가 매겨진 규칙이 없으며 모든 규칙이 동시에 평가됩니다. - 기본 동작
기본적으로 보안 그룹은 모든 아웃바운드 트래픽을 허용하고 모든 인바운드 트래픽을 거부합니다. NACL의 경우 기본적으로 인바운드 및 아웃바운드 트래픽이 모두 허용됩니다. - 거부 규칙
보안 그룹은 "허용" 규칙만 허용하므로 트래픽을 명시적으로 거부할 수 없고 허용하지 않을 수 있습니다. 반면 NACL은 "허용" 및 "거부" 규칙을 모두 포함할 수 있으므로 트래픽을 보다 세밀하게 제어할 수 있습니다. - 규칙 유형
NACL과 보안 그룹 모두 IP 프로토콜, CIDR 블록 및 포트 번호를 기반으로 규칙을 지정할 수 있습니다. 그러나 보안 그룹을 사용하면 다른 보안 그룹을 기반으로 하는 규칙도 만들 수 있습니다.
본질적으로 NACL은 서브넷 수준에서 광범위한 1차 방어선을 제공하는 반면, 보안 그룹은 보다 세분화된 인스턴스 수준 제어를 제공합니다. 가장 좋은 방법은 이 두 가지를 함께 사용하여 계층화된 보안을 구현하는 것입니다.
VPC 보안 통제
Amazon VPC(가상 프라이빗 클라우드)는 보안을 제어하고 리소스 및 정보에 대한 엄격한 액세스 제어를 유지하는 데 도움이 되는 다양한 기능을 제공합니다. 다음은 VPC의 주요 보안 제어 기능에 대한 개요입니다:
- 보안 그룹
보안 그룹은 인스턴스에서 인바운드 및 아웃바운드 트래픽을 제어하기 위한 상태 저장 가상 방화벽 역할을 합니다. 인바운드 및 아웃바운드 트래픽에 대해 별도의 규칙을 지정할 수 있습니다. - 네트워크 액세스 제어 목록(NACL)
서브넷 수준에서 상태 비저장 방화벽 역할을 하며, VPC 내 하나 이상의 서브넷에 대한 인바운드 및 아웃바운드 트래픽을 모두 제어합니다. - 플로우 로그
VPC 플로우 로그는 VPC의 네트워크 인터페이스를 오가는 IP 트래픽에 대한 정보를 캡처할 수 있는 기능입니다. 이는 진단 및 문제 해결 목적과 규정 준수 요건을 충족하는 데 유용할 수 있습니다. - 라우트 테이블
라우트 테이블에는 네트워크 트래픽이 전달되는 위치를 결정하는 데 사용되는 라우트라는 규칙 집합이 포함되어 있습니다. 모든 아웃바운드 트래픽과 같은 특정 유형의 트래픽이 특정 네트워크 게이트웨이 또는 연결을 통과하도록 지시하는 규칙을 설정할 수 있습니다. - VPC 피어링
VPC 피어링을 사용하면 개인 IP 주소를 사용하여 서로 간에 트래픽을 라우팅할 수 있는 방식으로 한 VPC를 다른 VPC와 연결할 수 있습니다. 모든 VPC 간 트래픽은 암호화되며 전적으로 AWS 네트워크 내에 유지되므로 VPC 간의 안전한 통신 방법을 제공합니다. - 엔드포인트 정책
VPC 엔드포인트 정책은 VPC 엔드포인트가 연결되는 서비스에 대한 세분화된 액세스 제어를 제공합니다. 이를 통해 특정 작업, 특정 리소스에만 액세스를 제한하거나 특정 IAM 역할 또는 사용자의 요청만 허용할 수 있습니다. - ID 및 액세스 관리(IAM)
IAM을 사용하면 AWS 서비스 및 리소스에 대한 액세스를 안전하게 관리할 수 있습니다. IAM을 사용하면 AWS 사용자 및 그룹을 생성 및 관리하고, 권한을 사용하여 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있습니다. - 사설 서브넷 및 VPN 액세스
VPC에서 인터넷에 직접 액세스할 수 없는 사설 서브넷을 설정할 수 있습니다. 이러한 사설 서브넷의 경우 VPN 또는 AWS 다이렉트 커넥트를 사용하여 온프레미스 네트워크에서 이러한 리소스에 안전하게 액세스할 수 있습니다.
VPC의 이러한 보안 제어는 권한이 부여된 사용자와 트래픽만 인스턴스와 인스턴스 내의 데이터에 액세스할 수 있도록 보장하며, 강력하고 세분화된 제어를 통해 VPC 내의 보안 환경을 유지할 수 있습니다.
아케텍처 티어
아키텍처 티어는 시스템 또는 애플리케이션의 구성 요소가 역할과 상호 작용 측면에서 어떻게 구성되어 있는지에 관한 것입니다. 각 계층(티어)의 특징은 다음과 같습니다.
- 단일 계층 아키텍처(One-Tier Architecture)
단일 계층 아키텍처에서는 데이터베이스, 프론트엔드, 백엔드, 비즈니스 로직, 사용자 인터페이스 등과 같은 모든 필수 구성 요소가 결합되어 동일한 컴퓨터에서 실행됩니다. 이 방식은 간단하고 유지 관리가 쉽지만 복잡한 애플리케이션에는 적합하지 않습니다. 주로 성능이 중요한 요소가 아닌 작고 간단한 애플리케이션에 사용됩니다. - 2계층 아키텍처(Two-Tier Architecture)
2계층 아키텍처에서는 애플리케이션이 클라이언트와 서버의 두 부분으로 나뉩니다. 클라이언트에는 사용자 인터페이스와 클라이언트 측 비즈니스 로직이 포함되어 있고 서버에는 서버 측 비즈니스 로직과 데이터베이스가 포함되어 있습니다. 클라이언트는 데이터베이스에 액세스해야 할 때마다 서버와 통신합니다. 이 아키텍처는 클라이언트와 서버가 별도의 물리적 컴퓨터에 상주하는 소규모 애플리케이션에서 자주 사용됩니다. - 3계층 아키텍처(Three-Tier Architecture)
3계층 아키텍처에서는 시스템이 프레젠테이션 계층(사용자 인터페이스), 애플리케이션 계층(비즈니스 로직), 데이터 계층(데이터베이스)의 세 계층으로 나뉩니다. 각 계층은 일반적으로 물리적으로 분리되어 있으며 서로 다른 컴퓨터에서 실행됩니다. 이 아키텍처는 1계층 또는 2계층 아키텍처에 비해 향상된 성능, 유연성, 확장성 및 보안을 제공합니다. 3계층 아키텍처는 웹 브라우저가 프레젠테이션 계층, 애플리케이션 서버가 비즈니스 로직, 데이터베이스 서버가 데이터 계층으로 기능하는 웹 애플리케이션에서 일반적으로 사용됩니다.
요약하자면, 1티어, 2티어, 3티어 아키텍처의 '티어'는 시스템 또는 애플리케이션 내의 논리적 책임 분담을 나타냅니다. 아키텍처 선택은 애플리케이션의 복잡성, 성능 요구 사항 및 확장성 요구 사항에 따라 달라집니다.
'AWS' 카테고리의 다른 글
[AWS Cloud] User 및 Group생성하기(IAM) (0) | 2023.05.17 |
---|---|
[AWS Cloud] EC2 인스턴스 생성하기 (0) | 2023.05.17 |
[AWS Cloud] AWS VPC 관리하기 (0) | 2023.05.17 |
[AWS 클라우드] S3 Browser 다운로드 (0) | 2023.05.16 |
[AWS 클라우드] AWS VPC 구성 (1) (0) | 2023.05.16 |