Cloud 환경을 사용하다보면 다양한 보안 위협에 대해 고민하고 각 위협에 대한 리스크를 줄이기 위하여 다양한 기술적 조치들을 취하게 된다는 것을 알게 됩니다. 사실 이러한 고민은 Cloud 환경에서만 존재하는 것은 아니고 On-Premise 환경에서도 여러 보안 담당자들이 오랫동안 해왔던 업무 중에 하나라고 볼 수 있습니다.
Cloud 는 태생적으로 인터넷을 기반으로하는 서비스이기 때문에 보안 담당자의 입장에서는 더욱 더 조심스러울 수 밖에 없고 걱정이 앞서는 것이 사실입니다. 이 포스팅에서는 이와 같은 Cloud 를 대하는 보안 담당자가 고민하는 고민거리 중 한가지인 AWS Management Console 과 AWS CLI 사용을 계정 ID/Access Key 기반으로 차단하는 방법에 대해 살펴보도록 하겠습니다.
AWS 의 Management Console 과 AWS CLI 는 인터넷 접속이 필요한 서비스이고 기본적으로 모든 AWS 의 고객(계정)이 공동으로 사용하는 서비스이기 때문에 AWS Management Console 자체에서 특정 고객이 특정 계정(IAM 사용자가 아닌 계정 자체)에 대해 접속을 허용하거나 차단하는 등의 제한조치를 적용하는 것은 불가능합니다. 따라서, 이런 제한 때문에 보안팀은 아래와 같은 침해사고 시나리오를 고민하실 수 있습니다.
- 회사에서 AWS Management Console 에 접근 가능한 별도의 전용 단말이나 인터넷 접속이 가능한 제한적인 사용 용도의 VDI 서비스 등을 구성하여 내부 사용자 혹은 개발자에게 AWS Management Console 접근을 허용합니다.
- 개발자는 전용 단말이나 VDI 를 이용하여 AWS Management Console 에 회사의 AWS 계정을 이용하여 접속하고 데이터 처리업무를 수행합니다.
- 개발자가 악의적인 목적으로 회사의 AWS 계정이 접속된 상태에서 중요 데이터를 다운로드 합니다.
- 개발자는 조직의 AWS 계정에서 로그아웃한 후 자신의 개인 AWS 계정을 이용하여 AWS 서비스에 접속합니다.
( AWS Management Console 은 별도로 계정 별로 접속을 차단하는 것이 불가능하므로 회사 AWS 계정을 이용하여 접속이 가능한 단말이라면 개인 AWS 계정을 이용한 접속도 당연히 가능하여야 합니다.) - 개발자는 악의적인 목적으로 수집한 회사의 데이터를 자신의 개인 AWS 계정으로 업로드합니다.
- 위와 같은 시나리오는 내부자가 회사의 AWS 계정 정보를 이용하여 중요데이터를 탈취한 후 개인 계정으로 유출하는 시나리오를 가정한 것입니다.
이와 같은 유형의 침해 사고를 예방하려면 근본적으로 내부 사용자는 지정된 단말에서 회사의 계정이외에는 어떠한 AWS 계정으로도 AWS Management Console 로그인이나 AWS CLI 사용이 불가능하여야 합니다.
그럼 어떻게 이와 같은 AWS 계정 기반 접근 제한이 가능한지 살펴보도록 하겠습니다. 제가 “AWS 계정 기반 접근 제한" 을 구현하기 위하여 구성한 테스트 환경은 다음과 같습니다.
이 환경에서 내부망 단말기의 AWS 콘솔 접속 시 트래픽 흐름은 다음과 같습니다.
이 시나리오는 데이터센터의 내부망에 위치한 단말이 VPN 혹은 Direct Connect 연결을 통해 AWS VPC 와 사설 네트워크 연결이 되어 있는 구조가 구축되어 있는 것을 가정합니다.
- 내부망 단말기에서 AWS VPC 내부망에 위치한 Bastion 호스트에 원격으로 접속합니다.
- 사용자는 Bastion 호스트에 Proxy 설정을 구성합니다. Proxy 설정은 인터넷 브라우저와 AWS CLI 에 각각 적용합니다.
# 원격 호스트 역시 인터넷 접속이 불가능한 환경이므로 인터넷 접속을 위해서는 반드시 Explicit Proxy 구성을 한 후 Proxy 를 경유하여 접속하여야 합니다.
AWS CLI 의 Proxy 설정과 관련한 자세한 사항은 아래의 링크를 참고합니다.
3. Bastion 호스트에서 브라우저를 이용하여 AWS Management Console 접속이나 AWS CLI 를 이용합니다.
4. 단, Bastion 호스트는 Proxy 에서 설정을 통해 허용한 Account ID 를 통해서만 Management Console 접근이 가능하며 이외의 Account ID 를 이용하는 경우 Management Console 접근이 차단됩니다. AWS CLI 의 경우에는 Proxy 에서 설정을 통해 허용한 Access Key 를 사용한 경우에만 허용되며 이외의 경우에는 차단됩니다.
아래는 위에 설명되어 있는 접속환경을 원격호스트에서 시연하는 동영상입니다. 동영상은 AWS CLI 에서만을 포함하고 있으나 Management Console 에 대해서도 동일한 제한 적용이 가능합니다.
감사합니다.