インストールおよび初期化
概要
BotManager-CloudFront-AgentはOriginサーバーを修正せずにAWS Lambda@Edgeを活用してBotManagerの検出機能を簡単に適用できるように設計されました。
BotManagerは多様な分析技法(ヘッダー分析、行動分析、海外IPブロック、接続統計など)を通じてボットおよびマクロユーザーを検出するソリューションです。これを通じてウェブサービスを保護し、悪性ユーザーおよび自動化されたボットの脅威からデータを安全に管理できます。
AWS CloudFrontとは?
Amazon CloudFrontはAWSグローバルエッジネットワークを通じたCDNサービスで、静的・動的コンテンツを最終ユーザーに速やかに伝達します。
主要特徴:
- 500個以上エッジロケーション、HTTP/2・gRPC・WebSocketサポート
- Lambda@Edgeでリクエスト/応答中間にカスタムコード実行
- セキュリティ統合:AWS WAF、AWS Shield、SSL/TLS
- リアルタイムロギング:CloudWatch、S3、Kinesis連動
インストール方法
1. Lambda関数生成
Lambda関数はus-east-1(N. Virginia)リージョンで作成する必要があります。これはAWSの要件で、このリージョンは関数を全世界に複製するための中央位置の役割をするためです。
-
us-east-1地域のAWSコンソール → IAM > 役割 → 役割生成
-
trusted entity選択およびCustom trust policyを入力してください:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"edgelambda.amazonaws.com",
"lambda.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
-
権限追加のためにリストで
AWSLambdaBasicExecutionRoleを選択します。 -
役割名は
BotManager-CloudFront-Roleに設定します。 -
AWSコンソール → Lambda > 関数生成
-
関数名および環境設定:
- 関数名:
botmanager-cloudfront-agent - ランタイム:Node.js 18.x以上
- 実行役割:先に生成した
BotManager-CloudFront-Role
- 関数名:
2. エージェントアップロード
-
以下のリンクのBotManager-CloudFront-Agentをダウンロードした後コンソールで**.zip fileを選択**してアップロードします。
-
アップロードが完了すると以下の3つのファイルが生成されます:
botmanager-config.jsonindex.mjspackage.json
3. BotManager初期設定適用
- エージェントをインストールするドメインを選択しCode sourceで
botmanager-config.jsonに以下の内容をコピー後貼り付けます。
{
"BM_TENANTID": "{TENANT ID}",
"BM_DOMAINNAME": "{DOMAIN}"
}
| Key | Require | Value | Description |
|---|---|---|---|
BM_TENANTID | Yes | {tenantId} | 顧客社識別のための固有ID |
BM_DOMAINNAME | Yes | {domainName} | リクエストが入ってくるサーバーのドメイン |
BM_SERVERURL | No | https://botmanager.stclab.com | 検出サーバーURL |
BM_PROTECTION_SERVERURL | No | https://cdn-botmanager.stclab.com | ブロックページ(Captcha、Deny、Challenge)URL |
BM_SERVER_TIMEOUT | No | 1000 | 検出サーバーへのHTTPリクエストタイムアウト(ms) |
BM_STATIC_BYPASS | No | false | LambdaでDocumentではない静的リソース呼び出し時にロジックが実行される場合Documentのときのみ検出するようにする設定値 |
BM_COOKIE_HTTPONLY | No | false | Browser-AgentなしにLambdaのみ使用する場合識別子保護のためのクッキー設定値 |
BM_COOKIE_PROTOCOL | No | https | Browser-Agentでサービスページのプロトコルを知ることができない場合クッキー生成時に該当プロトコル設定に合わせてクッキー生成 |
BM_LOGLEVEL | No | ERROR | ログレベル(DEBUG、INFO、WARN、ERROR) |
BM_BYPASS | No | false | LambdaでBotManager Agentがロジックを実行しないようにするフラグ |
4. 新バージョン公開
- コード適用が完了したらActionsのPublish new versionをクリックして新しいバージョンで公開を進行します。
5. CloudFrontと接続
-
CloudFrontに適用する
botmanager-cloudfront-agentLambda ARNをコピーします。 -
AWSコンソール → CloudFront > デプロイ → BotManager-CloudFront-Agentを適用する対象デプロイを選択します。
-
Behaviorsタブ → 修正するBehavior右側Editをクリックします。
-
Lambda Function Associations:
- Viewer Request → コピーした
botmanager-cloudfront-agentバージョンARNを貼り付けます。 - Viewer Response → 同一ARNを貼り付けます。
- Viewer Request → コピーした
後ろにバージョン名を必ず入れてください。(バージョンが1の場合:1を追加すればよいです。)
-
無効化のためにInvalidationsタブでCreate invalidationをクリックします。
-
オブジェクトパスに
/*を入力し無効化生成をクリックします。 -
コンソールでCloudFront無効化状態を確認してください。(デプロイ完了待機5-10分要)
インストール完了!
完了するとCloudFrontにBotManager-CloudFront-AgentがLambda@Edgeに接続されてボットおよびマクロを検出・ブロックできるようになります。