개요
사내 보안 정책으로 인해 인터넷으로부터 인스턴스로의 접속을 모두 차단해야 하고, GCP Web Console을 이용한 브라우저에서의 SSH 접속도 차단해야 한다면…GCP에서는 공식적으로 이러한 방법을 제공하고 있지 않다. 하지만 그럼에도 막아야 한다면 비공식적이지만 그 방법을 알아보도록 하자.
Google Cloud Platform의 Web Console은 다른 클라우드 서비스에 비해 약간의 편의성을 더 제공해주고 있다. 그 중 하나가 브라우저에서 SSH를 통해 인스턴스에 바로 연결하는 기능이다. PuTTy와 같은 ssh 앱을 사용해야 하는 윈도우의 경우, 앱의 다운로드/설치/구성 설정의 번거로운 작업 없이 바로 접속이 가능하다. 그러나 일부 기업들의 경우 보안 정책에 의해 이 접속을 차단해야 하는데, Google 측에서는 공식적으로 차단 가능한 방법을 제공하고 있지 않기에 SSH 버튼을 비활성화 할 수 있는 방법을 테스트하여 정리해보았다.
보안 요구 사항
- 사내는 일반 사용자들도 망분리 정책에 의해 업무망과 서버망이 분리된 PC를 사용하도록 되어 있다.
- 서버망은 인터넷 접속이 안되는 폐쇄망이고, 사내 서버들과만 통신이 가능하다.
- 서버망과 GCP와는 전용선으로 연결되어 있다.
- GCP의 서버들(인스턴스들)은 내부IP만 가지고 있으며, 사내 서버망에서만 접속이 가능하다. (Context-Aware Access 기능으로 구성 가능)
- 모든 서버들은 사내 서버망을 제외한 외부로부터 서버의 접속은 모두 차단되어야 한다.(방화벽 정책)
- GCP Web Console을 통한 브라우저에서 SSH 접속을 차단해야 한다. ==> 이 글의 목표
구성 방안
서버망에서만 SSH 접속 허용하도록 방화벽을 구성 한다. 방화벽 규칙을 생성하여 서버망에서만 인스턴스로의 SSH 접속을 허용한다.
IAM 에서 사용자/그룹들의 Role 을 구성 한다. 소유자 권한을 부여하지 말고, 각 사용자 또는 그룹별로 최소한의 권한을 가질 수 있도록 Role 을 적절히 구성한다.
모든 인스턴스에서 외부 IP를 제거 한다. 외부 IP가 존재하지 않으면 SSH 버튼이 비활성화 된다. 단, 프로젝트 소유자는 예외이다.
이걸로 끝났다. 이제 브라우저로 VM instances 메뉴에 접속하여 SSH 버튼이 비활성화 된것을 확인한다.
{: width=“800”}
External IP를 없애서 Web Console에서의 SSH 접속을 모두 차단했는데, 필요에 의해 SSH 버튼을 활성화 하여야 한다면… 이는 다음 글을 참조하도록 하자.
