2年前にNGINXがF5に加わって以来、お客さまにとって特に大きなメリットの1つとなっているのが、業界をリードするF5のセキュリティに関する専門知識がNGINX製品に統合されたことです。F5 NGINX App Protect WAFとF5 NGINX Controller App Securityは、F5 Advanced WAF、F5 Silverline WAFをはじめとするF5のセキュリティソリューションと同じWebアプリケーションファイアウォール(WAF)テクノロジーを活用しています。各製品は、特定の環境、導入シナリオ、管理上のユースケースに対応するため、それぞれ異なるフォームファクターを採用していますが、実績と信頼のある同じセキュリティ適用エンジンが、高度なWeb攻撃からお客さまを保護します。

WAFテクノロジーが共通しているため、F5のお客さまは、F5 Advanced WAFなどの製品を使用する従来型環境から、NGINX App Protect WAFがより適したコンテナ環境やクラウド環境へ移行する際も、セキュリティチームが承認済みの標準化されたポリシーを引き続き使用できます。製品間でWAFポリシーを移行できるため、F5とNGINXのお客さまは、強固で一貫性があり、コンプライアンスに準拠したセキュリティ態勢を迅速かつ容易に確保できます。
Application Delivery Module向けのNGINX Controller App Securityを導入した際、誤検知を最小限に抑えながら、デフォルトポリシーによってOWASP Top 10やその他の脅威から保護できるようにしました。Application Delivery Moduleバージョン 3.20のController App Securityでは、カスタムのNGINX App Protect WAFポリシーをインポートし、管理対象のすべてのデプロイメントに配布できるようになりました。これを「Bring Your Own NGINX App Protect WAF Policy」(BYO App Protect Policy)と呼びます。
詳細については、以下の説明と概要動画をご覧ください。
 
アプリケーションのモダナイゼーション全体を通じて一貫したWAFポリシーを維持
従来型のアプリケーションデリバリー環境を利用している多くのお客さまは、まずF5 Advanced WAFまたはBIG-IP ASMを導入しています。アプリのモダナイゼーションを進める中で、DevOpsに即したWAFサービスの導入アプローチが必要な新しいアプリには、NGINX App ProtectとNGINX Controller App Securityを活用できます。
NGINX App Protect WAFは単体でも、OWASP Top Tenやその他の高度な脅威に対する防御から、簡素化された宣言型のポリシー定義まで、幅広い機能でモダンアプリを保護します。Controller App Securityを導入してNGINX App Protect WAFインスタンスを管理すると、さらに次のメリットが得られます。
- セキュリティチームは、標準機能で可視性を向上できるほか、承認済みのWAFポリシーと、NGINX App Protect WAFインスタンスをセルフサービスでプロビジョニングおよび管理する機能を開発チームとDevOpsチームに提供できます。さらに、1つのControllerインスタンスで複数のチームをサポートできます。
- 開発チームとDevOpsチームは、使い慣れたController APIとGUIを使用して、承認済みのWAFポリシーをアプリに適用できます。データプレーンでポリシーを適用するNGINX App Protect WAFインスタンスの設定や、ポリシー自体を詳しく理解する必要はありません。

Controller App Security向けのF5 WAFポリシーの準備
アプリのモダナイゼーションを進める中で、すべてのF5およびNGINX WAF実装に一貫したポリシーを適用できるよう、NGINX App Protect Policy Converterを提供しています。このツールは、F5 Advanced WAFポリシー(XML形式)をNGINX App Protect WAFポリシー(JSON形式)に変換します。変換したポリシーは、次のセクションの説明に従ってController App Securityに渡すことができます。
F5 Advanced WAFポリシーをNGINX App Protect WAFポリシーに変換する手順を、説明へのリンクとともに以下に示します。

- ダウンロードしてインストール NGINX App Protect Policy ConverterのDockerイメージをダウンロードしてインストールします。
- エクスポートF5 Advanced WAFポリシーをエクスポートします(手順では「BIG‑IP ASMセキュリティポリシー」と記載されていますが、F5 Advanced WAFポリシーにも適用されます)。
- ポリシーを変換し、JSON形式のNGINX App Protect WAFポリシーにします。
NGINX App Protect WAFポリシーをController App Securityに取り込む
Application Delivery Moduleバージョン3.20のController App Securityでは、BYO App Protect Policyプロセスを使用してNGINX App Protect WAFポリシーを取り込み、管理対象のすべてのNGINX App Protectインスタンスに配布できます。NGINX App Protect WAFポリシーには、ネイティブポリシー、または前のセクションで説明したようにF5 Advanced WAFから変換したポリシーを使用できます。
BYO App Protect Policyプロセスでは、Security StrategyというControllerオブジェクトを使用します。これは、カスタムのNGINX App Protect WAFポリシーを含む、セキュリティ関連ポリシーの論理コンテナです。次に、AppでSecurity Strategyを参照し、関連付けられたWAFポリシーをそのAppに適用します。
BYO App Protect Policyプロセスの詳細については、製品ドキュメントをご覧ください。
使用するインターフェースに応じて、以下のセクションの手順を参照してください。
手順を完了すると、BYO App Protect Policyプロセスを使用してController App Securityに取り込まれたWAFポリシーへの更新が、関連付けられたSecurity Strategyを参照するすべてのApp Componentsに自動的に反映されます。
Application Delivery Moduleバージョン3.20のController App Securityでは、単一ファイルで定義されたWAFポリシーのみがサポートされます。外部参照を使用するWAFポリシー(複数のファイルで構成されるWAFポリシー)のサポートは、今後のリリースで予定されています。
APIの使用
Controller APIを使用してWAFポリシーをController App Securityに取り込むには、次の手順を実行します。
- NGINX App Protect WAFポリシーを
PUTリクエストでSecurity Policyエンドポイントに渡します:
https://{{CONTROLLER_FQDN}}/api/v1/security/policies/{{policy}}- 次のようなJSONオブジェクトを使用します:
{
"metadata": {
"name": "lowriskapppolicy",
"displayName": "Low-Risk App Protect Policy",
"description": "Corporate WAF policy for internal low-risk apps",
},
"desiredState": {
"content": {
"policy": {
"name": "lowriskapppolicy",
"template": {
"name": "POLICY_TEMPLATE_NGINX_BASE"
},
"applicationLanguage": "utf-8",
"enforcementMode": "blocking",
"signatures": [
{
"signatureId": 123458888,
"enabled": false
},
{
"signatureId": 304500123,
"enabled": false
}
],
}
}
}
}- WAFポリシーを参照するSecurity Strategyを作成するため、Security Strategiesエンドポイントに対して
PUTリクエストを送信します:
https://{{CONTROLLER_FQDN}}/api/v1/security/strategies/{{strategy}}- 次のようなJSONオブジェクトを指定します:
{
"metadata": {
"name": "lowriskstrategy",
"displayName": "Low-Risk App Strategy",
"description": "Corporate strategy for internal low-risk apps",
},
"desiredState": {
"content": {
"securityPolicyRef": "/security/policies/lowriskapppolicy"
}
}
}- セキュリティ戦略を参照するには、App Componentエンドポイントへの「
PUT」または「POST」リクエストを使用して、WAFポリシーをApp Component(AppのアプリURIなど)に適用します:
https://{{Controller_FQDN}}/api/v1/services/environments/{{env}}/apps/{{app}}/components/{{component}}- 次のようなJSONオブジェクトを使用します:
{
"metadata": {
"name": "main"
},
"desiredState": {
"ingress": {
"uris": {
"/": {
}
},
. . .
"security": {
"strategyRef": {
"ref": "/security/strategies/lowriskstrategy"
},
"waf": {
"isEnabled": true
}
},
. . .
}GUIの使用
Controller GUIを使用してWAFポリシーをController App Securityに取り込み、適用するには、次の手順を実行します。
- [Create Security Strategy]ページでセキュリティ戦略を作成します。

- NGINX App Protect WAFポリシーがControllerですでに利用可能な場合は、Policyフィールドのドロップダウンメニューから選択します。まだ一覧にない場合は、+ CREATE NEWをクリックします。表示されるCreate Security Policyポップアップウィンドウで、JSON形式のNGINX App Protect WAFポリシーを含むファイルをアップロードします。

- WAFポリシーを適用するアプリの[Edit App Component]ページで、関連付けられているSecurity Strategyを選択します。

NGINX Controller内でのポリシー共有
BYO App Protect Policyプロセスを使用してポリシーをController App Securityに取り込むと、管理するチームが異なる場合でも、Controllerで定義されているすべてのAppでそのポリシーを共有できます。複数のController App Component(またはURIなど、Appのサブコンポーネント)から同じポリシーを参照することで、多数のアプリとAPIにわたってセキュリティ態勢を標準化しやすくなります。

Controllerは、WAFポリシーの管理とバージョン管理を一元化します。ポリシーの新しいバージョンを公開すると、そのポリシーを参照するすべてのController Appコンポーネントに更新が反映されるため、運用が大幅に簡素化されます。
まとめ
F5 WAFテクノロジープラットフォームでは、同じWAF保護ポリシーを移植して再利用できるため、アプリ全体でセキュリティ態勢を標準化できます。この設計思想は、F5およびNGINX WAFソリューションで保護するあらゆるユースケースへの対応にも役立ち、アプリセキュリティの管理と導入をより迅速かつ容易にし、再現性を高めます。
Controller App SecurityのBYO App Protect Policy機能(Controller ADM 3.20で利用可能)により、カスタムのNGINX App Protect WAFポリシーを使用できるようになりました。NGINX App Protect WAFまたはF5 Advanced WAFで作成した堅牢で一貫性のある実証済みのポリシーを使用して、新しいアプリをより簡単に保護できます。さらに、BYO App Protect PolicyとController App Securityを使用すれば、検証済みの単一ポリシーを多数のアプリに適用できるため、ポリシー変更プロセスを大幅に簡素化し、効率化できます。
NGINX Controllerは引き続き、セキュリティチームがアプリケーションチームにセルフサービス方式でセキュリティを提供できるよう支援し、組織の生産性とセキュリティの両立を可能にします。
NGINX Controller App Securityを実際にお試しになりませんか?今すぐNGINX Controllerの30日間無料トライアルを開始するか、ユースケースについてF5にお問い合わせください。
関連するブログ記事
チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。
AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。
JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。
F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。
NGINX PlusによるAWS Auto Scalingグループの負荷分散
新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります