Zero Trust로 사이트 보안 향상시키기

Pien·2023년 10월 27일
0

home-server

목록 보기
5/7
post-thumbnail

Zero Trust란 아무것도 신뢰하지 않는다 라는 의미를 가지고 있다.
모든 상호작용이 신뢰할 수 없는 상태를 전제로 보안을 설계하는 방식이다.

Cloudflare에서 제공하는 대표적인 기능 중 하나가 Zero Trust다.
계정수 등 몇 가지 제한이 있지만 무료로 사용이 가능해 개인 프로젝트와 같은 곳에 부담 없이 적용시킬 수 있다.

제로 트러스트

제로 트러스트는 암시적 신뢰를 제거하고 엄격한 ID 인증 및 승인을 적용하여 현대 조직을 보호하도록 설계된 클라우드 보안 모델입니다. 제로 트러스트에서는 모든 사용자, 기기, 구성요소가 조직의 네트워크 내부에 있는지 또는 외부에 있는지에 관계없이 항상 신뢰할 수 없는 것으로 간주됩니다.
(출처 : GCP)

제로 트러스트는 정보 보안 및 네트워크 보안 전략의 중요한 개념 중 하나로, 기존의 신뢰 모델을 변경하여 모든 사용자, 기기, 액세스 요청을 믿지 않고 검증하고 보호하려는 접근 방식을 나타낸다.

제로 트러스트 설정

Cloudflare에 로그인 해 Zero Trust 메뉴로 진입한다.

Zero Trust 메뉴로 진입하면 기존과 다른 대시보드를 볼 수 있다.
대시보드에는 Zero Trust를 활성화한 계정의 수와 application에 로그인한 계정들을 추적해 볼 수 있다.
무료 요금제의 경우 50명까지 유저 등록이 가능하며, 접속 로그는 24시간까지 지원한다.

제로 트러스트를 사용하기 위해선 우선 인증을 허용할 계정을 등록해 줘야 한다.
Setting 메뉴에서 Authentication 탭으로 진입한다.

처음 접속했을 경우 Login methods에 One-time PIN 하나만 존재할 것이다. Add new 아이콘을 클릭해 접근 가능한 계정을 추가하는 페이지로 진입한다.

로그인 방식은 위와 같이 상당히 많은 방식을 지원한다.
구글이 가장 많이 사용되는 플랫폼이므로 구글로 진행을 할 것이다.

Google 계정 세팅

구글 계정을 Cloudflare의 제로 트러스트에 사용하기 위해선 GCP(Google Cloud Platform)에 접속해 App ID와 Client Secret을 발급받아야 한다.
하지만 GCP에 가입을 하는 것도 아니며, 과금이 이뤄지는 것도 아니니 걱정을 하지 않아도 된다.

GCP에 접속을 하면 우측 상단에 콘솔 버튼을 클릭해 GCP의 콘솔로 진입한다.
무료로 시작하기를 누르면 GCP가입을 진행하게 되는데 GCP를 가입할 필요는 없다.

프로젝트 생성

GCP에서 App ID와 Client Secret을 발급받기 위해선 프로젝트를 생성해야 한다.
좌측 상단 프로젝트 선택을 클릭 후 새 프로젝트를 생성해 준다.

프로젝트 이름은 임의로 cloud-flare-project로 생성해 주었다.

API Key 발급

생성된 프로젝트에 진입한 후 좌측 메뉴에서 API 및 서비스 > OAuth 동의 화면으로 진입하면 제로 트러스트에서 사용할 정보를 등록하는 화면이 나오게 된다.
승인 절차가 따로 있는 게 아니기 때문에 마음 내키는 대로 작성해 준다.

그 후 접속을 허용할 사용자를 추가해 준다.
본인 이외의 접속을 허용하고 싶은 계정이 있는 경우 이 화면에서 이메일을 추가해 준다.

OAuth 동의 화면 구성을 완료했다면 사용자 인증 정보 탭으로 이동해 Oauth 클라이언트 ID를 발급받아야 한다.

애플리케이션 유형은 웹 애플리케이션을 선택 후 이름은 식별할 수 있는 이름으로 생성하면 된다.

생성을 완료했다면 클라이언트 ID와 보안 비밀번호가 나오게 되는데 보안 비밀번호의 경우 해당 창을 종료하면 더 이상 볼 수 없다. JSON으로 다운로드하거나 다른 장소에 백업을 해두도록 하자.

여기까지 하면 GCP에서 할 설정이 모두 끝나게 된다. 이제 다시 Cloudflare로 돌아가자.

구글 계정 등록


Cloudflare로 돌아와 GCP에서 발급받은 클라이언트 ID는 App ID에 입력하고 클라이언트 보안 비밀번호는 Client secret에 입력해 준 뒤 저장을 누르면 Google 계정 등록이 완료된다.

접근 제한 설정


계정을 등록했으면 내가 원하는 도메인만 제로 트러스트를 적용할 수 있게 설정을 해야 한다.
Access 메뉴의 applications로 진입해 Add an application 버튼을 누르면 제로 트러스트를 적용할 도메인을 설정할 수 있다.

application의 종류는 Self-hosted를 선택한다.

메뉴로 진입하면 도메인에 대한 접근 설정을 할 수 있다.
Session Duration의 시간 동안은 해당 도메인 접근 시 재 인증을 할 필요가 없다. No duration부터 1달까지 기간은 다양하다.
도메인의 경우 제로 트러스트를 적용할 도메인을 지정해 준다.
그 외 설정은 특별한 것이 없으며, 설정을 마쳤다면 설정을 저장해 준다.

설정을 마쳤다면 Application 목록에 추가된 것이 보이며, 제로 트러스트가 제대로 적용됐는지 확인하기 위해 해당 도메인으로 접속을 진행해보자.

제로 트러스트 적용

https://npm.pien.co.kr 로 접속하니 cloudflare의 제로 트러스트로 redirect된 모습을 볼 수 있다.

여기서 등록되지 않은 구글 계정으로 접속을 시도할 경우 해당 계정은 접근을 할 수 없다는 경고 메시지가 출력되는 것을 볼 수 있다.

등록한 계정으로 로그인 시 https://npm.pien.co.kr로 접속된 것을 볼 수 있다!

0개의 댓글