こんにちは。ROBOT PAYMENTでエンジニアをしているtakamoriです。 今回は、「AWS CDKを利用したAppRunner環境構築の実装」記事の続編として、App RunnerへのIPアドレス制限の追加編を書いていきたいと思います。
目的
本記事の目的は、App RunnerへのアクセスにAWS WAFを利用したIPアドレス制限を加える方法の紹介です。開発環境への開発者以外のアクセスを制限したい等、様々なケースでのApp Runnerへアクセス制限をかける場合の手助けになれば幸いです。 なお、本記事ではIPアドレス制限をメインに記載しております。AWS WAFはIPアドレス制限だけでなく様々な機能が提供されていますので、状況に応じて使いわけをお勧めします。
前提
前回までの記事でApp Runner作成等は紹介してますので、今回は既存のApp Runnerに対するWAF設定を記載します。 気になる方は遡ってご確認ください。
手順
- IP setsの作成
- Web ACLの作成
- App RunnerへWeb ACLの紐付け
1. IP setsの作成
AWS WAF -> IP sets -> Creat IP setを選択し、必要情報を入力します。 IPアドレスはCIDR形式で入力する必要があり、今回は特定の1アドレスを許可するために/32でCIDR指定しています。
2. Web ACLの作成
AWS WAF -> Web ACLs -> Create web ACLを選択し、各ステップ毎に情報を入力します。
Step 1
Web ACLの詳細を設定します。 Resource typeはApp Runnerを紐付けたいので「Regional resources」を選択し、RegionはApp Runnerが存在するリージョンを選択します。 Associated AWS resourcesは、後ほどApp Runner側から設定するので現時点では不要です。
Step 2
Web ACLでアクセス制限を行うルールを設定します。 IP制限を持つルールは「Add rules -> Add my own rules and rule groups」を選択することで追加可能です。 今回は次のように、IP setsの作成で追加したIP制限を持つルールを設定しています。
またStep 2全体の設定は次のようになります。 今回は特定IPアドレス以外からのアクセスはブロックしたいので、ルールにマッチしないリクエストはブロックする設定にします。
Step 3
ルールのプライオリティを設定します。 今回は1つのルールなのですが、複数ある場合はプライオリティを設定することで詳細な制限が可能になります。
Step 4
CloudWatchへの出力設定をします。 CloudWatchへのログ出力が不要等あれば設定値を変更してください。
Step 5
今回作成するACLの最終確認します。 確認して問題なければ「Create web ACL」ボタンを押して作成完了です。
3. App RunnerへWeb ACLの紐付け
App Runner -> サービス -> 対象のApp Runnerを選択し、設定タブを開きます。 サービス設定の編集画面を開き、セキュリティの「ウェブアプリケーションファイアウォール」に有効化すると、次のように作成済みのWeb ACLを選択可能になります。
設定保存後、数分すると次のようにWeb ACLが設定されており、特定IP以外からのアクセスもブロックされるようになりました。
最後に
以上がApp RunnerへのIPアドレス制限の追加方法の紹介でした。
今まではIPアドレス制限等ができず開発環境の保護もできない状態でしたが、App Runnerのアップデートで無事保護できるようになりました。また、WAFを導入可能になったことで、App Runnerのセキュリティ面がかなり向上したのではないかと思います。
App Runnerは発展途上で、アップデートのたびにVPCやWAFなどセキュリティ上必要な機能が利用可能になってきたので、これからも開発が進んで欲しい限りです。
We are hiring!!
ROBOT PAYMENTでは一緒に働く仲間を募集しています!!!
speakerdeck.com
www.robotpayment.co.jp
🎉twitter採用担当アカウント開設!🎉どんどん情報発信していきます!!