概要
このドキュメントでは、自動スケールのCisco Firepower Threat Defense Virtual(FTDv)を高信頼環境のAzureに導入する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- NGFWとFirepower Management CenterはプライベートIP経由で通信する必要がある
- 外部ロードバランサーにパブリックIPを指定しないでください
- 関数のアプリはプライベートIPと通信できるはずです
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Azure
- Firepower Management Center
- 仮想マシンのスケールセット
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
FTDvは、シスコのFirepowerNext-Generation Firewall機能を仮想化環境にもたらし、物理環境、仮想環境、クラウド環境、およびクラウド間のワークロードに合わせて一貫したセキュリティポリシーを適用できるようにします。
これらの導入は仮想化環境で利用できるため、現在NGFWではHAのサポートは利用できません。そのため、可用性の高いソリューションを提供するために、シスコの次世代ファイアウォール(NGFW)は、可用性セットや仮想マシンスケールセット(VMSS)などのAzureのネイティブ機能を利用して、NGFWの可用性を高め、トラフィックの増加にオンデマンドで対応します。
このドキュメントでは、さまざまなパラメータに基づいてCisco NGFWをAutoScaleに設定する方法について説明します。これらのパラメータでは、NGFWをオンデマンドで拡張できます。コロケーションデータセンターで使用でき、すべてのNGFWを集中管理する必要があるFirepower Management Center(FMC)を使用する必要があり、また、FMCとFTDが管理トラフィック用にパブリックIPを介して通信することを望まない場合の使用例を説明します。
構成と設計について詳しく説明する前に、Azureに関して十分に理解しておく必要がある概念を次に示します。
アベイラビリティーゾーン: 可用性ゾーンは、データセンターの障害からアプリケーションとデータを保護する高可用性製品です。Availability Zonesは、Azureリージョン内の一意の物理的な場所です。各ゾーンは、独立した電力、冷却、およびネットワーキングを備えた1つ以上のデータセンターで構成されます。
VNET: Azure Virtual Network (VNet)は、Azureのプライベートネットワークの基本的な構成要素です。VNetを使用すると、Azure Virtual Machines (VM)など、さまざまな種類のAzureリソースが、相互、インターネット、オンプレミスネットワークと安全に通信できます。VNetは、独自のデータセンターで運用する従来のネットワークに似ていますが、拡張性、可用性、分離など、Azureのインフラストラクチャの利点が追加されています。VNET内のすべてのサブネットはデフォルトで相互に到達可能ですが、異なるVNET内のサブネットに対しては同じではありません。
可用性セット: 可用性セットは、VMの冗長性と可用性を提供するもう1つのデータセンター構成です。データセンター内でこの構成を使用すると、計画されたメンテナンスイベントまたは計画外のメンテナンスイベントの間に、少なくとも1つの仮想マシンが使用可能になり、99.95%のAzure SLAを満たすことができます。
VMSS: Azure仮想マシンのスケールセットを使用すると、負荷分散されたVMのグループを作成および管理できます。VMインスタンスの数は、需要または定義されたスケジュールに応じて自動的に増減できます。スケールセットは、アプリケーションに高可用性を提供し、多数のVMを一元的に管理、構成、および更新できるようにします。仮想マシンのスケールセットを使用すると、コンピューティング、ビッグデータ、コンテナのワークロードなどの分野に大規模なサービスを構築できます。
Functions App: Azure Functionsは、アプリケーションの実行に必要な、継続的に更新されるすべてのインフラストラクチャとリソースを提供する、オンデマンドで利用できるクラウドサービスです。自分にとって最も重要なコード部分に焦点を当て、残りの部分はAzure Functionsが処理します。Azure Functionsを使用すると、Web APIの構築、データベースの変更への対応、IoTストリームの処理、メッセージキューの管理などを行うことができます。この自動スケールソリューションでは、Azure Functionは、オブジェクトの作成、FTDvの登録/登録解除、パラメータのチェックなどに関するFMCへの様々なAPI要求です。
Logic App: Azure Logic Appsはクラウドサービスで、企業や組織間でアプリケーション、データ、システム、サービスを統合する必要がある場合に、タスク、ビジネスプロセス、ワークフローのスケジュール、自動化、調整を支援します。Logic Appsは、クラウド、オンプレミス、またはその両方で、アプリケーション統合、データ統合、システム統合、エンタープライズアプリケーション統合(EAI)、およびBusiness-to-Business(B2B)コミュニケーションのためのスケーラブルなソリューションを設計および構築する方法を簡素化します。このソリューションは、自動スケールソリューションの機能に対して実行される関数の論理的な順序を提供します。
現在、NGFWで使用できるAutoScaleソリューションは、VNetに対してローカルなプライベートIPと通信するための管理計画を提供せず、FirepowerManagement CenterとNGFW間で通信を交換するためにパブリックIPを必要とします。
この記事では、Firepower Management CenterとNGFWがプライベートIP経由で通信できるようになるまで、この問題を解決することを目的としています。
設定
自動スケールNGFWソリューションを作成するには、この設定ガイドを使用して、次の使用例に対処できるように複数の変更を加えます。
- 機能のアプリは、お客様の内部IPセグメントと通信可能なこと
- ロードバランサーにパブリックIPを指定しないでください
- NGFWとFMC間の管理トラフィックは、プライベートIPセグメントを介して交換する必要があります
AutoScaled NGFWソリューションを作成するには、前述のユースケースを使用して、シスコの公式ガイドに記載されている手順で以下を変更する必要があります。
1. Azure ARMテンプレート
ARMテンプレートは、AzureでAutomationを有効にするために使用されます。シスコは、自動スケールソリューションの作成に利用できる検証済みのARMテンプレートを提供しています。ただし、Public Githubで入手できるこのARMテンプレートは、Expressルート経由で到達可能であるにもかかわらず、お客様の内部ネットワークと通信するために作成できない機能アプリケーションを作成します。したがって、Function Appが消費モードの代わりにプレミアムモードを使用できるように、これを少し変更する必要があります。したがって、必要なARMテンプレートは、https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.gitで入手できます。
2.機能アプリ
関数アプリは、Azure関数のセットです。基本機能は次のとおりです。
- Azureメトリックを定期的に通信/プローブします。
- FTDvの負荷をモニタし、スケールイン/スケールアウト動作をトリガーします。
- 新しいFTDvをFMCに登録します。
- FMCを介して新しいFTDvを設定します。
- スケールインしたFTDvをFMCから登録解除(削除)します。
要件で述べたように、オンデマンドNGFWの作成または削除用に作成されるさまざまな機能は、NGFWのパブリックIPに基づいて実行されます。したがって、パブリックIPではなくプライベートIPを取得するには、C#コードを調整する必要があります。コードを微調整した後、https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.gitでzipファイルを使用して機能アプリケーションを作成できます。
ASM_Function.zipという名前を付けます。これにより、パブリックIPを使用せずに、機能アプリが内部リソースと通信できるようになります。
3.ロジックアプリ
自動スケールロジックアプリはワークフロー、つまりシーケンス内のステップの集合です。Azure関数は独立したエンティティであり、互いに通信することはできません。このオーケストレータは、これらの機能の実行を順に実行し、機能間で情報を交換します。
- Logic Appは、Auto Scale Azure関数間で情報を調整して渡すために使用されます。
- 各ステップは、Auto Scale Azure関数または組み込みの標準ロジックを表します。
- ロジックアプリはJSONファイルとして配信されます。
- ロジックアプリはGUIまたはJSONファイルを使用してカスタマイズできます。
注:https://github.com/Madhuri150791/FunctionApp_with_Premiium_Plan.gitで入手可能なロジックアプリの詳細は慎重に変更する必要があります。これらの項目は、展開の詳細、FUNSTIONAPP名、リソースグループ名、サブスクリプションIDに置き換える必要があります。
ネットワーク図
この画像は、NGFWを通じてAzure環境内で送受信されるトラフィックフローを示しています。
コンフィギュレーション
次に、自動スケールソリューションに必要な各種コンポーネントを作成します。
- 自動スケールロジックのコンポーネントを作成します。
ARMテンプレートを使用して、VMSS、Logic APP、Function APP、App Insight、およびネットワークセキュリティグループを作成します。
移動先 Home > Create a Resource > Search for Template
を選択し、 Template Deployment
を参照。次に、 Create
エディタで独自のテンプレートを作成します。
- クリックして
Save
を参照。
このテンプレートに必要な変更を加え、 Review + create
を参照。
- これにより、指定されたリソースグループのすべてのコンポーネントが作成されます。
- URLにログインします。
ファイルのアップロード ASM_Function.zip
と ftdssh.exe
から site/wwwroot/
フォルダ(指定された場所にアップロードすることが必須です。機能アプリはさまざまな機能を識別しません) 。
次の図のようになります。
- 次の場所にチェックインします。
Function app > Function
を参照。すべての機能が表示されます。
- VMSSが機能アプリ内で機能を実行できるように、アクセス権限を変更します。移動先
-vmss> Access Control (IAM) > Add role assignement
を参照。このVMSSコントリビュータに次のアクセス権を付与
-function-app
.
クリック Save
を参照。
- 移動先
Logic App > Logic Code
https://github.com/CiscoDevNet/cisco-ftdv/tree/master/autoscale/azure/NGFWv6.6.0/Logic%20Appで入手できるコードを使用して、ロジックコードを表示および変更します。 ここでは、Azureサブスクリプション、リソースグループ名、機能アプリ名は、使用前に置き換える必要があります。正常に保存することはできません。
- クリック
Save
を参照。ロジックアプリの概要に移動して有効にする Logic App
を参照。
確認
ロジックアプリを有効にすると、5分の間隔で実行が開始されます。すべてが正しく設定されている場合は、トリガーアクションが成功します。
また、VMはVMSSの下に作成されます。
FMCにログインし、FMCとNGFWがFTDvプライベートIP経由で接続されていることを確認します。
NGFW CLIにログインすると、次のように表示されます。
したがって、FMCはAzureプライベートVNetサブネットを介してNGFWと通信します。
トラブルシュート
新しいNGFWを構築するときにロジックアプリが失敗することがあります。このような状況をトラブルシューティングするには、次の手順を実行できます。
- ロジックアプリが正常に実行されているかどうかを確認してください。
- 障害の原因を特定します。失敗したトリガーをクリックします。
コードフローから障害ポイントを特定します。この図から、FMCに接続できなかったため、ASMロジックが失敗したことは明らかです。次に、Azure内のフローごとにFMCに到達できなかった理由を特定する必要があります。