0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS WAFで特定パス以下に海外IPアクセス制御

Posted at

AWS WAF にて、「ALB」に対して、
国内IPではない、かつ、/admin 以下のパス、でのアクセスの場合に、
アクセス制御(「403 Forbidden」エラー)となるように設定したときの備忘録です。

1.Web ACL 作成前に /admin 判定の設定

AWS WAF の サイドメニュー「Regex pattern sets」を開き「Asia Pacific (Tokyo)」に切り替え、
[ Create regex pattern set ] 押下

Regex pattern set details

Regex pattern set nameadmin(自由に入力)
Description - optional:(空で登録可能なので空で登録)
RegionAsia Pacific (Tokyo)
Regular expressions.*/admin*(/admin 以下)

[ Create regex pattern set ] 押下

2.「Regex pattern sets」登録完了後、Web ACL 作成

AWS WAF の サイドメニュー「Web ACLs」を開き「Asia Pacific (Tokyo)」に切り替え、
[ Create web ACL ] 押下

▼ Step 1 Describe web ACL and associate it to AWS resources

Web ACL details

NamemyACL(自由に入力)
Description - optional:(空で登録可能なので空で登録)
CloudWatch metric name:(Nameの入力値が自動入力される)
Resource typeRegional resources(Application Load Balancer, API Gateway, AWS AppSync)
RegionAsia Pacific (Tokyo)

Associated AWS resources

[ Add AWS Resources ] を押下し「Application Load Balancer」からをALBを選択して「Add」を押下
[ Next ] を押下

▼ Step 2 Add rules and rule groups

Rules

「Add rules」プルダウン「Add my own rules and rule groups」を選択

Rule type

Rule typeRule builder

Rule

Nameblock-from-overseas(自由に入力)
TypeRegular rule

If a request > プルダウン「matches all the statements (AND)」を選択

Statement 1

Negate statement (NOT):「Negate statement results」にチェックを入れる
 → チェックを入れると【 Statement 1 】が【 NOT Statement 1 】に切り替わる
InspectOriginates from a country in
Country codesJapan - JP(検索の入力エリアに「jp」など入力するとすぐに見つかる)
IP address to use to determine the country of originSource IP address

 - AND -

Statement 2

Negate statement (NOT)「Negate statement results」にチェックを入れない
InspectURI path
Match typeMatches pattern from regex pattern set
Regex pattern setadmin(「Regex pattern sets」で /admin 以下判定を設定した名前)
Text transformationNone

Action

ActionBlock
[ Add rule ] を押下

Default web ACL action for requests that don't match any rules

Default actionAllow
[ Next ] を押下

▼ Step 3 Set rule priority

[ Next ] を押下

▼ Step 4 Configure metrics

[ Next ] を押下

▼ Step 5 Review and create web ACL

内容を確認して [ Create web ACL ] を押下( → 完了まで数十秒程かかりました )

動作確認

海外からのアクセスを確認できるツール(サイト)以下2つで検証を行いました。
・「WebPagetest」https://www.webpagetest.org/
・「browserling」https://www.browserling.com/

設定前にアクセス出来ている事を確認し、設定後は「403 Forbidden」になるか確認。

AWS WAF の Web ACLs からも、
Web ACLの詳細画面【 Sampled requests 】にてブロックしたアクセスを確認可能。
プルダウンにて設定したルール名を選択すると、ブロックしたアクセスを絞り込んで確認可能。

最後に

「Regex pattern sets」で /admin 以下判定を設定しなくても、
「URI path」のところをMatch typeStarts with stringにして、
String to match/adminにしてもよかったのかもかもしれません←

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?