Today Keys : aws,vpc, lattice, network, service, control, data, plane, api, link-local
이번 포스팅은 서로 다른 VPC 및 AWS 계정에 걸쳐 서비스 간의 네트워크 연결 및 애플리케이션 계층 라우팅을 자동으로 관리해주는 Amazon VPC Lattice에 대한 여덟 번째 포스팅입니다.
여덟 번째 포스팅에서는 VPC Lattice에 대한 기존 포스팅에서 다루지 않았던, VPC Lattice와 관련된 이런 저런 내용들을 짧게 짧게 다뤄 봅니다. 전반적으로 어떻게 VPC Lattice Service와 통신을 하게 되며, 네트워크 보안 정책이 어떻게 적용되는지에 대한 내용과 VPC Lattice Service에 접근하는 Client를 확인하는 방법에 대해서 다룹니다.
VPC Lattice와 관련된 포스팅은 당분간(?)은 이번 포스팅이 마지막이 될 듯 싶고, Lambda 관련 부분은 다루려다가 그냥 잠시 묻어두고.. 이제 테스트용 리소스를 삭제해야 겠네요.
VPC Lattice는?
▪ Control Plane과 Data Plane으로 구성된 완전 관리형 서비스
- Control Plane은 Resource에 대한 Create, Read/describe, Update, Delete, List를 위한 관리용 API를 제공
- Data plane은 Service 간의 상호 연결을 제공하는 VPC Lattice의 Invoke API 역할
▪ VPC Lattice의 Service와 Client 간의 연결
- VPC 내의 전용의 Lattice Data plane를 통해서 연결
- Lattice Data Plane은 VPC 내에서만 접근이 가능한 Link-Local Endpoint를 통해서 연결 됨.
▪ VPC Lattice Link-Local Endpoint 구성
- VPC Lattice Service Network에 VPC가 Association 된 경우
- VPC Lattice Service Network에 VPC의 Service를 Lattice Service로 구성하여 Association 된 경우
- VPC Lattice Link-Local Endpoint가 구성되면, 해당 VPC의 라우팅 테이블에 VPC Lattice가 사용하는 Link-Local 주소(169.254.171.0/24, fd00:ec2:80::/64)에 대한 라우팅이 자동으로 구성 됨.
- 자동으로 구성된 라우팅은 수정, 삭제가 불가하며 해당 대역의 목적지를 사용하는 상세 라우팅 설정도 불가 함.
▪ VPC Lattice Link-Local 주소 확인
- VPC Lattice Service를 구성하면, 각 Service에 대한 Domain name이 생성되며, 해당 Domain name을 Query 해보면, VPC Lattice Link-Local 주소가 확인 됨.
- VPC Lattice Service별로 개별 Link Local 주소를 하지는 않음.
- 또한, 서로 다른 계정, VPC인 경우에도 사용되는 Link Local IP 주소는 동일
▪ VPC Link-Local 주소
- VPC에서 Link-Local 주소로 서비스를 하는 것이 VPC Lattice가 처음은 아님.
- Link-Local 주소를 이용해서 제공되는 서비스
- Amazon Time Sync Service (NTP) : 169.254.169.123
- Route 53’s DNS Resolver : 169.254.169.253
- EC2’s Instance Metadata Service: 169.254.169.254
- ECS’s Task Metadata Endpoint : 169.254.170.2
▪ VPC Lattice와 기존 Link-Local 주소로 서비스 하는 서비스 간의 차이
- Service Network에 VPC를 Association 해야 연결이 가능한 VPC Lattice Endpoint를 사용
- VPC Lattice Endpoint를 사용하면서, 별도의 라우팅 설정을 사용
- Association과 별도 라우팅 설정 과정에서 Network 보안 정책 설정이 가능
▪ VPC Lattice의 Network 보안 설정 - NACL
- Subnet에 적용되는 NACL에 Link Local 주소(169.254.0.0/16)에 대한 Deny 정책 추가 시에, VPC Lattice에 대한 접근 제어 가능
- 기존의 Link Local 주소를 사용하는 타 서비스의 경우에는 NACL에 적용 받지 않음
▪ VPC Lattice의 Network 보안 설정 - Security Group
- VPC Lattice Service Network에 VPC를 Association 할 때, VPC Lattice Service Network로의 접근을 제어하는 Security Group을 설정
- VPC에서 VPC Lattice Service Network로의 접근의 경우, Inbound Rule로 제어
: 다음은 VPC에서 Service Network로 접근 시에 HTTPS(443)만 접근을 허용한 경우
: VPC 내의 Client에서 HTTPS(443)로의 접근은 가능하지만, 허용되지 않은 HTTP(80) 접근은 차단 됨.
▪ VPC Lattice의 Network 보안 적용 순서
- Client에서 VPC Lattice Service로 접근 시에, 우선 Subnet의 라우팅 적용 시에 NACL을 먼저 적용 받고 라우팅에 의해서 VPC Lattice Endpoint를 통해서 VPC Lattice Data Plane으로 전달되면서 Security Group을 적용 받게 됨.
.
▪ VPC Lattice에 접근하는 Client 확인
- VPC Lattice Service에서는 해당 서비스로 접근하는 Client IP 주소가 확인되지 않으나, x-forwared-for 정보를 통해서 실제 Client IP 확인 가능