WatchGuard Firebox Cloud の AWS への展開を自動化する
Secplicity のクラウドセキュリティに関する本連載の前回の記事では、自動展開における CloudFormation のセキュリティの利点を説明しました。CloudFormation で AWS アカウントにセキュリティアプライアンスを展開すると、クラウド環境のアプリケーションやデータの保護に役立ちます。
AWS の UTM(または次世代ファイアウォール)
WatchGuard Firebox の展開は、AWS アカウントのセキュリティ強化の 1 つの方法です。WatchGuard Firebox Cloud は、ウォッチガードのハードウェア UTM(統合脅威管理)デバイスの仮想バージョンです。UTM によって、複数のセキュリティサービスが連携し、環境内の脅威をブロック、削除、レポートします。WatchGuard Total Security ライセンスには、標準ファイアウォール保護に加えて、APT Blocker、DLP(情報漏えい防止)、IPS(不正侵入防御サービス)などが含まれます。Firebox Cloud は、他のネットワークとの間で送受信されるトラフィックの VPN や暗号化されたチャネルを作成することもできます。
簡潔に言うと、このコードによって次のようなリソースが作成されます。
コード
このブログ記事で説明するコードは、FireboxCloudAutomation GitHub リポジトリにあるものです。GitHub では、インターネットにコードを公開して他のユーザと共有でき、GitHub ユーザは、個人用レポジトリを作成することもできます。リンクをクリックすると、リポジトリに関する情報が記述された README.md ファイルが最初に表示されます。ここに記述されているのは、README.md ファイルの指示に従えば初めてのユーザであっても AWS と Firebox Cloud を簡単に実行できるようにすることを目的とした、単純なコードです。AWS を初めて使用する場合は、AWS のドキュメントに記載されている AWS または AWS Networking の詳細を参照してください。
コードのリンクをクリックすると、リポジトリに含まれるファイルにドリルダウンします。この wiki には、コードに関する詳細、コードによって作成されるリソース、およびコードのアップデート詳細が表示されます。
準備:環境をセットアップする
最初に、readme ファイルの「Before Your Run This Script」に記載されている指示に従います。このセクションには、AWS アカウントの設定、MFA の有効化、必要なツールのインストール、およびコードのダウンロードの方法が記載されているリンクが含まれています。AWS 環境の準備が完了すれば、自分のアカウントに Firebox Cloud インスタンスを簡単に設定できるようになります。
セットアップ手順の説明に従って「git clone」コマンドを実行すると、ローカルマシンに同じコードが作成されます。コードがあるフォルダに移動すると、GitHub リポジトリに置かれているのと同じファイルを参照できます。
コードを実行するには、次の手順を実行します。
端末ウィンドウを開いて、コードディレクトリに移動します。「pwd」と入力すると、/FireboxCloudAutomation/code で終わる現在のパスが表示されます。「ls」と入力すると、ディレクトリが正しければ、次のファイルが表示されます。
「./run.sh」と入力して Enter キーを押します。
以下のスクリーンショットは、この構成でスクリプトを実行すると、米国オレゴン州である us-west-2 リージョンにリソースを展開されることを示しています。リージョン情報に続いて、スクリプトがサポートするオプションが表示されます。
Create/Update の「1」と入力して、Enter キーを押します。
スクリプトの実行に必要な入力値をスクリプトが取得します。アカウントのアクティブな Firebox AMI のリストが表示されます。README.md ファイルの環境セットアップの指示に従っていれば、AMI のリストが表示されるはずです。AMI はリージョン固有のものであるので、注意してください。
スクリプトは、必要な情報の取得後に、すべてのデフォルト値を表示します。表示された値を確認し、「Y」と入力すると、値がそのまま使用されます。いずれかの値を変更する必要がある場合は、「enter」と入力すると、値を入力するプロンプトが表示されます。Enter を押して、デフォルトを使用するか、異なる値を入力します。ほとんどの場合、 CIDR ブロック以外はデフォルト値で問題ないはずです。自分のアカウントにこれらの CIDR ブロックを使用していたり重複していたりするサブネットが存在する場合は、代替 CIDR ブロックを選択する必要があります。また、このスクリプトを実行するには、ネットワーク、ポリシー、KMS キーおよび EC2 キー、IAM ロールなどの、このスクリプトに含まれるすべてのリソースを作成する権限が必要です。
スクリプトの一部のアクションには、MFA トークンが必要です。readme の環境セットアップに続く手順で、MFA(多要素認証)が AWS ユーザアカウントに追加されます。MFA が有効なユーザが AWS コンソールにログインすると、正しいユーザ名とパスワードでログインした後に、そのユーザによるコードの入力が必要になります。MFA セットアップ時に登録されたデバイスでは、常に新しいコードが生成されます。たとえば、iPhone で動作する Google 認証システムの場合のスクリーンショットは次のようになります。このスクリーンショットは、2 つの異なる AWS アカウントのコードです。
ユーザ名のトークンとコードの実行に使用したとアカウント(上記のグレー表示の部分)を入力します。コードによって継続時間が 12 時間のセッションが作成されるため、セッション終了までの間にトークンを再入力する必要はありません。
この段階で、コードによって CloudFormation テンプレートが実行されて、AWS アカウントにリソースが作成されます。端末ウィンドウに、実行されたコマンドの詳細が表示されます。
Secplicity の CloudFormation に関する以前の記事で説明したように、AWS コンソールにログインすることで、作成された CloudFormation スタックとリソースが表示されます。
スクリプトが正常終了すると、最後に「Done」と表示されます。
AWS Console の EC2 Dashboard に移動すると、Firebox Cloud AWS EC2 インスタンス(AWS Cloud で動作する仮想マシン)とパブリック IP アドレスが表示されます。
表示された IP アドレスを使用して、http://x.x.x.x:8080(x.x.x.x は、上記スクリーンショットの青色で示した Firebox の IP アドレス)の Firebox Web UI に移動できます。自分のアカウントとは異なる IP アドレスです。
作成コードの実行中にエラーが発生した場合、ほとんどは、コードを再実行すれば解決します。コンソールで手動更新したり、一部のコードを変更したりすると、この再実行プロセスが失敗する場合があります。本番環境で利用する場合は、本番環境で実行する前に本番環境以外でコードをテストして再実行し、コードが正しく動作することを確認することをお勧めします。
スクリプトを実行して Delete コマンドを選択すると、リソースが削除されます(使用しない場合の課金を防ぎます)。
ここで説明した例を WatchGuard Firebox Cloud などのセキュリティアプライアンスを AWS アカウントに自動展開する際の参考にしていただければ幸いです。— Teri Radichel(@teriradichel)