VPC Security
Security Group
SG는 ENI에 붙여주는 보안 레이어.
여태까지 쓰던 녀석. ENI와 SG는 다대다 관계.
NACL
NACL는 서브넷에 붙여주는 보안 레이어.
서브넷과 NACL은 다대일 관계.
Default NACL
- 아주 개방적 상태이다. 기본 NACL이 폐쇄적이면 뉴비들이 EC2를 쓰기 힘들다.
- 모든 인바운드 허용
- 모든 아웃바운드 허용
- 기본 NACL을 수정해 사용하기를 지양한다.
SG vs. NACL 차이점
- SG: Inboud 규칙을 통과한 요청에 대응하여 인스턴스가 생성한 응답은 Outboud 규칙을 적용받지 않는다. 여기서 SG를 Stateful하다고 일컫는다.
- NACL: : Inboud 규칙을 통과한 요청에 대응하여 인스턴스가 생성한 응답에게도 Outboud 규칙을 적용한다. 여기서 NACL은 Stateless하다고 한다.
- 위 내용을 Inboud와 Outboud를 바꾸어 생각해도 마찬가지다.
Ephemeral Ports
- L4 수준에서 두 기기가 연결을 수립하려고 한다.
- 클라는 서버 측 포트를 알고 있다. 하지만 서버는 클라의 어디 포트를 써야 하는지 모른다.
- 클라는 연결을 수립할 때 서버에게 약속된 포트를 알려준다. 이 포트가 Ephemeral Port 이다.
- 운영체제 별로 범위가 다른데, 암튼 해당 범위 랜덤 값을 포트로 쓴다.
- 윈도10: 49152~65535
- 리눅스: 32768 ~ 60999
NACL과 Ephemeral Ports
서브넷A에서 돌아가는 웹 서비스(EC2)가 서브넷B의 퍼시스턴스(RDS)에 접근한다고 하자.
- NACL_A는 3306 아웃바운드를 허용할 것이다.
- NACL_B는 3306 인바운드를 허용할 것이다.
- NACL_A는 인바운드 규칙에서 Ephermeral Port를 거부하지 않아야 한다.
- NACL_B는 인바운드 규칙에서 Ephermal Port를 거부하지 않아야 한다.
결론: 인바운드 규칙이 Ephemeral Ports를 거절하지 않도록 유의하라
VPC Reachability Analyzer
핑을 안하는 핑 서비스
임의의 두 엔드포인트가 서로 연결 가능한지 체크하는 도구.
설정을 분석한다.
패킷을 전송하지 않음.
네트워크 연결이 예상과 달리 안 될때, 해당 분석기를 사용해 보자.
VPC Peering
VPC간 사설 커넥션 수립
임의의 두 VPC가 서로 소통할 수 있게하여, 합쳐진 네트워크가 구성된 것처럼 보인다.
VPC의 CIDR가 다른 VPC를 침범하지 않게 유의해서 설정해야 한다.
Not Transitive
VPC 피어링은 두 VPC 간에 명시적으로 수립해야 한다.
A ↔ B ↔ C 피어링 상태라 해도
A ↔ C 간 피어링은 성립하지 않으므로 A와 C는 대화할 수 없다.
라우팅 필요
VPC 내부 자원이 타 VPC 자원에게 패킷을 쏘려면
라우트 테이블의 도움이 필요하다.
VPC Peering 컴포넌트로 패킷을 쏴 줘야 하니까
이건 뭐 당연하죠?
Powerful
- 남의 계정 VPC와 피어링 가능
- 다른 Region VPC와 피어링 가능
- (남의 계정 & 같은 Region) VPC의 SG를 참조 가능 ㄷㄷㄷ
멀티 리젼 Active-Active의 동기화 요구사항 충족에 유용하다.
실습1. 두 VPC간 피어링 맺고 라우팅 설정
- 두 VPC 간 피어링을 맺는다.
- 각자의 VPC의 라우트 테이블> 상대 CIDR를 지정하는 패킷에 대해> 방금 수립한 Peering Connection 컴포넌트로 향하게 한다.
VPC Endpoints
인스턴스가 www를 거쳐 AWS 서비스를 사용하는 건 불합리하다
AWS 서비스들은 대부분 Region, AZ 기반이다. AWS 인프라 위에 배치되어 있는 서비스들을 사설망을 통해 이용하는 편이 www를 경유하는 것보다 바람직하다.
또 www를 사용하기 위한 NAT 게이트웨이가 필요하지 않다는 장점도 있다.
VPC Endpoints 개요
VPC에 붙이는 컴포넌트.
인스턴스가 AWS 서비스를 private하게 사용하도록 도와준다.
두 가지 엔드포인트 타입
Interface EndpointsENI를 지원하는 AWS 서비스가 많기 때문에 좋다.
- 인스턴스는 ENI를 통해 서비스를 호출하면 된다.
- ENI + SG를 서브넷에 구성하고, 해당 ENI를 AWS 서비스에 붙이는 구성 방식.
- Gateway Endpoints
- S3와 DynamoDB를 사적으로 호출할 때 사용한다.
- 게이트웨이 + 라우트 테이블을 구성하는 방식
VPC Flow Logs
각 VPC> Flow Logs 메뉴
VPC를 오고가는 트래픽을 기록하는 로그.
로그 데이터는 S3와 CloudWatch Logs가 받아갈 수 있다.
- VPC Flow Logs
- Subnet Flow Logs
- ENI Flow Logs
로그의 ACTION 필드 해석
ACCEPT
- 패킷이 거부 없이 잘 흘러간다는 소리.
REJECT
- Incoming 패킷 → Inbound 허용, Outbout 거부 확인됨 → NACL 점검 필요
- Outgoing 패킷 → Outboud 허용, Inboud 거부 확인됨 → NACL 점검 필요
- Outgoing 패킷 → Outboud 거부 확인됨 → NACL와 SG 점검 필요
- Incoming 패킷 → Inbound 거부 → NACL와 SG 점검 필요
'컴퓨터공학 > 분산시스템' 카테고리의 다른 글
[AWS][Networking][강의노트] IPv6, VPC 요약정리 (0) | 2022.02.24 |
---|---|
[AWS][Networking][강의노트] VPN, DX, Endpoint Service, Transit Gateway, Traffic Mirroring (0) | 2022.02.24 |
[AWS][Networking][강의노트] VPC 개요 (0) | 2022.02.23 |
[AWS][Security][강의노트] 보안 관련 서비스들 (0) | 2022.02.23 |
]Docker[ CUDA를 사용하는 PyTorch 쥬피터 컨테이너 만들기 (0) | 2020.07.24 |