AWSの運用・導入、システム開発・アプリケーション開発のことならクロスパワーのクラウド

電話番号 電話番号 お問い合わせ

受付時間 平日10:00~18:00

TOP

サービスはこちら

AWS WAFでログイン制御

今回はAWS WAFを利用し、ログインの制御を行います。

 

具体的な要件としては特定のユーザ名(今回は「admin」)でログインを行おうとする場合は、

特定のIP以外からのログインは拒否する設定を試してみようと思います。

 

目次

AWS WAF
条件の作成
ルールの作成
Web ACLの作成
動作確認

 

AWS WAF

 

AWS WAFは名前の通り、アプリケーションを様々な攻撃から守る

AWSのウェブアプリケーションファイヤーウォールのサービスです。

 

WAFなのでSQLインジェクションからクロスサイトスクリプティング等から

リソースを守るルールを作成出来ますが、今回はIP一致条件、

及び文字列一致条件を設定します。

 

また、AWS WAFはApplication Load Balancer、もしくはCloudFrontと紐づける事が出来ます。

 

今回はCloudFront経由でWordPressサイトにアクセスする環境で試してみましょう。

 

条件の作成

 

まずはAWS WAFで下記条件を作成します。

 

・特定のIPからのアクセス

 

AWS WAFのコンソールからIP addresses→Create conditionから自社IPの条件を登録

 

 

・特定のURIへのアクセス(ログインページ)

 

AWS WAFのコンソールからString and regex matching→Create conditionからログインURIをフィルタ

 

 

・特定のリクエストボディの文字列(ログインユーザー名)

 

AWS WAFのコンソールからString and regex matching→Create conditionからリクエストボディのユーザ名をフィルタ

 

 

今回はテストでWordpressのログイン画面を使うのでURIは/wp-login.php、リクエストボディはlog=adminを指定しました。

また、regexでもフィルタする事も可能です。

 

ルールの作成

 

次にこれらの条件を含めたルールを作ります。

ルールはAWS WAFコンソールのRules→Create ruleから作成します。

 

先程作成した条件を追加していきましょう。

 

条件で記載したIPアドレス以外からのアクセスを拒否したいのでIP制限の条件はWhen a request  “does not”

他二つはWhen a request “does”で追加します。

 

 

Web ACLの作成

 

ルールを作成したらCloudFrontに紐づけるWeb ACLを作成しましょう。

AWS WAF コンソールよりWeb ACLs→Create web ACLで作成です。

 

AWS resource to associateに紐づけたいCloudFrontを選びます。

 

 

 

後は先程作成したルールを追加し、ルールにマッチしない場合は許可(Allow all requests that don’t match any rules)

を選択し作成します。

 

 

動作確認

 

設定し終わりましたら、実際にブロックされるか確認してみましょう。

まずは自社IPからadminユーザーでログインしてみます。

 

 

 

ログイン出来ますね。

では自社IP以外で試してみますと……

 

 

拒否されましたね!admin以外のユーザーでログインを試した場合は無事ログイン出来ます。

 

 

 

今回は試しにAWS WAFで簡単にルールを使いログインの制限を行いましたが、

制御するリソースやルールを増やしたり、大手セキュリティー会社が提供している

マネージドルール等の付与も安価で行えるので、是非一度お試しください!

 

Copyright 2016 Cross Power Corporation. All Rights Reserved.