AWS - VPC & Networking Basic Information

Support HackTricks

AWS Networking in a Nutshell

VPC는 10.0.0.0/16과 같은 네트워크 CIDR(라우팅 테이블네트워크 ACL 포함)을 포함합니다.

이 VPC 네트워크는 서브네트워크로 나뉘며, 서브네트워크VPC, 라우팅 테이블네트워크 ACL과 직접 연결됩니다.

그런 다음, 서비스(예: EC2 인스턴스)에 연결된 네트워크 인터페이스보안 그룹과 함께 서브네트워크연결됩니다.

따라서, 보안 그룹서브네트워크독립적으로 네트워크 인터페이스의 노출된 포트를 제한합니다. 그리고 네트워크 ACL전체 네트워크에 노출된 포트를 제한합니다.

또한, 인터넷에 접근하기 위해 확인해야 할 몇 가지 흥미로운 구성 요소가 있습니다:

  • 서브네트워크공용 IPv4 주소를 자동 할당할 수 있습니다.

  • IPv4 주소를 자동 할당하는 네트워크에서 생성된 인스턴스는 하나를 받을 수 있습니다.

  • 인터넷 게이트웨이VPC연결되어야 합니다.

  • Egress-only 인터넷 게이트웨이를 사용할 수도 있습니다.

  • 프라이빗 서브넷NAT 게이트웨이를 두어 프라이빗 서브넷에서 외부 서비스에 연결할 수 있지만, 외부에서 접근할 수는 없습니다.

  • NAT 게이트웨이는 공용(인터넷 접근) 또는 프라이빗(다른 VPC 접근)일 수 있습니다.

VPC

Amazon Virtual Private Cloud (Amazon VPC)는 사용자가 정의한 가상 네트워크에 AWS 리소스를 시작할 수 있게 합니다. 이 가상 네트워크는 여러 서브넷, 인터넷 게이트웨이, ACL, 보안 그룹, IP 등을 포함합니다.

Subnets

서브넷은 더 높은 수준의 보안을 강화하는 데 도움이 됩니다. 유사한 리소스의 논리적 그룹화는 인프라 전반에 걸쳐 관리의 용이성을 유지하는 데 도움이 됩니다.

  • 유효한 CIDR은 /16 넷마스크에서 /28 넷마스크까지입니다.

  • 서브넷은 동시에 다른 가용 영역에 있을 수 없습니다.

  • AWS는 각 서브넷의 첫 세 호스트 IP 주소를 내부 AWS 사용을 위해 예약합니다: 첫 번째 호스트 주소는 VPC 라우터에 사용됩니다. 두 번째 주소는 AWS DNS에 예약되어 있으며 세 번째 주소는 미래 사용을 위해 예약되어 있습니다.

  • 공용 서브넷은 인터넷에 직접 접근할 수 있는 서브넷을 의미하며, 프라이빗 서브넷은 그렇지 않습니다.

Route Tables

라우팅 테이블은 VPC 내 서브넷의 트래픽 라우팅을 결정합니다. 인터넷 또는 VPN 연결로 전달되는 네트워크 트래픽을 결정합니다. 일반적으로 다음에 대한 접근을 찾을 수 있습니다:

  • 로컬 VPC

  • NAT

  • 인터넷 게이트웨이 / Egress-only 인터넷 게이트웨이 (VPC에 인터넷 접근을 제공하는 데 필요)

  • 서브넷을 공용으로 만들려면 인터넷 게이트웨이를 생성하고 VPC에 연결해야 합니다.

  • VPC 엔드포인트 (프라이빗 네트워크에서 S3에 접근하기 위해)

다음 이미지에서 기본 공용 네트워크와 프라이빗 네트워크의 차이점을 확인할 수 있습니다:

ACLs

Network Access Control Lists (ACLs): 네트워크 ACL은 서브넷으로 들어오고 나가는 네트워크 트래픽을 제어하는 방화벽 규칙입니다. 특정 IP 주소 또는 범위에 대한 트래픽을 허용하거나 차단하는 데 사용할 수 있습니다.

  • 보안 그룹을 사용하여 접근을 허용/차단하는 것이 가장 일반적이지만, 이는 이미 설정된 역방향 셸을 완전히 차단하는 유일한 방법입니다. 보안 그룹의 수정된 규칙은 이미 설정된 연결을 중지하지 않습니다.

  • 그러나 이는 전체 서브네트워크에 적용되므로 필요한 기능이 방해받을 수 있으므로 주의해야 합니다.

Security Groups

보안 그룹은 VPC 내 인스턴스에 대한 인바운드 및 아웃바운드 네트워크 트래픽을 제어하는 가상 방화벽입니다. 1 SG에서 M 인스턴스(일반적으로 1:1)로의 관계입니다. 일반적으로 인스턴스에서 포트 22와 같은 위험한 포트를 열기 위해 사용됩니다:

Elastic IP Addresses

_Elastic IP address_는 동적 클라우드 컴퓨팅을 위해 설계된 정적 IPv4 주소입니다. Elastic IP 주소는 AWS 계정에 할당되며, 해제할 때까지 사용자의 것입니다. Elastic IP 주소를 사용하면 인스턴스 또는 소프트웨어의 실패를 신속하게 다른 인스턴스로 재매핑하여 마스킹할 수 있습니다.

Connection between subnets

기본적으로 모든 서브넷은 공용 IP 주소 자동 할당이 꺼져 있지만 켤 수 있습니다.

라우팅 테이블 내의 로컬 경로는 VPC 서브넷 간의 통신을 가능하게 합니다.

다른 서브넷과 연결된 서브넷에 접근할 수 없으며, 직접 연결을 생성해야 합니다. 이것은 인터넷 게이트웨이에도 적용됩니다. 서브넷 연결을 통해 인터넷에 접근할 수 없으며, 인터넷 게이트웨이를 서브넷에 할당해야 합니다.

VPC Peering

VPC 피어링을 통해 두 개 이상의 VPC를 연결할 수 있으며, IPV4 또는 IPV6을 사용하여 동일한 네트워크의 일부인 것처럼 연결할 수 있습니다.

피어 연결이 설정되면, 한 VPC의 리소스가 다른 VPC의 리소스에 접근할 수 있습니다. VPC 간의 연결은 기존 AWS 네트워크 인프라를 통해 구현되므로 대역폭 병목 현상이 없는 고가용성을 제공합니다. 피어 연결은 동일한 네트워크의 일부인 것처럼 작동하므로, 사용할 수 있는 CIDR 블록 범위에 제한이 있습니다. 중복되거나 중첩된 CIDR 범위가 있는 경우 VPC를 피어링할 수 없습니다. 각 AWS VPC는 자신의 피어와만 통신합니다. 예를 들어, VPC 1과 VPC 2 간의 피어링 연결이 있고, VPC 2와 VPC 3 간의 연결이 있는 경우, VPC 1과 2는 직접 통신할 수 있으며, VPC 2와 VPC 3도 직접 통신할 수 있지만, VPC 1과 VPC 3은 통신할 수 없습니다. 다른 VPC를 통해 라우팅할 수 없습니다.

VPC Flow Logs

VPC 내에서 수백 또는 수천 개의 리소스가 서로 다른 서브넷 간에, 공용 및 프라이빗 서브넷 간에, 그리고 VPC 피어링 연결을 통해 통신할 수 있습니다. VPC Flow Logs는 VPC 내 리소스의 네트워크 인터페이스 간에 흐르는 IP 트래픽 정보를 캡처할 수 있게 합니다.

S3 접근 로그 및 CloudFront 접근 로그와 달리, VPC Flow Logs에서 생성된 로그 데이터는 S3에 저장되지 않습니다. 대신, 캡처된 로그 데이터는 CloudWatch 로그로 전송됩니다.

제한 사항:

  • VPC 피어링 연결을 실행 중인 경우, 동일한 계정 내의 피어링된 VPC의 플로우 로그만 볼 수 있습니다.

  • EC2-Classic 환경에서 리소스를 실행 중인 경우, 해당 인터페이스에서 정보를 검색할 수 없습니다.

  • VPC Flow Log가 생성된 후에는 변경할 수 없습니다. VPC Flow Log 구성을 변경하려면 삭제하고 새로 생성해야 합니다.

  • 다음 트래픽은 로그에 의해 모니터링 및 캡처되지 않습니다. VPC 내 DHCP 트래픽, Amazon DNS 서버를 대상으로 하는 인스턴스의 트래픽.

  • VPC 기본 라우터의 IP 주소로의 트래픽 및 다음 주소로의 트래픽: 인스턴스 메타데이터를 수집하는 데 사용되는 169.254.169.254 및 Amazon Time Sync Service에 사용되는 169.254.169.123.

  • Amazon Windows 활성화 라이선스와 관련된 트래픽

  • 네트워크 로드 밸런서 인터페이스와 엔드포인트 네트워크 인터페이스 간의 트래픽

CloudWatch 로그 그룹에 데이터를 게시하는 각 네트워크 인터페이스는 다른 로그 스트림을 사용합니다. 이 스트림 각각에는 로그 항목의 내용을 보여주는 플로우 로그 이벤트 데이터가 포함됩니다. 각 로그는 약 10~15분 동안의 데이터를 캡처합니다.

VPN

Basic AWS VPN Components

  1. Customer Gateway:

  • Customer Gateway는 VPN 연결의 고객 측을 나타내기 위해 AWS에서 생성하는 리소스입니다.

  • 이는 Site-to-Site VPN 연결의 고객 측에 있는 물리적 장치 또는 소프트웨어 애플리케이션입니다.

  • AWS에 Customer Gateway를 생성하기 위해 라우팅 정보와 네트워크 장치(예: 라우터 또는 방화벽)의 공용 IP 주소를 제공합니다.

  • VPN 연결 설정을 위한 참조점 역할을 하며 추가 비용이 발생하지 않습니다.

  1. Virtual Private Gateway:

  • Virtual Private Gateway (VPG)는 Site-to-Site VPN 연결의 Amazon 측 VPN 집중 장치입니다.

  • VPC에 연결되며 VPN 연결의 대상 역할을 합니다.

  • VPG는 VPN 연결의 AWS 측 엔드포인트입니다.

  • VPC와 온프레미스 네트워크 간의 안전한 통신을 처리합니다.

  1. Site-to-Site VPN Connection:

  • Site-to-Site VPN 연결은 온프레미스 네트워크를 VPC에 안전한 IPsec VPN 터널을 통해 연결합니다.

  • 이 유형의 연결에는 Customer Gateway와 Virtual Private Gateway가 필요합니다.

  • 데이터 센터 또는 네트워크와 AWS 환경 간의 안전하고 안정적이며 일관된 통신을 위해 사용됩니다.

  • 일반적으로 정기적이고 장기적인 연결에 사용되며, 연결을 통해 전송된 데이터 양에 따라 요금이 부과됩니다.

  1. Client VPN Endpoint:

  • Client VPN 엔드포인트는 클라이언트 VPN 세션을 활성화하고 관리하기 위해 AWS에서 생성하는 리소스입니다.

  • 개별 장치(예: 노트북, 스마트폰 등)가 AWS 리소스 또는 온프레미스 네트워크에 안전하게 연결할 수 있도록 합니다.

  • Site-to-Site VPN과 달리 전체 네트워크를 연결하는 것이 아니라 개별 클라이언트를 위해 설계되었습니다.

  • Client VPN을 사용하면 각 클라이언트 장치는 VPN 클라이언트 소프트웨어를 사용하여 안전한 연결을 설정합니다.

Site-to-Site VPN

온프레미스 네트워크를 VPC와 연결합니다.

  • VPN 연결: 온프레미스 장비와 VPC 간의 안전한 연결.

  • VPN 터널: 고객 네트워크에서 AWS로 또는 AWS에서 데이터를 전송할 수 있는 암호화된 링크.

각 VPN 연결에는 고가용성을 위해 동시에 사용할 수 있는 두 개의 VPN 터널이 포함됩니다.

  • Customer gateway: 고객 게이트웨이 장치에 대한 정보를 AWS에 제공하는 AWS 리소스.

  • Customer gateway device: Site-to-Site VPN 연결의 고객 측에 있는 물리적 장치 또는 소프트웨어 애플리케이션.

  • Virtual private gateway: Site-to-Site VPN 연결의 Amazon 측 VPN 집중 장치. Site-to-Site VPN 연결의 Amazon 측 게이트웨이로 가상 프라이빗 게이트웨이 또는 트랜짓 게이트웨이를 사용합니다.

  • Transit gateway: VPC와 온프레미스 네트워크를 상호 연결하는 데 사용할 수 있는 트랜짓 허브. Site-to-Site VPN 연결의 Amazon 측 게이트웨이로 트랜짓 게이트웨이 또는 가상 프라이빗 게이트웨이를 사용합니다.

Limitations

  • 가상 프라이빗 게이트웨이의 VPN 연결에 대해 IPv6 트래픽이 지원되지 않습니다.

  • AWS VPN 연결은 Path MTU Discovery를 지원하지 않습니다.

또한, Site-to-Site VPN을 사용할 때 다음 사항을 고려해야 합니다.

  • VPC를 공통 온프레미스 네트워크에 연결할 때, 네트워크에 대해 중첩되지 않는 CIDR 블록을 사용하는 것이 좋습니다.

Client VPN

기기에서 VPC로 연결합니다.

Concepts

  • Client VPN endpoint: 클라이언트 VPN 세션을 활성화하고 관리하기 위해 생성하고 구성하는 리소스입니다. 모든 클라이언트 VPN 세션이 종료되는 리소스입니다.

  • Target network: 대상 네트워크는 Client VPN 엔드포인트와 연결된 네트워크입니다. VPC의 서브넷이 대상 네트워크입니다. 서브넷을 Client VPN 엔드포인트와 연결하면 VPN 세션을 설정할 수 있습니다. 고가용성을 위해 여러 서브넷

Last updated