JAWS-UG 朝会 #21 05.27.2021
#jawsug_asa
Stand IO
AWS WAFとBot Controlについての基本的な部分を
取り扱うので初心者の方向けの内容です💡
※このセッションではAWS WAF V2をメインで話します
AWS WAF は、可用性、セキュリティ侵害、リソースの過剰消費に影響を与えるような、ウェブの脆弱性を利用した一般的な攻撃やボットから、ウェブアプリケーションまたは API を保護するウェブアプリケーションファイアウォールです
AWS WAFで保護できること
※Web Application Firewall
AWS WAFは以下のリソースにアタッチし利用することが可能
※ClassicLoadBalancer, NetworkLoadBalancerなどには利用不可
AWS WAFにはルールという概念がある
例えば、User-Agentにchromeが含まれている場合はNGにするなど
これらルールをWAFにアタッチする
ルールにマッチしたリクエストに対するアクション
{
"Name": "exclude-curl",
"Priority": 0,
"Action": {
"Block": {
"CustomResponse": {
"ResponseCode": "400"
}
}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "exclude-curl"
},
"Statement": {
"ByteMatchStatement": {
"FieldToMatch": {
"SingleHeader": {
"Name": "User-Agent"
}
},
"PositionalConstraint": "CONTAINS",
"SearchString": "curl",
"TextTransformations": [
{
"Type": "NONE",
"Priority": 0
}
]
}
}
}
カスタムレスポンスとして400を返す
User-Agentにcurlが含まれているか
AWSのマネージドルールの1つ
ウェブリクエストからBotか判定し、設定したAction(Allow or Block or Count)を行うことが可能
Bot Controlのルールの一部
具体的な内容はブラックボックスになっている
Rule単位でActionをCountに変更することが可能
Lighthouseはcontent_fetcherのカテゴリに分類
curl,wgetはhttp_libraryのカテゴリに分類
Bot Controlで発生する費用
AWS WAFで発生する費用
費用 = Bot Controlで発生する費用 + AWS WAFで発生する費用
※WAFのログを取得するのにKinesis Firehoseが必要になる