본문으로 건너뛰기
버전: 1.1.4.1

설치 및 초기화

개요

BotManager-Akamai-Agent는 Origin 서버를 수정하지 않고 Akamai의 EdgeWorker 플랫폼을 활용하여 BotManager의 탐지 기능을 간단하게 적용할 수 있도록 설계되었습니다.

BotManager는 다양한 분석 기법(헤더 분석, 행위 분석, 해외 IP 차단, 접속 통계 등)을 통해 봇 및 매크로 사용자를 탐지하는 솔루션입니다. 이를 통해 웹 서비스를 보호하고, 악성 사용자 및 자동화된 봇의 위협으로부터 데이터를 안전하게 관리할 수 있습니다.

Akamai EdgeWorker란?

Akamai EdgeWorker는 Akamai CDN 상에서 JavaScript를 실행할 수 있는 서버리스 컴퓨팅 플랫폼입니다.

주요 특징:

  • 빠른 응답 속도와 대규모 트래픽 처리를 지원합니다.
  • CDN에서 직접 처리가 가능하므로 Origin 서버의 부하를 줄입니다.
  • 글로벌 네트워크를 통해 높은 안정성과 확장성을 제공합니다.

Akamai EdgeWorker에 대한 자세한 내용은 Akamai 공식 문서를 참조하세요.

설치 방법

1. EdgeWorker 생성

  1. Akamai 관리 콘솔에서 EdgeWorkers 메뉴로 이동합니다.
  2. Create EdgeWorker ID를 클릭하고, Dynamic Compute를 선택합니다.
  3. EdgeWorker가 생성되었으므로 생성된 워커의 ID를 클릭합니다.
  4. Create Version을 클릭하여 EdgeWorker 버전을 생성합니다.
  5. BotManager-Akamai-Agent의 최신 버전을 다운로드하여 업로드합니다.
  6. EdgeWorker 세부 정보 화면으로 돌아가서 Activate Version를 클릭합니다.
  7. StagingProduction 환경에서 Activate하여 배포합니다.
  8. 배포 상태를 확인합니다.

2. Property Variable 설정

EdgeWorkers를 실행하려면 Akamai Property가 필요합니다. 아직 Akamai Property가 없으면 Property 생성 가이드를 참조해서 만들어야 됩니다.

  1. Akamai 관리 콘솔에서 Properties 메뉴로 이동합니다.
  2. 서비스 중인 Property를 선택합니다.
  3. 현재 적용 중인 Version을 선택하고 Edit New Version을 클릭합니다.
  4. +Variables를 클릭하고 아래 표에 따라 필수 변수를 추가합니다.

아래 표에서 올바른 Value 값을 얻기 위해 도메인을 선택 후 값을 확인하세요.

VariableRequiredValueDescription
PMUSER_DEFAULT_HOST (hidden)Yes%(AK_HOST)EdgeWorker의 상태가 Failure일때 전송할 호스트
PMUSER_TRUE_CLIENT_IPYes(값 없음)클라이언트의 IP를 확인하는데 사용
PMUSER_BM_SERVER_HOSTNAMEYeshttps://botmanager.stclab.comBotManager 탐지 서버 주소
PMUSER_BM_SERVERURLYes/api/v1/macroBotManager 탐지 pathname
PMUSER_BM_TENANTIDYes{tenantId}고객사 tenantId
PMUSER_BM_DOMAINNAMEYes{domainName}선택된 고객사 domainName
PMUSER_BM_PROTECTION_SERVERURLYeshttps://cdn-botmanager.stclab.com봇으로 판정되었을때 redirect 할 주소
PMUSER_BM_SERVER_TIMEOUTNo3000BotManager 탐지 서버로의 timeout
PMUSER_BM_BYPASSNofalseBotManager의 EW가 작동하지 않도록하는 플래그

3. Rule 설정

EdgeWorker를 실행하려면 속성을 추가해야 됩니다. BotManager-Akamai-Agent를 위한 3개의 Rule을 생성합니다:

  1. BotManager EdgeWorker
  2. BotManager Verify Origin
  3. EdgeWorker Retry

BotManager EdgeWorker Rule

BotManager EdgeWorker는 특정 경로에 대해 탐지 요청을 처리합니다.

Rules:

  1. Property Configuration Settings에서 +Rules 선택.
  2. Blank Rule Template 선택 후, BotManager EdgeWorker 이름으로 저장.

Path 적용:

부분 적용:

  1. Criteria에서 +Match 선택.
  2. IF: Path matches one of /login.
  3. 탐지 하려는 경로가 추가적으로 필요한 경우 +Match 선택
  4. Criteria의 Match All을 Match Any로 변경
  5. IF: Path matches one of /logout.

전체 적용:

  1. Criteria에서 +Match 선택.
  2. IF: Path matches one of /*.
  3. 예외 처리할 파일 확장자 추가를 위해 +Match 선택
  4. Criteria의 Match All을 Match All로 변경
  5. IF: File Extension is not one of static resource select.

Behaviors:

  1. Behaviors에서 +Behavior 선택
  2. Standard property behavior 선택
  3. Add a Behavior for this Rule 모달창에서 Set Variable 선택 후 Insert Behavior 선택
  4. Set Variable:
    • Variable: PMUSER_TRUE_CLIENT_IP.
    • Expression: {{builtin.AK_CLIENT_REAL_IP}}.
  5. Behaviors에서 +Behavior 선택
  6. Standard property behavior 선택
  7. Add a Behavior for this Rule 모달창에서 EdgeWorkers 선택 후 Insert Behavior 선택
  8. EdgeWorkers:
    • Enable: On.
    • Identifier: 생성한 EdgeWorker ID를 선택.

BotManager Verify Origin Rule

이 Rule은 탐지 서버로 데이터를 전송하는 역할을 합니다. EdgeWorkers는 타사 http 요청을 할 수 없으며 이를 위해서는 외부 요청을 허용하기 위해 몇 가지 규칙을 구성해야 됩니다.

Rules:

  1. Property Configuration Settings에서 +Rules 선택.
  2. Blank Rule Template 선택 후, BotManager Verify Origin 이름으로 저장.

Criteria:

  1. Criteria에서 +Match 선택.
  2. IF: Path matches one of /api/v1/macro/detect.

Behaviors:

  1. Behaviors에서 +Behavior 선택
  2. Standard property behavior 선택
  3. Add a Behavior for this Rule 모달창에서 Origin Server 선택 후 Insert Behavior 선택
  4. 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:

  1. Property Configuration Settings에서 +Rules 선택.
  2. Blank Rule Template 선택 후, EdgeWorker Retry 이름으로 저장.

Criteria:

  1. Criteria에서 +Match 선택.
  2. IF: EdgeWorkers Execution Status is Failure.

Behaviors:

  1. Behaviors에서 +Behavior 선택
  2. Standard property behavior 선택
  3. Add a Behavior for this Rule 모달창에서 Site Failover 선택 후 Insert Behavior 선택
  4. Site Failover:
    • Alternate Hostname: {{user.PMUSER_DEFAULT_HOST}}.

4. Activate

  1. Staging 환경에서 Activate:
    • Activate v1 on Staging 클릭 후 확인.
  2. Production 환경에서 Activate:
    • Activate v1 on Production 클릭 후 확인.

설치 완료!

BotManager-Akamai-Agent가 성공적으로 설치되었습니다. 콘솔에서 배포 상태와 설정을 확인하세요.