Cloud/AWS
Amazon VPC Lattice - Part 5 : Service Network/Service Access 정책
지기(ZIGI)
2023. 4. 7. 17:41
Today Keys : lattice, vpc, service, amazon, network,domain, access, auth, iam, policy, none
이번 포스팅은 서로 다른 VPC 및 AWS 계정에 걸쳐 서비스 간의 네트워크 연결 및 애플리케이션 계층 라우팅을 자동으로 관리해주는 Amazon VPC Lattice에 대한 다섯 번째 포스팅입니다. 앞으로 몇 번에 걸쳐서 다루게 될지는 모르겠지만, VPC Lattice를 구성하는 방법에 대해서 차근 차근 포스팅 해보려고 합니다.
다섯 번째 포스팅에서는 VPC Lattice Service Network 및 VPC Lattice Network에 접근을 제어하는 Access 정책을 설정하는 방법에 대해서 알아보고, 정책 설정을 통해서 실제 접근 제어를 해보는 예제를 다룹니다. 현재 다뤄지고 있는 VPC Lattice 관련 포스팅에서는 VPC Lattice에 대해서 다룬 앞 포스팅의 내용 중 동일한 부분을 반복적으로 다루지는 않기 때문에 각 포스팅에서 다뤄지지 않은 앞 부분은 기존 포스팅을 참고하시면 되겠습니다.
VPC Lattice Service에 대한 Access 정책
기존에 만든 VPC Lattice Service인 'zigi2-ls2'에는 별도의 Access 정책을 설정하지 않았기 때문에,
VPC Latttice Service Network에 연결된 VPC 내에서는 모두 접근이 가능했습니다.
이제 특정 VPC에서만 VPC Lattice Service에 접근하도록 'zigi2-ls2'에 Access 정책을 설정해 보겠습니다.
기존에 만들어진 'zigi2-ls2' 서비스 하단의 Access 탭을 선택하고, 'Edit access settings' 버튼을 클릭합니다.
Access settings에서 Auth type을 AWS IAM으로 선택합니다.
그리고, 하단에 Auth Policy를 입력합니다.
아주 기본적인 예시 템플릿을 확인 할 수 있는 'Apply policy template'도 제공하고, Policy에 대한 구체적인 예시를 보여주는 사이트로 연결되는 'Policy examples'도 제공합니다.
본 포스팅에서는 특정 VPC를 제외하고 VPC Lattice Service를 호출하는 Policy를 다음과 같이 작성했습니다.
작성한 Policy를 적용하고 나면 다음과 같이, 현재 적용된 Access 정책을 확인 할 수 있습니다.
이제 3개의 서로 다른 VPC에 존재하는 Instance에서 zigi2-ls2로 접근 테스트를 해보겠습니다.
10.0.0.235라는 IP를 가진 가운데 Instance가 VPC Lattice Service의 Access 정책에 설정된 VPC에 속한 Instance입니다. 그 VPC를 제외하고 나머지 VPC의 서비스 요청한 허용했기 때문에 10.0.0.235 Instance만 zigi2-ls2로 접근이 불가하고, 나머지 서비스는 정상적으로 서비스에 접근 한 것을 볼 수 있습니다.
테스트 후, 다음 테스트를 위해서 VPC Lattice Service에 적용한 Access 정책은 다시 제거하였습니다.
VPC Lattice Service Network에 대한 Access 정책
VPC Lattice Service 별로 Access 정책을 설정 할 수도 있지만, VPC Lattice Service Network에 일괄적으로 Access 정책 설정도 가능합니다. 'zigi-lsn'이라는 VPC Lattice Service Network를 선택해서, 하단의 Access 탭의 'Edit access settings'을 클릭합니다.
VPC Lattice Service Network의 Access 정책 설정 방법은 VPC Lattice Service의 Access 정책 설정 방법과 동일합니다. Auth type으로 AWS IAM을 선택하고, 하단의 Policy를 작성합니다. 이번에 적용 할 Policy는 특정 AWS Account에서 접근하는 경우에 대해서만 접근이 가능하도록 합니다. 여기에서는 '16-33' Account ID를 허용합니다.
작성한 Policy를 적용하고 나면 다음과 같이, 현재 적용된 Access 정책을 확인 할 수 있습니다.
이제 2개의 AWS 계정에 속한 3개의 Instance에서 VPC Lattice Service로 서비스 호출을 테스트 해보겠습니다.
172.31.31.221, 10.0.0.235 의 Instance는 '69-72'라는 계정의 Instance이며,
172.31.23.98 의 Instance는 '16-33'이라는 계정의 Instance 입니다.
VPC Lattice Service Network에서 '16-33' 계정만 허용하였기 때문에 172.31.23.98 Instance에서만 서비스 호출이 성공하고, 나머지 Instance에서는 서비스 호출이 되지 않는 것을 볼 수 있습니다.
이번에는 동일한 Access 정책에서 AWS Account를 '16-33'에서 '69-72'로 변경하여 정책을 다시 적용해 보겠습니다.
앞선 테스트와 달리, 172.31.31.221, 10.0.0.235 의 Instance에서만 VPC Lattice Service 호출이 성공하고, 기존에 성공하였던 '16-33' 계정의 Instance인 172.31.23.93 Instance는 서비스 호출이 실패한 것을 볼 수 있습니다
VPC Lattice Service Network와 VPC Lattice Service이 Access 정책에서 모두 허용되어야만, VPC Lattice Service 호출이 가능하기 때문에 두 Access 정책 중 하나의 정책에서라도 차단 된 경우에는 VPC Lattice Service 접근이 불가하기 때문에 이러한 점을 고려하여 Access 정책을 수립해야 합니다.