콘텐츠로 이동하기
보안 & 아이덴티티

[BeyondCorp Enterprise 시리즈] Zero Trust 기반의 접속 단말기 통제 1

2023년 11월 28일
Jinwon Seo

Security Specialist

개요

구글 클라우드 관리자는 접근 통제를 강화하기 위해서 특정 단말에서만 클라우드 콘솔 로그인이 가능하는 보안 기능을 적용할 수 있습니다. 이러한 보안 기능은 BeyondCorp Enterprise Premium을 활용하며 다양한 보안 정책을 적용할 수 있습니다.

사용자 단말 기반 접근 통제

구글 클라우드에서 사용자 계정은 조직과 연결되어 있습니다. 조직마다 한 개의 계정을 연결시키므로 여러 개의 조직을 운영하는 기업은 조직마다 사용자 계정을 다르게 할당해야 합니다. 조직의 도메인과 다른 계정을 IAM에 추가할 수는 있지만 보안상 권고하지 않습니다. 구글 클라우드 콘솔에 접근할 수 있는 계정은 오직 조직의 도메인과 같은 계정만을 허용하도록 설정해야 합니다. 보다 더 강력한 보안을 위해서 사용자가 구글 클라우드에 로그인을 하는 경우 반드시 지정한 단말에서만 로그인하도록 하는 보안정책이 필요할 수 있습니다. 다음과 같은 경우를 예시로 들 수 있습니다.

  • 사내의 민감한 정보를 접근하려면 기업이 허가한 단말기에서만 로그인해야 한다.
  • 보안 관련한 컴플라이언스를 충족시키기 위해 특정 계정은 특정 단말에서만 로그인을 해야 할 필요가 있다.
  • 정책 변경, 사용자 추가 등 클라우드 관리자 전용 콘솔을 운영할 필요가 있다.

위와 같은 사례에서 볼 수 있듯이 관리자 또는 사용자가 인가된 단말기에서만 클라우드 콘솔 접근이 가능하게 설정할 필요가 있습니다. 사용자 단말기의 속성별 접근 통제는 Beyondcorp Enterprise Premium을 통해서 구현할 수 있습니다. BeyondCorp Enterprise가 제공하는 보안 속성은 다음과 같습니다.

  • 화면 잠금: 화면 잠금 기능을 사용중인지 검증한다.
  • 관리자 승인 필요: 관리자가 허용한 단말인지 검증한다.
  • 기업 소유의 기기 필요: 회사 소유 단말인지 검증한다.
  • 저장소 암호화: 단말기 저장소가 암호화되어 있는지 검증한다.
  • 운영체제 정책: 접근가능한 운영체제와 최소 버전을 명시한다. Windows, Mac, Linux, Chrome OS와 Android, iOS를 확인할 수 있다.

접근 사용자 단말 통제를 위한 전체 절차는 다음과 같습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/Zero_Trust_Security_1.max-800x800.png

사용자 단말 통제 하기

BCE premium 활성화

Beyondcorp Enterprise(이하 BCE)는 Basic, Essential과 Premium 버전으로 구분되어 있습니다. 구글 클라우드 사용자들에게 기본으로 제공하는 Basic 버전은 출발지 IP와 출발지 국가코드 속성을 이용하여 접근통제를 적용할 수 있습니다. 이때 사용하는 IP는 반드시 인터넷 라우팅이 가능한 공인 IP 대역이며 사설IP 대역(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)은 설정할 수 없습니다. 이 기능은 구글 클라우드 콘솔에 접근할때 출발지를 통제하는데 사용하는 기능입니다.

Premium 버전은 접속에 사용하는 단말 속성을 기반으로 접근통제를 적용할 수 있습니다. Advanced mode에서는 CEL(Common Expression Language)를 적용하여 상세한 접근통제 정책을 적용할 수 있습니다. 커스텀 액세스 수준이라고 하며 관련 문서에서 상세한 내용을 확인할 수 있습니다. 커스텀 액세스 수준은 구글 클라우드 CEL만을 이용해서 적용해야 합니다.

사용자 단말의 속성정보를 확인하기 위해서는 Endpoint Verification이라는 크롬 브라우저 확장프로그램이 필요합니다. 여기를 방문하여 확장 프로그램을 설치할 수 있습니다.

액세스 수준 객체 생성

액세스 수준은 접근통제용 객체입니다. 이 객체는 구글 클라우드의 다양한 제품에서 재사용합니다. 액세스 수준은 접근 정책(Access Policy)와 연결되어 있습니다. 구글 클라우드에는 조직 단위의 접근 정책이 기본적으로 설정되어 있습니다. 향후에 폴더 또는 프로젝트가 확장이 되면 정책이 적용되는 범위를 지정하여 특정 영역에서 적용되는 통제 수준을 적용할 수 있습니다.

클라우드 웹 콘솔 접근은 기본 정책인 default policy에서 설정합니다. 액세스 수준 생성을 위해서 클라우드 웹 콘솔에 로그인을 하고 프로젝트 선택기에서 조직을 선택합니다. 액세스 수준 객체를 생성하고 관리하려면 다음과 같은 권한이 필요합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/Zero_Trust_Security_2.max-1100x1100.png

IAM 부여 관련 상세 내용은 웹 페이지에서 확인하실 수 있습니다.

Google Cloud 웹 콘솔 -> 보안 -> Access Context Manager로 이동합니다. 페이지 상단의 액세스 수준 만들기를 클릭합니다. 실제 설정은 아래 그림을 참조합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/Screenshot_2023-11-21_at_4.06.29PM.max-500x500.png

여러 기능을 활용할 수 있지만 특정 단말에서만 사용자 접근을 허용할 때 이번 예제에서는 다음 두 가지를 적용합니다. 다른 설정은 관리자가 언제든지 추가로 설정할 수 있습니다.

  • 관리자 승인 필요
  • 운영체제 정책

관리자 승인 필요를 설정하면 관리자가 로그인 단말기를 승인해줘야만 해당 기기에서 로그인이 가능합니다. 그러므로 관리자가 사용자 단말기를 최초 1회 허용하는 절차가 필요합니다. 단말기 승인 절차는 Google Admin(관리자) 콘솔에서 진행합니다.

운영체제 정책은 접근 단말기의 운영체제를 지정하는 것입니다. 그림에서 보는 바와 같이 Windows와 macOS를 선택하면 두 운영체제를 사용하는 단말기만 콘솔 접근이 가능합니다. 운영체제 정책에는 운영체제의 최소 버전을 명시할 수 있습니다. 버전 항목을 공란으로 남겨놓으면 모든 버전의 접근이 가능하고 운영체제 종류만 검증합니다. 운영체제 버전은 major.minor.patch와 같은 형식으로 적용해야 합니다. 운영체제 종류별 버전은 다음과 같이 확인할 수 있습니다.

Windows

윈도우즈 커맨드 프롬프트에서 winver 명령어를 입력하고 실행합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/Untitled_0Fu42xa.max-800x800.png

OS빌드에 점으로 구분된 두 개의 패치 숫자가 있습니다. 파란색 항목에 패치 숫자가 있습니다. Windows 11이므로 이 운영체제의 버전은 11.0.22621로 표시할 수 있습니다. 만일 11.0.0으로 정책을 수립하면 11.0.0보다 높은 모든 버전이 허용이 됩니다.

macOS

메뉴에서 사과 아이콘을 클릭하고 About This Mac을 선택합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/Screenshot_2023-11-21_at_3.58.53PM_HAnztDN.max-500x500.png

운영체제 이름 아래에 Version이 명시되어 있습니다. MacOS의 현재 버전은 14.1.1입니다. 정책 입력시에는 패치버전까지 명시해야 하므로 14.1.0으로 입력해야 합니다.

지금까지 액세스 수준에서 사용자 운영체제를 기반으로 객체 생성을 살펴보았습니다. 다음 번에는 생성한 객체를 기반으로 사용자의 접근을 통제하는 방법을 알아보겠습니다.

게시 위치