상세 컨텐츠

본문 제목

AWS PrivateLink를 이용해 다른 계정과 VPC 연결하는 법

☁️ AWS

by chnh 2023. 2. 23. 17:03

본문

반응형

 

들어가며

대외기관과 시스템 연계가 필요한 상황이 잦다. 신용 정보와 같은 민감한 데이터가 오가는 경우 보안이 매우 중요한데, 이 때 연동할 기관이 AWS상에서 서비스를 운영중이라면 PrivateLink를 이용하여 보다 간결하게 시스템 연계가 가능하다.

 

 

VPC Peering이 아닌 PrivateLink를 쓰는 이유 


VPC와 VPC를 연결하는 방법은 PrivateLink외에도 VPC Peering이나 Transit Gateway 등이 있지만, VPC Peering을 사용하는 경우 보안상 VPC 정보를 노출할 수 밖에 없다는 문제가 있다. Transit Gateway는 multi vpc를 효율적으로 관리할 수 있다는 장점이 있지만 비용이 만만치않다. 

 

VPC Peering을 맺을 경우 서브넷 단위로 연결되기 때문에 해당 서브넷 내의 다른 리소스들에도 접근이 허용되게 된다. 서브넷 내의 모든 리소스에 접근할 수 있도록 한다면 상관없겠지만 보안적 측면에서 좋지 않다고 생각한다. 

 

AutoScaling이나 EKS같이 IP가 계속 변경되는 경우 그때마다 NACL등을 수정할 수 없기 때문에 세세한 접근제어가 힘들고, 관리포인트가 늘어난다는 문제가 있다. 게다가 대외기관의 수가 늘어날 수록 관리 포인트가 늘어난다는 문제도 있다. 

 

VPC Peering
AWS PrivateLink

PrivateLink는 VPC 정보를 노출하지 않고 생성된 ENI의 보안그룹을 통해 접근제어를 할 수 있어 세밀한 접근 제어가 가능하다는 장점이 있다. 엔드포인트 서비스를 한번 생성해두면 새로운 기관과 연결이 필요할 때 엔드포인트만 연결해주면 되기 때문에 관리의 용이성도 있다. 

 

 

AWS PrivateLink 구성 방법


사전 준비 사항

1. [Provider] Network Load Balancer에 연결할 리소스 

2. [Consumer] 엔드포인트 서비스에 접근할 IAM ARN (Account, User, Role 가능)

 

1. [Provider] 엔드포인트 서비스 생성 

  1. PrivateLink 콘솔에서 [엔드포인트 서비스] > [엔드포인트 서비스 생성]을 선택 
  2. 로드 밸런서 유형은 네트워크, 로드 밸런서는 앞서 생성한 NLB를 선택 
  3. 엔드포인트 수락 필수를 체크
  4. (선택사항) 프라이빗 DNS를 사용하려는 경우 프라이빗 DNS 이름을 서비스에 연결을 선택하고 사용하려는 프라이빗 DNS 이름을 입력 한다. 여기에 입력한 주소로 Customer가 엔드포인트 서비스에 접근할 수 있다. 도메인 활성화 방법은 다음 게시물에서 확인할 수 있다. 
    AWS 엔드포인트 서비스에서 Private DNS name 검증 방법
  5. 생성한 엔드포인트 서비스를 선택하고 보안 주체 허용 탭에서  엔드포인트 서비스에 접근할 Consumer의 IAM ARN을 입력해줘야한다. 이 단계를 거치지 않으면 Consumer쪽에서 엔드포인트서비스 이름 조회 자체가 안된다. 
  6. com.으로 시작하는 엔드포인트 서비스 이름을 Consumer에게 공유한다. Consumer가 엔드포인트를 생성할 때 이 서비스 네임이 사용된다. 

 

2. [Consumer] 엔드포인트 생성

  1. 이제 Consumer의 IAM으로 로그인하여 엔드포인트를 생성한다. 
    [엔드포인트 생성] > 서비스 범주: 다른 엔드포인트 서비스 
  2. Provider에게 공유받은 서비스 이름을 입력 후 서비스 확인을 선택합니다. 정상적으로 구성된 경우 다음과 같은 화면에 표시된다. 
  3. 엔드포인트를 생성할 VPC와 서브넷을 선택하고 엔드포인트 생성 버튼을 선택하면 엔드포인트 생성 끝. 

 

3. [Provider] 엔드포인트 연결 요청 수락

  1. Consumer가 엔드포인트를 생성하고 나면 Provider의 엔드포인트 서비스에 표시되고, 연결 요청을 수락해주면 상태가 Available로 변경된다. 
  2. 이후 Consumer의 엔드포인트 콘솔상에서도 상태가 사용 가능으로 변경된다.

 

4. [Consumer] 연결 확인  

  1. 엔드포인트에 콘솔에 표시된 DNS이름 or 프라이빗 DNS 이름을 사용해 연결을 테스트해보면 접속이 잘 이뤄진다.
    (port는 NLB의 리스너 포트를 사용)
  2. 프라이빗 DNS 네임 질의 시 엔드포인트 서비스가 아닌 엔드포인트 서브넷 대역이 찍히는 이유엔드포인트 네트워크 인터페이스 때문이다. 엔드포인트 서비스 접근을 위해 엔드포인트 네트워크 인터페이스를 통하기 때문에 해당 대역이 찍히게 된다. 
  3. 이 때 연결이 정상적으로 이루어지지 않는다면 엔드포인트 보안그룹과 인스턴스 보안그룹을 살펴보자.

 

 

 


참고자료 

 

 

반응형

관련글 더보기

댓글 영역