설치 및 초기화
개요
BotManager-Akamai-Agent는 Origin 서버를 수정하지 않고 Akamai의 EdgeWorker 플랫폼을 활용하여 BotManager의 탐지 기능을 간단하게 적용할 수 있도록 설계되었습니다.
BotManager는 다양한 분석 기법(헤더 분석, 행위 분석, 해외 IP 차단, 접속 통계 등)을 통해 봇 및 매크로 사용자를 탐지하는 솔루션입니다. 이를 통해 웹 서비스를 보호하고, 악성 사용자 및 자동화된 봇의 위협으로부터 데이터를 안전하게 관리할 수 있습니다.
Akamai EdgeWorker란?
Akamai EdgeWorker는 Akamai CDN 상에서 JavaScript를 실행할 수 있는 서버리스 컴퓨팅 플랫폼입니다.
주요 특징:
- 빠른 응답 속도와 대규모 트래픽 처리를 지원합니다.
- CDN에서 직접 처리가 가능하므로 Origin 서버의 부하를 줄입니다.
- 글로벌 네트워크를 통해 높은 안정성과 확장성을 제공합니다.
Akamai EdgeWorker에 대한 자세한 내용은 Akamai 공식 문서를 참조하세요.
설치 방법
1. EdgeWorker 생성
- Akamai 관리 콘솔에서 EdgeWorkers 메뉴로 이동합니다.
- Create EdgeWorker ID를 클릭하고, Dynamic Compute를 선택합니다.
- EdgeWorker가 생성되었으므로 생성된 워커의 ID를 클릭합니다.
- Create Version을 클릭하여 EdgeWorker 버전을 생성합니다.
- BotManager-Akamai-Agent의 최신 버전을 다운로드하여 업로드합니다.
- EdgeWorker 세부 정보 화면으로 돌아가서 Activate Version를 클릭합니다.
- Staging 및 Production 환경에서 Activate하여 배포합니다.
- 배포 상태를 확인합니다.
2. Property Variable 설정
EdgeWorkers를 실행하려면 Akamai Property가 필요합니다. 아직 Akamai Property가 없으면 Property 생성 가이드를 참조해서 만들어야 됩니다.
- Akamai 관리 콘솔에서 Properties 메뉴로 이동합니다.
- 서비스 중인 Property를 선택합니다.
- 현재 적용 중인 Version을 선택하고 Edit New Version을 클릭합니다.
- +Variables를 클릭하고 아래 표에 따라 필수 변수를 추가합니다.
아래 표에서 올바른 Value 값을 얻기 위해 도메인을 선택 후 값을 확인하세요.
| Variable | Required | Value | Description |
|---|---|---|---|
PMUSER_DEFAULT_HOST (hidden) | Yes | %(AK_HOST) | EdgeWorker의 상태가 Failure일때 전송할 호스트 |
PMUSER_TRUE_CLIENT_IP | Yes | (값 없음) | 클라이언트의 IP를 확인하는데 사용 |
PMUSER_BM_SERVER_HOSTNAME | Yes | https://botmanager.stclab.com | BotManager 탐지 서버 주소 |
PMUSER_BM_SERVERURL | Yes | /api/v1/macro | BotManager 탐지 pathname |
PMUSER_BM_TENANTID | Yes | {tenantId} | 고객사 tenantId |
PMUSER_BM_DOMAINNAME | Yes | {domainName} | 선택된 고객사 domainName |
PMUSER_BM_PROTECTION_SERVERURL | Yes | https://cdn-botmanager.stclab.com | 봇으로 판정되었을때 redirect 할 주소 |
PMUSER_BM_SERVER_TIMEOUT | No | 3000 | BotManager 탐지 서버로의 timeout |
PMUSER_BM_BYPASS | No | false | BotManager의 EW가 작동하지 않도록하는 플래그 |
3. Rule 설정
EdgeWorker를 실행하려면 속성을 추가해야 됩니다. BotManager-Akamai-Agent를 위한 3개의 Rule을 생성합니다:
- BotManager EdgeWorker
- BotManager Verify Origin
- EdgeWorker Retry
BotManager EdgeWorker Rule
BotManager EdgeWorker는 특정 경로에 대해 탐지 요청을 처리합니다.
Rules:
- Property Configuration Settings에서 +Rules 선택.
- Blank Rule Template 선택 후, BotManager EdgeWorker 이름으로 저장.
Path 적용:
부분 적용:
- Criteria에서 +Match 선택.
- IF: Path matches one of
/login. - 탐지 하려는 경로가 추가적으로 필요한 경우 +Match 선택
- Criteria의 Match All을 Match Any로 변경
- IF: Path matches one of
/logout.
전체 적용:
- Criteria에서 +Match 선택.
- IF: Path matches one of
/*. - 예외 처리할 파일 확장자 추가를 위해 +Match 선택
- Criteria의 Match All을 Match All로 변경
- IF: File Extension is not one of static resource select.
Behaviors:
- Behaviors에서 +Behavior 선택
- Standard property behavior 선택
- Add a Behavior for this Rule 모달창에서 Set Variable 선택 후 Insert Behavior 선택
- Set Variable:
- Variable:
PMUSER_TRUE_CLIENT_IP. - Expression:
{{builtin.AK_CLIENT_REAL_IP}}.
- Variable:
- Behaviors에서 +Behavior 선택
- Standard property behavior 선택
- Add a Behavior for this Rule 모달창에서 EdgeWorkers 선택 후 Insert Behavior 선택
- EdgeWorkers:
- Enable: On.
- Identifier: 생성한 EdgeWorker ID를 선택.
BotManager Verify Origin Rule
이 Rule은 탐지 서버로 데이터를 전송하는 역할을 합니다. EdgeWorkers는 타사 http 요청을 할 수 없으며 이를 위해서는 외부 요청을 허용하기 위해 몇 가지 규칙을 구성해야 됩니다.
Rules:
- Property Configuration Settings에서 +Rules 선택.
- Blank Rule Template 선택 후, BotManager Verify Origin 이름으로 저장.
Criteria:
- Criteria에서 +Match 선택.
- IF: Path matches one of
/api/v1/macro/detect.
Behaviors:
- Behaviors에서 +Behavior 선택
- Standard property behavior 선택
- Add a Behavior for this Rule 모달창에서 Origin Server 선택 후 Insert Behavior 선택
- Origin Server:
- Origin Type: Your Origin.
- Origin Server Hostname:
botmanager.stclab.com. - True Client IP Header: Yes (
True-Client-IP).
EdgeWorker Retry Rule
EdgeWorkers 실행이 실패했을 경우 대체 경로로 요청을 처리합니다.
Rules:
- Property Configuration Settings에서 +Rules 선택.
- Blank Rule Template 선택 후, EdgeWorker Retry 이름으로 저장.
Criteria:
- Criteria에서 +Match 선택.
- IF: EdgeWorkers Execution Status is Failure.
Behaviors:
- Behaviors에서 +Behavior 선택
- Standard property behavior 선택
- Add a Behavior for this Rule 모달창에서 Site Failover 선택 후 Insert Behavior 선택
- Site Failover:
- Alternate Hostname:
{{user.PMUSER_DEFAULT_HOST}}.
- Alternate Hostname:
4. Activate
- Staging 환경에서 Activate:
- Activate v1 on Staging 클릭 후 확인.
- Production 환경에서 Activate:
- Activate v1 on Production 클릭 후 확인.
설치 완료!
BotManager-Akamai-Agent가 성공적으로 설치되었습니다. 콘솔에서 배포 상태와 설정을 확인하세요.