설치 매뉴얼
개요
애저(Azure)는 마이크로소프트의 클라우드 컴퓨팅 플랫폼입니다. 퍼블릭 클라우드는 모든 자산이 인터넷에 존재하고, 클라우드 리소스가 수시로 변동되기 때문에 보안 운영에 더욱 주의를 기울여야 합니다.
애저는 보안 운영에 필요한 리소스 변동 및 서비스 로그를 이벤트 허브(Event Hubs)를 통해 제공합니다. 이벤트 허브는 대량의 데이터를 수집, 변환, 저장하고 실시간으로 스트리밍 처리할 수 있도록 돕는 서비스입니다. 그 외에, API 사용을 감사할 수 있는 활동 로그(Activity Log), 성능 등 주요 지표를 관리할 수 있는 메트릭(Metric)을 제공하고, API를 통해 클라우드 리소스의 목록과 설정을 관리할 수 있도록 지원합니다.
로그프레소는 이벤트 허브와 애저 API를 이용하는 앱을 통해 클라우드의 컴플라이언스 모니터링을 통합할 수 있도록 지원합니다.
전제 조건
작업자는 애저가 제공하는 서비스를 이해하고 있으며, 직접 필요한 서비스를 설정할 수 있어야 합니다. 본 앱을 위한 사전 준비 과정에서 작업자가 반드시 알아야 할 Azure 서비스는 다음과 같습니다.
Microsoft Entra ID에 앱 등록
단계 1: 앱 추가
애저 클라우드에서 로그프레소 소나의 Microsoft Azure 앱과 통신할 Logpresso 앱을 추가합니다. 이 앱은 로그프레소 소나로부터 REST API를 통해 들어오는 요청을 처리합니다.
-
Microsoft Entra ID 서비스 화면에서 관리 > 앱 등록 메뉴에서 새 등록 버튼을 클릭하고 앱을 등록하세요.
-
앱의 이름을 입력하고, 운영 환경에 맞춰 지원되는 계정 유형을 선택하세요. 모두 설정한 후 등록 버튼을 클릭하세요.
-
앱 이름 Logpresso를 클릭한 다음, 애플리케이션(클라이언트) ID, 디렉터리(테넌트) ID 두 가지 속성을 확인하고 안전한 곳에 기록해 보관하세요. 애플리케이션(클라이언트) ID, 디렉터리(테넌트) ID는 Azure 접속 프로파일을 설정할 때 필요합니다.
이제 Logpresso 앱의 통신용 암호 및 API, 앱의 액세스 제어를 설정할 차례입니다.
단계 2: 클라이언트 암호
로그프레소 소나가 Microsoft Azure 앱을 통해 통신할 때 사용할 클라이언트 암호를 추가합니다.
-
Logresso 앱 화면에서 관리 > 인증서 및 암호에서 새 클라이언트 암호 버튼을 클릭한 후 클라이언트 암호 추가 패널에서 추가 버튼을 클릭하세요.
-
설명은 생략해도 괜찮습니다.
-
만료 시간은 조직의 보안정책에 따라 필요한 기간을 지정하세요.
Note암호가 만료되면 Microsoft Azure 앱이 애저 클라우드에 연결할 수 없으므로 만료 시간이 도래하기 전에 알림을 받을 수 있도록 알람을 설정해둘 수 있도록 설정해두는 게 좋습니다. 암호가 만료되기 전에 새 암호를 생성하고, Azure 접속 프로파일에 새 암호를 적용하세요.
-
값은 암호 문자열입니다. 이 화면을 벗어나면 다시 조회할 수 없으므로 암호를 안전한 곳에 기록해 보관하세요. 암호는 Azure 접속 프로파일을 설정할 때 필요합니다.
-
단계 3: API 사용 권한
관리 > API 사용 권한에서 Logpresso 앱이 사용할 API 권한을 설정합니다. 필요한 API는 Azure Key Vault, Azure Service Management 두 가지입니다.
-
Logpresso | API 사용 권한 화면에서 권한 추가 버튼을 클릭하세요.
-
API 사용 권한 요청 패널에서 Azure Key Vault 카드를 클릭하세요.
-
위임된 권한, user_impersonation을 클릭한 후 권한 추가 버튼을 클릭하세요.
-
같은 방법으로 Azure Service Management API에 대해 동일한 권한을 추가하세요.
-
...에 대한 관리자 동의 허용 버튼을 클릭해 Logpresso 앱에 필요한 모든 권한을 부여하세요. 다음 그림과 같이 상태 값이 변경되어 있으면 정상적으로 설정된 것입니다.
단계 4: 구독 ID 확인
홈 > 구독 서비스 화면에서 조회되는 구독 정보 중에서 Microsoft Azure 앱을 연결할 구독 ID를 확인하고 안전한 곳에 기록해 보관하세요. 구독 ID는 Azure 접속 프로파일을 설정할 때 필요합니다.
단계 5: 액세스 제어(IAM)
Logpresso 앱에 적용할 액세스 제어를 설정합니다.
Event Hubs 설정
로그프레소 소나에 설치된 Microsoft Azure 앱은 Event Hubs 서비스에 등록된 이벤트 허브에 저장된 로그를 수집합니다. Event Hubs 서비스는 이벤트 허브(event hub)의 집합으로, 하나하나의 이벤트 허브는 서비스의 명칭과 혼동을 피하기 위해 "엔터티"라 부르겠습니다.
단계 1: 방화벽 Outbound 규칙
방화벽 아웃바운드 규칙 설정이 필요한 경우 다음 문서를 참고해 로그프레소 소나와 통신할 수 있도록 허용 규칙을 설정하세요.
- Azure Event Hubs FAQ: What ports do I need to open on the firewall?
- Azure Event Hubs FAQ: What IP addresses do I need to allow?
단계 2: 엔터티 등록
Event Hubs 네임스페이스(여기서는 logpresso-eventhubs)에 다음과 같이 5개의 엔터티를 등록하세요. 각 엔터티의 이름은 예시일 뿐, 사용자가 임의로 지정할 수 있습니다.
엔터티 | 설명 |
---|---|
activity-logs | 애저 클라우드의 감사 로그를 담는 이벤트 허브 |
azure-ad-logs | Microsoft Entra ID 로그를 담는 이벤트 허브 |
firewall_logs | Azure Firewall 로그를 담는 이벤트 허브 |
front_door_logs | Front Door 및 CDN 로그를 담는 이벤트 허브 |
waf_logs | Azure WAF 로그를 담는 이벤트 허브 |
단계 3: 공유 액세스 정책 엔드포인트
이제 엔터티별로 공유 액세스 정책을 구성하는 단계입니다. 여기서는 activity-logs 엔터티를 대상으로 설명합니다만, 이전에 생성한 엔터티 모두에서 동일한 작업을 수행해야 합니다.
-
logpresso-eventhubs 네임스페이스에서 엔터티 > Event Hubs에서 엔터티의 이름 activity-logs를 클릭하세요.
-
설정 > 공유 액세스 정책으로 이동한 다음, 추가 버튼을 클릭하세요.
-
SAS 정책 추가 패널에서 정책 이름을 지정하고, 수신 대기를 선택한 다음, 만들기 버튼을 클릭하세요.
-
정책 이름은 사용자가 임의로 지정하세요.
-
필요한 액세스는 수신 대기입니다.
-
-
생성된 공유 액세스 정책을 클릭하여 연결 문자열 - 기본 키를 복사한 다음 안전한 곳에 기록해 보관하세요. 이 정보는 Azure Event Hubs 접속 프로파일을 생성할 때 필요합니다.
-
이전에 생성한 5개의 엔터티 모두에서 동일한 작업을 수행하세요.
서비스별 진단 설정
이 단계에서는 각 서비스에서 생성되는 로그를 Event Hubs에 구성한 엔터티에 전송하도록 설정합니다. 여기서 사용되는 이벤트 허브 정책 이름은 Event Hubs에 구성한 네임스페이스의 전역 공유 액세스 정책인 RootManageSharedAccessKey입니다. 이전 단계에서 구성한 엔터티별 공유 액세스 정책은 로그프레소 소나의 접속 프로파일에서 사용되므로 혼동하지 않기를 바랍니다.
단계 1: 활동 로그
활동 로그는 모니터 서비스에서 확인할 수 있습니다. 모니터 > 활동 로그 메뉴로 이동한 다음, 진단 설정 버튼을 클릭하세요. 진단 설정 화면에서 진단 설정 추가 버튼을 클릭하세요.
- 진단 설정 화면에서 이벤트 허브로 스트림 전송할 로그를 선택하세요.
- 이벤트 허브로의 스트림 항목을 체크한 다음, 구독, 이벤트 허브 네임스페이스, 이벤트 허브 정책 이름 속성을 선택하세요.
- 모두 지정한 다음 저장 버튼을 클릭하세요.
단계 2: Microsoft Entra ID
Entra ID 화면에서 모니터링 > 진단 설정 메뉴로 이동한 다음, 진단 설정 추가 버튼을 클릭하세요.
- 진단 설정 화면에서 이벤트 허브로 전송할 로그를 선택하세요.
- 이벤트 허브로의 스트림 항목을 체크한 다음, 구독, 이벤트 허브 네임스페이스, 이벤트 허브 정책 이름 속성을 선택하세요.
- 모두 지정한 다음 저장 버튼을 클릭하세요.
단계 3: Azure Firewall
Azure Firewall 화면에서 진단 설정을 구성할 방화벽을 선택한 다음, 모니터링 > 진단 설정 메뉴에서 진단 설정 추가 버튼을 클릭하세요.
- 진단 설정 화면에서 이벤트 허브로 전송할 로그를 선택하세요.
- 이벤트 허브로의 스트림 항목을 체크한 다음, 구독, 이벤트 허브 네임스페이스, 이벤트 허브 정책 이름 속성을 선택하세요.
- 모두 지정한 다음 저장 버튼을 클릭하세요.
단계 4: Application Gateway
애플리케이션 게이트웨이 화면에서 진단 설정을 구성할 방화벽을 선택하세요. 모니터링 > 진단 설정 메뉴로 이동한 다음, 진단 설정 추가 버튼을 클릭하세요.
- 진단 설정 화면에서 이벤트 허브로 전송할 로그를 선택하세요.
- 이벤트 허브로의 스트림 항목을 체크한 다음, 구독, 이벤트 허브 네임스페이스, 이벤트 허브 정책 이름 속성을 선택하세요.
- 모두 지정한 다음 저장 버튼을 클릭하세요.
단계 5: Front Door 및 CDN 프로필
Front Door 및 CDN 프로필 화면에서 진단 설정을 구성할 프로필을 선택하세요. 모니터링 > 진단 설정 메뉴로 이동한 다음, 진단 설정 추가 버튼을 클릭하세요.
- 진단 설정 화면에서 이벤트 허브로 전송할 로그를 선택하세요.
- 이벤트 허브로의 스트림 항목을 체크한 다음, 구독, 이벤트 허브 네임스페이스, 이벤트 허브 정책 이름 속성을 선택하세요.
- 모두 지정한 다음 저장 버튼을 클릭하세요.
로그프레소 수집 설정
단계 1: Azure 접속 프로파일
이 문서를 참고해 접속 프로파일을 추가하세요.
다음은 접속 프로파일 설정 중 필수 입력 항목입니다.
- 이름: 접속 프로파일을 식별할 고유한 이름
- 식별자: 로그프레소 쿼리 등에서 사용할 접속 프로파일의 고유 식별자
- 유형:
Azure
선택 - 구독 ID: Azure 구독 식별 ID
- 클라이언트 ID: Entra ID에 등록한 앱의 클라이언트 ID
- 테넌트 ID: Azure의 테넌트 ID
단계 2: Azure Event Hubs 접속 프로파일
Azure Event Hubs 접속 프로파일은 Event Hubs에 있는 엔터티 갯수만큼 모두 5개가 필요합니다.
다음은 접속 프로파일 설정 중 필수 입력 항목입니다.
- 이름: 접속 프로파일을 식별할 고유한 이름
- 식별자: Azure에서 로그 및 메트릭 수집에 사용할 접속 프로파일의 고유 식별자
- 유형:
Azure Event Hubs
선택 - 연결 문자열: Event Hub에 등록한 엔터티별 공유 액세스 정책의 연결 문자열 - 기본키에 정의된 값. 엔터티마다 값이 다릅니다.
단계 3: Azure Activity Logs 수집 설정
이 문서를 참고해 수집기를 추가하세요.
다음은 필수 입력 항목입니다.
- 이름: 수집기를 식별할 고유한 이름
- 주기: 5초
- 적재 위치/수집 위치: 로그프레소 플랫폼 구성에 따라 적합한 노드 선택
- 수집 모델:
Azure Activity Logs
선택 - 테이블:
AZURE_ACTIVITY
로 시작하는 이름 입력 - 접속 프로파일: 접속 프로파일 구성 시 입력한 식별자
단계 4: Microsoft Entra ID 수집 설정
다음은 필수 입력 항목입니다.
- 이름: 수집기를 식별할 고유한 이름
- 주기: 5초
- 적재 위치/수집 위치: 로그프레소 플랫폼 구성에 따라 적합한 노드 선택
- 수집 모델:
Microsoft Entra ID
선택 - 테이블:
IAM_ENTRA_ID
로 시작하는 이름 입력 - 접속 프로파일: 접속 프로파일 구성 시 입력한 식별자
단계 5: Azure Firewall 수집 설정
다음은 필수 입력 항목입니다.
- 이름: 수집기를 식별할 고유한 이름
- 주기: 5초
- 적재 위치/수집 위치: 로그프레소 플랫폼 구성에 따라 적합한 노드 선택
- 수집 모델:
Azure Firewall
선택 - 테이블:
FW_AZURE
로 시작하는 이름 입력 - 접속 프로파일: 접속 프로파일 구성 시 입력한 식별자
단계 6: Azure WAF 수집 설정
다음은 필수 입력 항목입니다.
- 이름: 수집기를 식별할 고유한 이름
- 주기: 5초
- 적재 위치/수집 위치: 로그프레소 플랫폼 구성에 따라 적합한 노드 선택
- 수집 모델:
Azure WAF
선택 - 테이블:
WAF_AZURE
로 시작하는 이름 입력 - 접속 프로파일: 접속 프로파일 구성 시 입력한 식별자
단계 7: Azure Front Door 수집 설정
다음은 필수 입력 항목입니다.
- 이름: 수집기를 식별할 고유한 이름
- 주기: 5초
- 적재 위치/수집 위치: 로그프레소 플랫폼 구성에 따라 적합한 노드 선택
- 수집 모델:
Azure Front Door
선택 - 테이블:
AZURE_FRONT_DOOR
로 시작하는 이름 입력 - 접속 프로파일: 접속 프로파일 구성 시 입력한 식별자
마무리
이제 모든 설치 작업이 완료되었습니다. 수집 메뉴에서 데이터가 잘 수집되는지 확인하고, 대시보드로 이동하세요!