JP2024515401A - クラウドネイティブアプリケーションのための動的にスケーラブルなアプリケーションファイアウォール配備 - Google Patents
クラウドネイティブアプリケーションのための動的にスケーラブルなアプリケーションファイアウォール配備 Download PDFInfo
- Publication number
- JP2024515401A JP2024515401A JP2023532736A JP2023532736A JP2024515401A JP 2024515401 A JP2024515401 A JP 2024515401A JP 2023532736 A JP2023532736 A JP 2023532736A JP 2023532736 A JP2023532736 A JP 2023532736A JP 2024515401 A JP2024515401 A JP 2024515401A
- Authority
- JP
- Japan
- Prior art keywords
- application
- agents
- cloud
- waf
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 18
- 238000002372 labelling Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 13
- 230000003247 decreasing effect Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 3
- 238000012986 modification Methods 0.000 abstract description 4
- 230000004048 modification Effects 0.000 abstract description 4
- 239000003795 chemical substances by application Substances 0.000 description 172
- 238000007689 inspection Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013341 scale-up Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
- H04L63/0218—Distributed architectures, e.g. distributed firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
- H04W12/088—Access security using filters or firewalls
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
パブリックIPアドレスを介して公開されるクラウドアプリケーションの構成は、アプリケーションを内部に公開するためにプライベートIPアドレスを含める修正により複製される。元の構成は更新され、それにより、アプリケーションに送信された外部ネットワークトラフィックは、ウェブアプリケーションファイアウォール(WAF)が実装されているクラウドクラスタのノードで実行されているエージェントにリダイレクトされ、該エージェント間で分散される。それぞれのWAFがリダイレクトされたネットワークトラフィックを検査すべきであるエージェントのセットは、ネットワーク及びリソース利用率メトリックなどのクラスタメトリックに基づいて選択される。リダイレクトされたネットワークトラフィックは、アプリケーションに固有であるエージェントに割り振られたポートをターゲットにし、これにおいて、ポートはアプリケーションごとに割り振られ、ゆえに、エージェントの各々は複数のアプリケーションに対するWAF保護をサポートすることができる。WAFが通過することを許可したネットワークトラフィックは、エージェントからアプリケーションに、そのプライベートIPアドレスを介して向けられる。
Description
本開示は、一般に、電気デジタルデータ処理と、承認されていないアクティビティに対してコンピュータ、そのコンポーネント、プログラム、又はデータを保護するためのセキュリティ配置に関する。
アプリケーション層プロセスを標的とする攻撃は、アプリケーション層攻撃と呼ばれる。アプリケーション層攻撃に対してアプリケーションを保護するために、アプリケーションとそのアプリケーションプログラミングインターフェース(API)は、アプリケーションファイアウォール、又はウェブアプリケーションの場合にはウェブアプリケーションファイアウォール(web application firewall、WAF)の配備を通じて安全にすることができる。クラウド環境で実行されているウェブアプリケーションでは、アプリケーション層攻撃に対する保護のためにクラウドベースのWAFを配備することができる。クラウドアプリケーションは、アプリケーションがローカルではなくクラウドでホストされ、インターネットを介してアクセスできるという点で、従来のソフトウェアアプリケーションと異なる。クラウドコンピューティングへの増大傾向に起因して、アプリケーションは、一般的にクラウドネイティブであるように開発され、あるいはクラウド環境で実行されるように設計されている。疎結合のサービス/マイクロサービスを含むことができる、クラウドネイティブアプリケーションは、アプリケーションが実行され、コンテナオーケストレーションプラットフォームにより管理されるクラウドクラスタのノードに配備されるように設計された、コンテナ化されたアプリケーションである。
コンテナオーケストレーションプラットフォームは一般に、外部に(すなわち、クラスタの外側のエンティティにとってアクセス可能にされる)又は内部に(すなわち、クラスタ内のエンティティにとってアクセス可能にされる)のいずれかでクラウドアプリケーションの公開を容易にする機能を提供する。例えば、クラウドアプリケーションは、クラウドプロバイダによる、クラウドアプリケーションの1つ以上のコンテナのグループへの、パブリックインターネットプロトコル(IP)アドレスの割り振りを通じて外部に公開することができる。その後、クラスタの外部のエンティティから発信されたネットワークトラフィックは、パブリックIPアドレスを介してクラウドアプリケーションにルーティングされ、クラスタの外部のロードバランサ(例えば、クラウドプロバイダにより制御されるロードバランサ)によりクラウドアプリケーションのコンテナにわたってロードバランシングされる。パブリックな公開が望まれない場合、クラウドアプリケーションは、クラウドアプリケーションの1つ以上のコンテナのグループへのプライベートIPアドレスの割り振りを通じて、クラスタ内のエンティティにとってアクセス可能にすることができる。その後、クラスタ内から発信されるネットワークトラフィックのロードバランシングは、コンテナオーケストレーションプラットフォーム自体により管理することができる。
開示の実施形態は、添付図面を参照することによってより良く理解され得る。
クラウド環境で実行されているアプリケーションを安全にするためのWAFの動的にスケーラブルな配備の一例示的な概念図を示す。
クラウドアプリケーションが実行されるクラスタ内の観測された状態に基づいて、クラウドアプリケーションを安全にするために利用可能な配備されたWAFインスタンスを動的にスケーリングする一例示的な概念図を示す。
クラスタ上で実行されているクラウドアプリケーションのためにスケーラブルなWAF配備を実行する例示的な動作のフローチャートを示す。
クラスタノードにわたってクラウドアプリケーションのためのネットワークトラフィックの検査に利用可能なWAFインスタンスを動的にスケーリングする例示的な動作のフローチャートを示す。
クラスタノードにわたってクラウドアプリケーションのためのネットワークトラフィックの検査に利用可能なWAFインスタンスを動的にスケーリングする例示的な動作のフローチャートを示す。
クラウドアプリケーションを安全にするために利用可能なWAFインスタンスを動的に配備及びスケーリングする例示的な動作のフローチャートを示す。
クラウド内のクラスタの1つ以上のノードで実行されているアプリケーションを安全にするためにWAFを動的に配備する例示的な動作のフローチャートを示す。
WAF保護のためにアプリケーションを指定するWAFインスタンスを動的に配備及びスケーリングする例示的な動作のフローチャートを示す。
WAF配備マネージャを備えた一例示的なコンピュータシステムを示す。
以下の説明には、開示の態様を具現化する例示的なシステム、方法、手法、及びプログラムフローが含まれる。しかしながら、本開示は、これらの具体的な詳細なしに実施され得ることが理解される。例えば、本開示は、例示的な例において伝送制御プロトコル(TCP)ポートを参照する。本開示の態様は、代わりに、ユーザデータグラムプロトコル(UDP)ポートなどの他のトランスポート層プロトコルに使用されるポートに適用することができる。他の例では、よく知られた命令インスタンス、プロトコル、構造、及び手法は、説明を分かりにくくしないように、詳細に示されていない。
概要
クラウドネイティブアプリケーション(以降、「クラウドアプリケーション」又は「アプリケーション」)のコンテナが実行される基礎をなすインフラストラクチャに対して最小限の影響で、クラウドクラスタのノードにわたってWAFを動的に配備及びスケーリングする手法を開発した。アプリケーションに向けられた(directed)トラフィックの検査のためのアクティブなWAFインスタンスのスケーリングは、クラスタ内で観測された状態に基づいて自動化され、それにより、顧客は、それらのアプリケーションを効果的に安全にする(secure)ためにWAFインスタンスのスケーリング又は分散を手動で管理する必要がない。本明細書で説明される解決策を用い、WAFはエージェントを介して実装及びインスタンス化され、これにおいて、エージェントはクラウドクラスタの各ノードで実行される。各エージェントコンテナに動的にラベルを付けて、ネットワークトラフィックの量及びノードリソース利用率などの観測された状態に基づいて、エージェントを介して配備されたWAFが傍受されたネットワークトラフィックを検査すべきであるアプリケーションを示すことにより、各アプリケーションのために利用可能なWAFインスタンスの数を、クラスタの状態に合うように動的にスケールアップ又はスケールダウンすることができる。
外部に公開された(exposed)アプリケーションを検出した後、アプリケーションの複製構成が、アプリケーションがクラスタ内で内部に公開されるように、パブリックIPアドレスでなくアプリケーションにアクセスするためのプライベートIPアドレスを含める修正により、生成される。アプリケーションが外部に公開されている元の構成は更新され、それにより、外部ソースからアプリケーションに送信されたネットワークトラフィックは、クラスタのノードで実行されているエージェントにリダイレクトされ(redirected)、該エージェントにわたって分散される。ネットワークトラフィックがリダイレクトされることになるエージェントが選択され、アプリケーションを指定するラベルが、アプリケーションに向けられた測定されたネットワークトラフィック及び/又はクラウドクラスタの利用可能なノードにわたるリソース利用率に基づいて付加されることが可能である。例えば、より高い負荷は、全ての利用可能なエージェントの選択及び対応するラベル付けを促す場合があり、それにより、ネットワークトラフィックは、利用可能なリソースを圧倒することなくノードにわたって分散でき、一方で、アプリケーションがより低いトラフィックを経験している場合には、エージェントのサブセットが選択され、ラベル付けされる場合がある。固有のポートがエージェントに対して割り振られ、該ポート上で、エージェントはアプリケーションからリダイレクトされたネットワークトラフィックを受信することができ、これにおいて、ポートはアプリケーションごとに割り振られ、それにより、エージェントは、エージェントに割り当てられたポート番号とラベルの組み合わせに基づいて、異なるアプリケーションに対応するネットワークトラフィック間で区別することができる。WAFが通過することを許可したネットワークトラフィックは、次いで、外部にではなく内部にアプリケーションを公開するプライベートIPアドレスを介して、クラスタ内からアプリケーションに向けることができる。アプリケーションに仕向けられた(destined)ネットワークトラフィックをルーティングすることができる利用可能なWAFインスタンスの数が、アプリケーションが実行されるノードのアプリケーション負荷及びリソース利用率と相関しているため、WAFインスタンスを動的にスケーリングすることは、クラスタ内のリソース利用率の節約に寄与する。リソース利用率は、さらなるアプリケーションのためにさらなるエージェントを配備するのと対照的に、異なるアプリケーションに固有のポート及びラベルの割り振りを通じて、ノードで実行されている複数のアプリケーションにWAF保護を提供するために1つのエージェントを活用した結果として、さらに節約される。
例示的な説明
図1は、クラウド環境で実行されているアプリケーションを安全にするためのWAFの動的にスケーラブルな配備の一例示的な概念図を示す。アプリケーション101とアプリケーション103の2つのレプリカ各々がクラウド108に配備され、クラスタ115で実行される。アプリケーション101、103は、クラウドネイティブアプリケーションとすることができる。本明細書で用いられるとき、「クラウドネイティブアプリケーション」及び「クラウドアプリケーション」は、クラウド内で実行されるようにコンテナ化されたアプリケーションを指す。クラウド108は、パブリッククラウド、プライベートクラウド、又はクラウドサービスプロバイダにより提供されるプライベートクラウドでもよい。クラスタ115は、ワーカノード105Aとワーカノード105Bを含む。ワーカノード105A、105Bは、クラウド108でコンテナ化されたアプリケーションを実行するためのリソースを提供する物理マシン又は仮想マシンであってよい(例えば、コンテナランタイム)。クラスタ115の外部のロードバランサ116は、ワーカノード105A、105B間でトラフィックを分散させる。ロードバランサ116は、クラウドサービスプロバイダにより制御される外部ロードバランサでもよい。
クラスタ115は、マスタノード125をさらに含む。マスタノード125は、アプリケーション101、103の配備及びスケジューリングを管理するコンポーネント(例えば、制御プレーンコンポーネント)と、ワーカノード105A、105Bの構成を含む。マスタノード125は、アプリケーション101、103の配備の構成(例えば、レプリカの数)を規定する構成ファイルなどのクラスタ115のデータのリポジトリ126をさらに維持する。WAF配備マネージャ109は、マスタノード125上で実行される。WAF配備マネージャ109は、クラスタ115内のWAFインスタンスの配備及びスケーリングを管理し、これにおいて、WAFは、ワーカノード105A、105Bの各々で実行されるアプリケーションセキュリティエージェント(「エージェント」)を介して配備される。具体的には、ワーカノード105Aでエージェント107Aが実行され、ワーカノード105Bでエージェント107Bが実行される。エージェント107A、107Bは、マスタノード125によりワーカノード105A、105Bに対して公開されたコンテナオーケストレーションプラットフォーム(container orchestration platform)のAPI127を介して、マスタノード125と通信することができる。
この例では、エージェント107A、107Bは、コンテナ化されたアプリケーションとしてワーカノード105A、105Bのうちのそれぞれのワーカノードに配備される。アプリケーション101、103とエージェント107A、107Bの各インスタンスは、それぞれのコンテナにパッケージ化される。ワーカノード105Aにおいて、アプリケーション101、103とエージェント107Aは、それぞれ、コンテナ104A、コンテナ104B、及びコンテナ104Cにパッケージ化されている。ワーカノード105Bにおいて、アプリケーション101、103とエージェント107Bは、それぞれ、コンテナ104D、コンテナ104E、及びコンテナ104Fにパッケージ化されている。コンテナ104A~Fの各々は、アプリケーション101、103又はエージェント107A、107Bのうちそれぞれのもののプログラムコード、アプリケーション101、103又はエージェント107A、107Bのうちそれぞれのものにより使用されるライブラリなどを含む。コンテナオーケストレーションプラットフォームは、アプリケーション101、103及びエージェント107A、107Bが配備されるコンテナ104A~Iのコンテナオーケストレーションを管理する。
WAF131Aはエージェント107Aを介してインスタンス化され、WAF131Bはエージェント107Bを介してインスタンス化される。WAF131A、131Bは、エージェント107A、107Bのうちのそれぞれのエージェントの機能の一部として(例えば、エージェント107A、107Bの各々の一部として実行されるプロセスとして)実装することができる。WAF131A、131Bは、安全にすべき各アプリケーションのためのエージェント107A、107Bに付加された(すなわち、該エージェントにインストールされているか又はその他の方法で該エージェントにとってアクセス可能である)WAF構成120に基づいて、クラスタ115で実行されているアプリケーションからリダイレクトされたネットワークトラフィックを検査することができる。WAF構成120は、WAF131A、131Bが安全にすることができるアプリケーションと、傍受されたネットワークトラフィックが評価される対応するルール又はポリシーを示す。したがって、WAF131A、131Bの各々は、ネットワークトラフィックが仕向けられているアプリケーションを判断することと、ネットワークトラフィックの検査に適用するためにWAF構成120内に維持された対応するルール又はポリシーのセットを選択することにより、複数のアプリケーションの保護をサポートすることができる。
図1は、一連の文字A~Dで注釈を付けられている。これらの文字は、動作の段階を表す。これらの段階は、この例のために順序付けられているが、これらの段階は、本開示を理解するのに役立つ1つの例を示しており、特許請求の範囲を制限するために使用されるべきではない。特許請求の範囲の範囲内にある対象事項は、動作の順序及び一部に関して変わる可能性がある。
段階Aにおいて、アプリケーション101が外部に公開されていることを検出したことに基づいて、WAF配備マネージャ109は、アプリケーション101をクラスタ115内で内部に公開するために、アプリケーション103のための修正された構成111を生成する。外部に公開されたアプリケーションは、トラフィックをアプリケーションに向けるロードバランサ116に基づくなどの、外部エンティティからネットワークトラフィックを直接受信するアプリケーションである。アプリケーション101の配備されたインスタンスの構成113は、アプリケーション101のタイプ(type)が「外部(external)」であることを規定し、アプリケーション101にアクセスできるパブリックIPアドレスを含み、アプリケーション101が外部エンティティからネットワークトラフィックを受信することを示す。構成113は、受信したネットワークトラフィックが「appID_101」とラベル付けされたコンテナにルーティングされるべきであることをさらに示し、これは、コンテナ104A、104Dに対応する。WAF配備マネージャ109は、アプリケーション101をクラスタ115で実行されているものとして識別することと、構成113のタイプフィールド、IPアドレスフィールドなどを分析することにより、アプリケーション101が外部に公開されていることを検出することができる。WAF配備マネージャ109は、クラスタ115のために維持されたリポジトリ126から、分析のために構成113を取り出すことができる。次いで、WAF配備マネージャ109は、構成113を複製し、ただし、アプリケーション101を内部に公開するために、アドレスフィールドに示されたパブリックIPアドレスをアプリケーション101に割り振られたプライベートIPアドレスに置き換えることにより、修正された構成111を生成する。結果として、アプリケーション101は、構成113により指定されたとおり外部に、及び修正された構成111により指定されたとおり内部に、の双方で公開される。
段階Bにおいて、WAF配備マネージャ109は、アプリケーション101に仕向けられたネットワークトラフィックをエージェント107A、107Bにリダイレクトするように、クラスタ115内のエンティティを構成する。ネットワークトラフィックは、WAF131A、131BのうちのそれぞれのWAFによる検査のために、エージェント107A、107Bにリダイレクトされ、該エージェントにわたって分散される(例えば、内部でロードバランシングされる)。段階Bで発生する動作は、明確にするために、段階B1と段階B2の2つのサブ段階を含むものとして記載されている。しかしながら、サブ段階の順序及び/又はその中で実行される動作は、実装間で変わる可能性がある。
段階B1において、WAF配備マネージャ109は、アプリケーション101のトラフィックが配信されるエージェント107A、107Bに、ポート123を割り振る。WAF配備マネージャ109は、図1にポート番号30031として示されているポート(例えば、TCPポート)を、エージェント107A、107Bに割り振る。ポート123は、エージェント107A、107Bに対応するコンテナ104C、104FのIPアドレスに割り振られてもよい。WAF配備マネージャ109は、ポート番号がアプリケーション101に固有であるように、ポート123をエージェント107A、107Bに割り振り、すなわち、WAF配備マネージャ109はアプリケーションごとにポートを割り振り、それにより、エージェント107A、107Bは、ポートで受信したデータが仕向けられているアプリケーションを識別することができる。
段階B2において、WAF配備マネージャ109は、アプリケーション101に仕向けられたトラフィックがエージェント107A、107Bにリダイレクトされ、ポート123をターゲットにするように、構成113を修正して、外部に公開されたアプリケーション101の修正された構成114を生成する。WAF配備マネージャ109は、構成113に対する更新121を生成し、これは、アプリケーション101のコンテナに関連づけられたラベル(label)とポート(port)を、エージェントコンテナに割り当てられるラベルとポート123に置き換える。更新から結果として生じる修正された構成114において、アプリケーション101に関連づけられたラベル「appID_101」とターゲットにされたポートは、「agent_app101」として示される、アプリケーション101のトラフィックがリダイレクトされるエージェントコンテナに割り当てられるラベルの名前と、ターゲットポートとしてのポート123に置き換えられる。アプリケーション101のコンテナでなく、配備されたエージェントのコンテナに対応するポート123及びラベルを示す修正された構成114を生成した結果として、アプリケーション101の宛先アドレスを有する、クラスタ115の外部から発信しているロードバランシングされたトラフィックは、ラベル「agent_app101」及びターゲットTCPポート30031を有するコンテナにリダイレクトされ、該コンテナにわたって分散される(例えば、内部でロードバランシングされる)。
段階Cにおいて、WAF配備マネージャ109は、WAF検査のためにアプリケーション101のトラフィックがリダイレクトされるべき1つ以上のエージェントのセットを決定し、修正された構成114内に列挙されたラベルと一致するラベルを対応するコンテナに割り当てる。WAF配備マネージャ109は、クラスタ115上で実行されているアプリケーションのために利用可能であるべきであるWAFを配備及びスケーリングするために、WAF配備ポリシー(「ポリシー」)106に基づいてエージェントのセットを決定することができる。ポリシー106に基づいて、WAFが実装されているエージェントに対応するコンテナにラベル付けすることで、WAF配備マネージャ109は、ノードリソース使用率(usage)メトリック、ネットワークメトリックなどの様々な基準に基づいて、アプリケーションにとって利用可能なアクティブなWAFインスタンスの数をスケーリングすることができる。この例では、ポリシー106は、アプリケーションのための初期WAF配備において、エージェントコンテナの各々がアプリケーションに対応するラベルをラベル付けされるべきであることを示す。アプリケーション101のためのWAF配備は初期配備であり、ゆえに、WAF配備マネージャ109は、それぞれのコンテナ104C、104Fにラベル119A、119Bを割り当てる。WAF配備マネージャ109は、エージェントのコンテナ又はコンテナ104C、104Fの各々のラベルを示すためにエージェント107A、107Bの構成133を更新することにより(例えば、エージェント107A、107Bのための構成ファイルのラベルフィールドを追加又は更新することにより)、ラベル119A、119Bを割り当てることができる。
段階Dにおいて、WAF配備マネージャ109は、エージェント107A、107Bの構成133を更新し、それにより、ポート123で受信され、WAF131A、131BのうちのそれぞれのWAFを通過することを許可されたトラフィックは、修正された構成111で示されたプライベートIPアドレスを介してアプリケーション101に向けられる。更新において、構成133は、TCPポート30031又はポート123上でエージェント107A、107Bにより受信したデータが、次に、「appID_101」とラベル付けされたコンテナ又はコンテナ104A、104Dに、それらのプライベートIPアドレスを介して向けられるべきであることを示す。アプリケーション101のために2つの構成が生成されており、構成のうちの第1のものはアプリケーション101を外部に公開し、外部トラフィックがエージェント107A、107Bにリダイレクトされるべきであることを規定し、構成のうちの第2のものはアプリケーション101を内部に公開するため(すなわち、修正された構成114と修正された構成111それぞれ)、WAF131A、131Bは、アプリケーション101の外部公開とアプリケーション101の内部公開との間に配備された「中間者」として機能する。
アプリケーション101を外部に公開するための修正された構成114は、ロードバランサ116から受信したトラフィックが「agent_app101」とラベル付けされたコンテナに向けられるべきであることを示し、コンテナ104C、104Fは、それに応じてラベル付けされたため、アプリケーション101に仕向けられているクラスタ115の外部のエンティティから送信されたトラフィックは、それぞれのWAF131A、131Bによる検査のためにエージェント107A、107Bにリダイレクトされる。エージェント107A、107Bは、異なる宛先アドレス(すなわち、アプリケーション101、103のIPアドレス)を有する傍受されたトラフィック間で区別することができ、なぜならば、各アプリケーションのリダイレクトされたネットワークトラフィックは、宛先アプリケーションに対して区別可能であるポートで受信されるためである。例えば、リダイレクトされたアプリケーション101のトラフィックはTCPポート30031をターゲットとし、一方、リダイレクトされたアプリケーション103のトラフィックは異なるポートをターゲットにする。したがって、WAF131A、131Bは、トラフィックが配信されたポートに基づいて、検査のためにリダイレクトされたトラフィックを受信すると、WAF構成120の異なるアプリケーションに対して維持されたルール、ポリシーなどのいずれを適用するかを決定することができる。傍受されたトラフィックの評価に選択的に適用することができる、クラスタ115で実行されている異なるアプリケーションを安全にするためのWAFルール又はポリシーの複数のセットを維持することで、エージェント107A、107Bの各々は、WAFごとの複数のアプリケーションの保護に対して、単一のWAFインスタンスの配備をサポートすることができる。
図2は、クラウドアプリケーションが実行されるクラスタ内の観測された状態に基づいて、クラウドアプリケーションを安全にするために利用可能な配備されたWAFインスタンスを動的にスケーリングする一例示的な概念図を示す。図2は、図1の、エージェント107A、107Bが配備されているワーカノード105A、105Bとマスタノード125とを含むクラスタ115を示している。この例において、WAF131A、131Bは、トラフィックが仕向けられているアプリケーションに対応するWAF構成120に示されたルール、ポリシーなどに対して到来するネットワークトラフィックを評価することに基づいて、アプリケーション101とアプリケーション103の双方を安全にする。図1に示すように、エージェント107A、107Bは、ラベル119A、119Bでのラベル付けに基づいて、TCPポート30031でアプリケーション101からリダイレクトされたネットワークトラフィックを受信するために指定されている。エージェント107A、107Bは、アプリケーション103のトラフィックがエージェント107A、107Bにリダイレクトされ、TCPポート30036をターゲットにすることになることを示すために、「agent_app103」として示されたそれぞれのラベル219A及びラベル219Bをさらにラベル付けされている。アプリケーション101と同様に、ラベル219A、219B、及びTCPポート30036を示す構成213は、アプリケーション103が外部に公開されることを規定し、図1を参照して説明されたように、構成213に基づいて生成された修正された構成211は、アプリケーション103を内部にさらに公開する。
図2は、一連の文字A~Cで注釈を付けられている。これらの文字は、動作の段階を表す。これらの段階は、この例のために順序付けられているが、これらの段階は、本開示を理解するのに役立つ1つの例を示しており、特許請求の範囲を制限するために使用されるべきではない。特許請求の範囲の範囲内にある対象事項は、動作の順序及び一部に関して変わる可能性がある。
段階Aにおいて、WAF配備マネージャは、エージェント107A、107Bからクラスタメトリック229を取得する。エージェント107A、107Bは、ワーカノード105A、105Bのネットワークトラフィック及び/又はリソース使用率(例えば、メモリ及び中央処理装置(CPU)使用率)を監視し、関連するメトリックを収集することができる。エージェント107A、107Bにより収集されたネットワークメトリック及び/又はノードリソース使用率メトリックを含むクラスタメトリック229は、スケジュールされた時間増分において、クラスタ115への更新イベント(例えば、ノードの追加/障害イベント)においてなどで、WAF配備マネージャ109に周期的に報告されてもよく、あるいはWAF配備マネージャ109により要求されてもよい。クラスタメトリック229は、収集されたメトリックが対応するノード及び/又はアプリケーションを示すためにノード識別子(ID)及びアプリケーションIDを含むことができる。
段階Bにおいて、WAF配備マネージャ109は、ポリシー106に基づいてクラスタメトリック229を評価して、アプリケーション101又はアプリケーション103のためのWAFインスタンスの数が、クラスタ115の状態に合わせるために修正されるべきかどうかを判断する。この例におけるポリシー106は、アプリケーションに対応するネットワークメトリック又はアプリケーションが実行されるノードのリソース使用率メトリックのうちのいずれかが閾値を超えている場合などで、アプリケーションにとって利用可能なWAFインスタンスが、高いネットワークトラフィックに合わせるためにスケールアップされるべきであることを示す。ポリシー106は、アプリケーションに属するネットワークメトリック又はリソース使用率メトリックのうちのいずれかが最小配分値を下回っている場合などで、アプリケーションにとって利用可能なWAFインスタンスが、アプリケーションが実行されているノードの低いネットワークトラフィック又は低いリソース使用率に基づいてスケールダウンされるべきであることをさらに示す。WAF配備マネージャ109は、ポリシー106に基づいて各アプリケーションについて収集されたメトリックを評価して、クラスタ115内でアクティブなWAFインスタンスが、ノード間でネットワークトラフィックを再分散させるためのラベル付けを通じて「リバランスされる(rebalanced)」べきかどうかを判断することができる。ポリシー106は、収集されたメトリックがポリシー106で示された閾値を超えているか又は下回っている度合いに基づいてなどの、ポリシーの満足度に基づいて、追加又は除去するWAFインスタンスの数の増分を示すこともできる。
段階Cにおいて、WAF配備マネージャ109は、アプリケーション103のために利用可能なWAFインスタンスが減らされるべきであると判断し、コンテナ104Fからラベル219Bを除去する。WAF配備マネージャ109は、例えば、アプリケーション103が低いネットワークトラフィックを受信していることと、ワーカノード105Bがその最大の配分されたCPU又はメモリ使用率に近づいていることに基づいて、アプリケーション103のためのWAFインスタンスがスケールダウンされるべきであると判断することができる。したがって、WAF配備マネージャ109はコンテナ104Fからラベル219Bを除去し、それにより、エージェント107Bはもはやアプリケーション103を指定しない。結果として、アプリケーション103のトラフィックは、検査のためにエージェント107Bで実行されているWAF131Bにもはやリダイレクトされない。WAF配備マネージャ109は、コンテナ104Fからラベル「agent_app103」を除去するために、エージェント107A、107Bの構成に対する更新を生成することにより、ラベル219Bを除去することができる。したがって、WAF配備マネージャ109は、クラスタ115のインフラストラクチャ又はクラスタ115で実行されている他のアプリケーションに対して最小限の影響~影響なしで、収集されたメトリックに従って、アプリケーションを安全にするために利用可能であるクラスタ115のノードで実行されているエージェントを介して配備されたWAFインスタンスの数を動的にスケーリングすることができる。
図3~図5は、クラスタの監視された状態に基づく、クラスタ上で実行されているクラウドアプリケーションのためのアクティブなWAFインスタンスの自動化された配備及びスケーリングの例示的な動作のフローチャートを示す。例示的な動作は、前の図との整合性のために、WAF配備マネージャを参照して説明される。プログラムコードのために選ばれた名前は、特許請求の範囲を制限するものではない。プログラムの構造と編成は、プラットフォーム、プログラマ/アーキテクトの好み、プログラミング言語などに起因して変わる可能性がある。さらに、コードユニットの名前(プログラム、モジュール、メソッド、関数など)は、同じ理由で変わる可能性があり、任意とすることができる。
図3は、クラスタ上で実行されているクラウドアプリケーションのためにスケーラブルなWAF配備を実行する例示的な動作のフローチャートを示す。WAF配備は、安全にされるクラウドアプリケーションに仕向けられたネットワークトラフィックを検査するためのWAFインスタンスが、クラスタの1つ以上のノードで実行されているアプリケーション及び/又は既存のエージェントを再配備するのでなく、WAFが実装されているエージェントのコンテナにラベル付けすることに基づいて利用可能又は利用不可能にされ得るため、スケーラブルであると言われる。図3の説明は、WAFを実装することができるエージェントが、アプリケーションを実行することができるクラスタの1つ以上のノードの各々に配備されることを仮定している。WAFを介してアプリケーションを安全にすることに加えて、ノードに配備されたエージェントは、ネットワークトラフィック及びノードリソース使用率を監視し、クラスタで実行されているアプリケーションの実行の間に関連するネットワークメトリック及びノードリソース使用率メトリックを収集することができる。
ブロック301において、WAF配備マネージャが、第1の配備構成に関連づけられた外部に公開されたクラウドアプリケーションを識別する。WAF配備マネージャは、クラスタで実行されているアプリケーションの公開を示す、WAF配備マネージャにとってアクセス可能な構成ファイルを分析することに基づいて、クラウドアプリケーションを外部に(すなわち、クラスタの外部のロードバランサに)公開されているものとして識別することができる。例えば、アプリケーションは、ロードバランサを管理するクラウドプロバイダによるパブリックIPアドレスの割り振りに基づいて外部に公開することができる。WAF配備マネージャは、クラスタ上で実行されているアプリケーションのための配備構成を規定する1つ以上の構成ファイルのタイプフィールド、IPアドレスフィールドなどを分析し、その構成ファイルが「外部」のタイプ、パブリックIPアドレスなどを示すフィールドを有することに基づいて、外部に公開されたクラウドアプリケーションを識別することができる。
ブロック303において、WAF配備マネージャは、クラウドアプリケーションをクラスタ内で内部に公開するために、クラウドアプリケーションの配備のためのさらなる構成を生成する。WAF配備マネージャは、クラウドアプリケーションの外部公開を示す構成ファイルをコピーし、クラウドアプリケーションにプライベートIPアドレスを割り振り、結果として生じたさらなる構成ファイルにおいてパブリックIPアドレスをプライベートIPアドレスに置き換えることができる。さらなる構成ファイルを生成するための第1の構成ファイルの複製は、クラウドアプリケーションが公開される2つのIPアドレスを結果としてもたらし、クラウドアプリケーションのコンテナをクラスタの外部のエンティティに公開するパブリックIPアドレスと、クラウドアプリケーションのコンテナをクラスタ内のエンティティに公開するプライベートIPアドレスである。
ブロック305において、WAF配備マネージャは、クラウドアプリケーションに固有である、クラスタのノードで実行されているエージェントの1つ以上のコンテナに対するポートを割り振る。エージェントは、エージェントを内部に公開するために、自身のIPアドレスに関連づけられたコンテナ化されたアプリケーションとして配備され得る。WAF配備マネージャは、クラウドアプリケーションに固有である、エージェントIPアドレス上のポートを割り振り、それにより、ポートは、アプリケーションごとにエージェントコンテナに割り振られる。
ブロック307において、WAF配備マネージャは、クラウドアプリケーションに割り振られたプライベートIPアドレスを介して、ポートに配信されたトラフィックをクラウドアプリケーションにリダイレクトするために、エージェントの構成を更新する。WAF配備マネージャは、割り振られたポートで受信したネットワークトラフィックが、クラウドアプリケーションを内部に公開するための構成に示されたクラウドアプリケーションのプライベートIPアドレスを介してクラウドアプリケーションにリダイレクトされるべきであることを規定するために、エージェントの構成に対する更新を生成することができる。例えば、エージェント構成に対する更新は、割り振られたポートを、クラスタ内でエージェントが公開されているポートとして示すことができる。エージェント構成に対する更新は、クラウドアプリケーションのプライベートIPアドレス及び/又はエージェントに割り当てられたアプリケーション特有のラベルに基づいて、クラウドアプリケーションをパッケージ化したコンテナを、出て行くネットワークトラフィックの宛先として指定することもできる。WAF配備マネージャは、ポートで受信したネットワークトラフィックに対する1つ以上のiptablesルールを作成して、トラフィックをクラウドアプリケーションに、そのプライベートIPアドレスを介して向けることもできる。
ブロック309において、WAF配備マネージャは、クラウドアプリケーションに対応するラベルをエージェントの1つ以上のコンテナに割り当てる。ラベルは、エージェントをパッケージ化するコンテナに(例えば、属性又は他のコンテナメタデータとして)追加又は付加することができる、クラウドアプリケーションに固有のラベルである。ラベルは、コンテナ間でそれらのタイプ/内容に基づいて識別又は区別するために、例えば、コンテナにパッケージ化されたアプリケーションを識別するためなどで、クラスタ内で使用することができる。アプリケーション/エージェント配備の構成は、ネットワークトラフィックがルーティングされるコンテナを制御するために、例えば、ネットワークトラフィックが向けられるべきIPアドレスに関連づけられたコンテナのサブセットを識別するためなどで、ラベルを活用することもできる。したがって、エージェントのラベル付けは、クラスタのノードで実行されているエージェントのセット又はサブセットを識別することと、クラウドアプリケーションに仕向けられたネットワークトラフィックがWAFによる検査のためにリダイレクトされるべきWAFをインスタンス化させることを容易にする。WAF配備マネージャは、ラベルを割り当てるためのルール、ポリシーなどを維持し、そのルール又はポリシーに基づいて(例えば、エージェント構成ファイルを更新することにより)、クラウドアプリケーションに固有のラベルを1つ以上のエージェントコンテナに割り当てることができる。例えば、ラベルは、デフォルトで、又は外部に公開されたアプリケーションの最初の識別とその後のWAF配備において、クラスタ内のエージェントのコンテナの各々に割り当てることができる。図4でさらに説明されるように、ラベルは、観測されたネットワークトラフィックの量及び/又はノードリソース使用率に合わせるために、クラスタのノードにわたってアプリケーショントラフィックを検査するために利用可能であるべきWAFインスタンスの数を増加又は減少させるために、動的に再配布することができる。
ブロック311において、WAF配備マネージャは、クラウドアプリケーションに仕向けられたネットワークトラフィックを、クラウドアプリケーションに対応するラベルに関連づけられた1つ以上のエージェントにリダイレクトするために、第1のアプリケーション構成を修正する。WAF配備マネージャは、クラウドアプリケーションに対応する宛先アドレスを有する、クラスタの外部から発信されるネットワークトラフィックが、クラウドアプリケーションに対応するラベルを有するコンテナにリダイレクトされ、割り振られたポートをターゲットにするべきであることを規定する、クラウドアプリケーションの配備のための構成ファイルに対する更新を生成することができる(例えば、アプリケーションのコンテナに関連づけられた値を置き換えることができるラベルフィールドとターゲットポートフィールドを更新すること/追加することに基づく)。結果として、エージェントは、クラウドアプリケーションのためにインスタンス化されたWAFによる検査のために、クラウドアプリケーションに送信されるネットワークトラフィックを効果的に傍受する。異なるアプリケーションに対して、異なるポート及びラベルがエージェントに割り振られ、割り当てられるため、リダイレクトされたネットワークトラフィックを受信すると、エージェント及び対応するWAF実装は、その後、トラフィックが配信されたポート番号とコンテナのラベル付けとに基づいて、関連するアプリケーションを決定する。WAFは、次いで、それに応じて、クラウドアプリケーションのために定義され、ネットワークトラフィックの検査のためにエージェントにより維持されるポリシー、ルールなどを適用することができる。
図4~図5は、クラスタノードにわたってクラウドアプリケーション(以降、「アプリケーション」)のネットワークトラフィックの検査に利用可能なWAFインスタンスを間で動的にスケーリングする例示的な動作のフローチャートを示す。例示的な動作は、アプリケーションが実行されるクラスタの1つ以上のノードの各々で実行されているエージェントを介してアプリケーションを安全にするためにWAFがインスタンス化されることを仮定している。WAFは、エージェントの各々がWAFの機能を実装し、アプリケーションを指定又はアプリケーションに対応するWAFルール、ポリシーなどを維持することに基づいて、各エージェントを介してアプリケーションに対してインスタンス化することができる。エージェントはさらに、図3を参照して説明されているように、それぞれのWAFによる検査のために、アプリケーションに仕向けられたネットワークトラフィックを傍受するように構成される。
ブロック401において、WAF配備マネージャは、エージェントにより収集されたノードリソース使用率(usage)メトリック及びネットワークメトリックを取得する。クラウドにおけるアプリケーションの実行の間、エージェントは、アプリケーションに送信されるネットワークトラフィックと、クラスタノードによるリソース使用率(例えば、CPU及びメモリ使用率)を監視することができる。WAF配備マネージャは、周期的に更新をポーリングし、又はエージェントから受信して、収集されたノードリソース使用率メトリックとネットワークメトリック(例えば、帯域幅、輻輳、レイテンシなど)を取得することができる。WAF配備マネージャによる収集されたメトリックの取り出しは、スケジュールに従って、及び/又はノード障害イベントなどの収集イベントをトリガするクラスタ内の更新において実行されてもよい。WAF配備マネージャは、アプリケーションの識別子に基づいて、アプリケーショントラフィックに基づいて収集されたネットワークメトリック、及びアプリケーションが現在配備されているノードのリソース使用率メトリックなどの、取得されたメトリックの中でアプリケーションに関連するメトリックを判断することができる。
ブロック403において、WAF配備マネージャは、取得されたメトリックを、アプリケーションを安全にするためのWAFインスタンスの数を修正するための1つ以上の基準に対して評価する。収集されたメトリックの評価は、メトリックを収集すると、又は定義された時間の増分、収集イベントの数などの後に周期的に実行することができる。アプリケーションのためのWAFインスタンスの数を修正することは、アプリケーションに固有のラベルを用いたそれぞれのエージェントのコンテナのラベル付けを介してアプリケーションを指定するWAFをインスタンス化したクラスタ内のノードにわたるエージェントの数を増加又は減少させることを指す。アプリケーションが高いネットワークトラフィックを経験し、かつ/あるいは、その最大配分リソース使用率に近づき又は超えているノードで実行されている場合、より多数のエージェント/WAFがそのアプリケーションを指定してもよく、それにより、アプリケーションに仕向けられたネットワークトラフィックは、検査のためにより多数のWAFに分散でき、ボトルネックが防止される。アプリケーションがより低いネットワークトラフィックを経験し、かつ/あるいは、最小限の数のアクティブノードにネットワークトラフィックを統合することによりリソース使用率を節約するためにキャパシティに近くないノードで実行される場合、より少数のエージェント/WAFがそのアプリケーションを指定してもよい。基準は、ネットワークメトリック及びノードリソース使用率メトリックの最大又は最小値の閾値に基づいてアプリケーションを指定するエージェント/WAFの数を増やすこと及び減らすことの双方について、区別可能な基準を含むことができる。例えば、基準は、アプリケーションが実行される1つ以上のノードのリソース使用率、及び/又はアプリケーションにより受信されるネットワークトラフィックの量(例えば、帯域幅、輻輳、レイテンシなどの観点から)が少なくとも第1の閾値を超えている場合、アプリケーションを指定するエージェント/WAFの数が増やされるべきであることを示す場合がある。基準は、さらに、アプリケーションが実行される1つ以上のノードのリソース使用率、及び/又はアプリケーションにより受信されるネットワークトラフィックの量が少なくとも第1の最小値を下回っている場合、アプリケーションを指定するエージェント/WAFの数が減らされるべきであることを示す場合がある。
ブロック405において、WAF配備マネージャは、基準のうちの少なくとも第1のものが満たされているかを判断する。WAF配備マネージャは、収集されたメトリックの1つ以上が、最大値に対応する閾値を超えているか又は最小値に対応する閾値を下回っている場合、基準のうちの第1のものが満たされたと判断することができる。基準のいずれも満たされなかった場合、動作はブロック401に続く。少なくとも第1の基準が満たされた場合、動作はブロック407に続く。
ブロック407において、WAF配備マネージャは、アプリケーションを指定するWAFインスタンスの数が増やされ又は減らされるべきであるかを判断する。この判断は、取得されたメトリックの評価に基づいて、基準のいずれが満たされたかに基づいて行うことができる。例えば、アプリケーションを指定するWAFインスタンスの数は、取得されたメトリックが最大値に対応する閾値を超えていた場合に増やされ、あるいは取得されたメトリックが最小配分値を下回っていた場合に減らされるべきであると判断することができる。WAFインスタンスの数が増やされるべきである場合、動作は遷移点Aに続き、これは図5のブロック509に続く。WAFインスタンスの数が減らされるべきである場合、動作は遷移点Cに続き、これは図5のブロック510に続く。
ブロック509において、WAF配備マネージャは、アプリケーションを指定すべきさらなるエージェント及びそれぞれのWAFインスタンスの数を決定する。WAF配備マネージャは、取得されたメトリックが1つ以上の閾値を超えていることに基づいて、いくつのさらなるWAFがアプリケーションに利用可能にされるべきであるかを決定するための、さらなる基準、ルールなどを維持することができる。例えば、さらなる基準は、1つのさらなるWAFインスタンスがデフォルトで利用可能にされるべきであることを示すことができ、かつ/あるいは、取得されたメトリックが初期基準を満たした(例えば、1つ以上の閾値を超えていた)度合いに基づいてさらなるインスタンスの数を示すことができる。一例として、さらなる基準は、閾値を超えていた取得されたメトリックが閾値より1~10%大きい、閾値より11~20%大きいなどの場合に利用可能にされる、さらなるWAFの数量を示すことができる。
ブロック511において、WAF配備マネージャは、1つ以上のノードがクラスタ内で追加され、又はアクティブにされるべきであるかを判断する。WAF配備マネージャは、アプリケーションを指定するWAFのスケールアップに合わせるために、さらなるノードが追加され、又はアクティブにされるべきであると決定することができる。例えば、現在アクティブなノードの数が、対応するエージェント/WAFがすでにアプリケーションを指定しているノードと、アプリケーションを指定すべきである決定されたさらなるWAFインスタンスの数との合計より少ない場合、WAF配備マネージャは、スケールアップに合わせるために、ノードが追加され、又はアクティブにされるべきであると判断することができる。一例として、クラスタが5つのノードとそれらの上で実行されているそれぞれのエージェント/WAFとを含み、エージェント/WAFのうちの4つがすでにアプリケーションを指定している場合、決定されたさらなるWAFインスタンスの数が2以上である場合に、さらなるノードが追加又はアクティブ化されるべきである。ノードが追加されるべきである場合、動作はブロック513に続く。さらなるノードが追加される必要がない場合、動作はブロック515に続く。
ブロック513において、エージェントを配備させた決定された数のノードがクラスタ内で追加され又はアクティブにされる。WAF配備マネージャは、クラウドサービスプロバイダに(例えば、クラウドサービスプロバイダにより提供されるAPIを介して)コマンド又は要求を通信して、さらなるノードをプロビジョニングし、新しいノードにエージェントを配備し、あるいはすでにエージェントを配備させているアイドルノードのステータスをアクティブ/利用可能に変更することができる。WAF配備マネージャは、さらに、クラスタにさらなるノードを追加させ、又はアイドルノードのステータスをアクティブ/利用可能に変更する前に、許可(例えば、管理者からの)を要求することができる。
ブロック515において、WAF配備マネージャは、アプリケーションを指定すべきである決定されたさらなるWAFインスタンスの数まで、さらなるエージェントのコンテナに、アプリケーションに固有のラベルを追加する。アプリケーション特有のラベルは、さらに、アプリケーションに関連づけられたIPアドレスに送信されるネットワークトラフィックが、それに応じてラベル付けされたコンテナに向けられるべきであることを指定するラベルフィールドの値として、アプリケーションの外部公開を示す構成に含まれる/含まれている場合がある。したがって、さらなるエージェントのコンテナに追加される、アプリケーションに固有のラベルは、アプリケーション構成に示されたラベルと一致するべきであり、それにより、宛先アドレスとしてアプリケーションのパブリックIPアドレスを有するネットワークトラフィックは、示されたラベルを有するエージェントのコンテナにリダイレクトされる。ラベルは、エージェントの構成に対する更新の生成を通じてエージェントコンテナに追加することができ、これにおいて、更新は、ラベルが追加されるべきコンテナを指定するための1つ以上のコンテナIDを含むことができる。動作は遷移点Bに続き、これは図4のブロック401に続く。
ブロック510において、WAF配備マネージャは、アプリケーションの指定が除去されるべきエージェント及びそれぞれのWAFインスタンスの数を決定する。WAFインスタンスからアプリケーションの指定を除去することは、アプリケーションにとってWAFを利用不可能にし、対応するエージェントのコンテナからアプリケーションに固有のラベルを除去すること、又はWAF及び対応するエージェントが実行されるノードをアイドルにすることを含むことができる。WAF配備マネージャは、取得されたメトリックが1つ以上の最小値を満たしていないことに基づいて、いくつのWAFがアプリケーションにとって利用不可能にされるべきであるかを決定するための、さらなる基準、ルールなどを維持することができる。例えば、さらなる基準は、1つのWAFインスタンスがデフォルトで利用不可能にされるべきであることを示すことができ、かつ/あるいは、取得されたメトリックが初期基準を満たした(例えば、1つ以上の最小値を下回っていた)度合いに基づいて利用不可能にされるインスタンスの数を示すことができる。一例として、さらなる基準は、閾値を下回っていたメトリックが閾値より1~10%少ない、閾値より11~20%少ないなどの場合に利用不可能にされる、WAFの数を示すことができる。
ブロック512において、WAF配備マネージャは、クラスタ内の1つ以上のノードがアイドルにされるべきであるかを判断する。WAF配備マネージャは、ノードで実行されているWAF/エージェントからアプリケーションの指定を除去すると、ノードがもはやアクティブのままである必要がない場合、アプリケーションを指定するWAFのスケールダウンに合わせるために、ノードがアイドルにされるべきであると決定することができる。アプリケーションのスケールダウンは、アプリケーションを指定するWAFのスケールダウンに伴う場合がある。例えば、アプリケーションとエージェントが、ノード上で実行されている唯一のコンテナ化されたアプリケーションであり、アプリケーションとWAFが双方ともスケールダウンされることになる場合、WAF配備マネージャは、クラスタ内のリソースを節約するために、アプリケーションにとって利用可能なWAFの数を減らすことの一部として、ノードがアイドルにされるべきであると決定することができる。ノードがアイドルにされるべきである場合、動作はブロック514に続く。ノードがアイドルにされるべきでない場合、動作はブロック516に続く。
ブロック514において、WAF配備マネージャは、決定された数のノードがアイドルに設定されるべきであることを示す。WAF配備マネージャは、クラウドサービスプロバイダに(例えば、クラウドサービスプロバイダにより提供されるAPIを介して)、ノードを識別するコマンド又は要求を通信して、ノードのステータスをアクティブ/利用可能からアイドルに変更することができる。ノードのステータスをアイドルに設定することは、さらに、ノードで実行されているエージェントを介してインスタンス化されたWAFをアプリケーションにとって利用不可能にする。
ブロック516において、WAF配備マネージャは、アプリケーションの指定を除去すべき残りのWAFインスタンスの数まで、アイドルに設定されていないノードで実行されているエージェント上のコンテナから、アプリケーションに対応するラベルを除去する。ラベルは、エージェントの構成に対する更新の生成を通じてエージェントコンテナから除去することができ、これにおいて、更新は、ラベルが除去されるべきコンテナを指定するための1つ以上のコンテナIDを含むことができる。更新はまた、除去されるラベルを識別するために、ラベルに関連づけられたアプリケーションに関連づけられたIDを示してもよく、なぜならば、エージェントコンテナは、異なるアプリケーションに対応する複数のラベルを保持することができるためである。動作は遷移点Dに続き、これは図4のブロック401に続く。
図6~図8は、新しい技術を説明するための言語の欠点を説明する試みとして、より広い/異なる用語で革新的な技術を説明するフローチャートである。これらのフローチャートは、プログラムコードを編成及び開発するための多数の実装、並びに異なるハードウェア及び/又は仮想化への配備のための様々な選択肢があるため、特定の主体を参照していない。
図6は、クラウドアプリケーションを安全にするために利用可能なWAFインスタンスを動的に配備及びスケーリングする例示的な動作のフローチャートを示す。ブロック601において、クラウドクラスタの1つ以上のノードで実行されている外部に公開されたクラウドアプリケーションが識別される。クラウドアプリケーションは第1の構成を有する。
ブロック603において、第1の構成は、クラウドアプリケーションに仕向けられたネットワークトラフィックを、1つ以上のエージェントに割り振られた第1のポート上で1つ以上のエージェントにリダイレクトするように、修正される。エージェントの各々は、1つ以上のノードのうちのそれぞれのノードで実行され、クラウドアプリケーションのために利用可能であるWAFをインスタンス化している。クラウドアプリケーションを指定するラベルは、エージェントの少なくともサブセットのコンテナに関連づけることができ、これにおいて、エージェントのサブセットのラベル付けは、エージェントのサブセットの各々でインスタンス化されたWAFがクラウドアプリケーションのために利用可能であることを指定する。ブロック605において、エージェントにより収集された複数のメトリックのうちの第1のメトリックが、クラウドアプリケーションのためにWAFが利用可能であるエージェントの数を修正するための第1の基準を満たしているかが判断される。
ブロック607において、第1のメトリックが第1の基準を満たしているという判断に基づいて、クラウドアプリケーションのためにWAFが利用可能であるエージェントの数が修正される。エージェントの数は、エージェントの数を増やすために、クラウドアプリケーションを指定するラベルをエージェントのサブセットに加えてエージェントのコンテナに関連づけること、又は、エージェントの数を減らすために、ラベルをエージェントのサブセットのコンテナのうちの少なくとも第1のものから除去することを通じて、修正することができる。代わりに又はさらに、エージェントの数は、エージェントの数を増やすために、エージェントが配備され、アプリケーションを指定するようにラベル付けされているノードをクラスタに追加すること、又は、エージェントの数を減らすために、1つ以上のノードのうちの第1のもののステータスをアクティブからアイドルに変更することにより、修正することができる。
図7は、クラウド内のクラスタの1つ以上のノードで実行されているアプリケーションを安全にするためにWAFを動的に配備する例示的な動作のフローチャートを示す。ブロック701において、アプリケーションが外部に公開されているという判断に基づいて、アプリケーションをクラスタ内で内部に公開するために、アプリケーションに対して第1の構成が生成される。第1の構成は、アプリケーションを外部に公開するアプリケーションの第2の構成に少なくとも部分的に基づいて生成される。第1の構成は、アプリケーションに割り振られているパブリックネットワークアドレスを含むことができる。第2の構成は、第1の構成をコピーすることと、パブリックネットワークアドレスをアプリケーションに割り振られたプライベートネットワークアドレスに置き換えることに基づいて生成することができる。
ブロック703において、アプリケーションを安全にするためのWAFをインスタンス化した複数のエージェントのうちの少なくとも第1のエージェントが、アプリケーションに対応するラベルの、第1のエージェントとの関連づけに少なくとも部分的に基づいて選択される。複数のエージェントの各エージェントは、1つ以上のノードのうちのそれぞれのノードで実行される。ブロック705において、第1の構成は、アプリケーションに仕向けられたネットワークトラフィックを第1のエージェントにリダイレクトするために修正される。第1の構成は、外部ネットワークトラフィックの宛先として、複数のエージェントに関連づけられたネットワークアドレスに対して割り振られた第1のポートと、ラベルを示すように修正することができる。ブロック707において、第1のエージェントの構成は、第2の構成で示されたアプリケーションのネットワークアドレスに少なくとも部分的に基づいてネットワークトラフィックをアプリケーションに向けるために修正される。第1のエージェントの構成は、第2の構成で示されたアプリケーションのプライベートネットワークアドレスを示すように修正することができる。
図8は、WAF保護のためにアプリケーションを指定するWAFインスタンスを動的に配備及びスケーリングする例示的な動作のフローチャートを示す。ブロック801において、外部に公開されたアプリケーションの識別に基づいて、アプリケーションの第1の構成が、アプリケーションに仕向けられたネットワークトラフィックを1つ以上のエージェントにリダイレクトするために修正される。1つ以上のエージェントの各々は、アプリケーションが実行されるクラウドクラスタの1つ以上のノードのうちのそれぞれのノードで実行される。エージェントの各々はまた、WAFをインスタンス化しており、WAF保護のためにアプリケーションを指定する。エージェントの少なくともサブセットに、アプリケーションに対応するラベルをラベル付けすることができ、これにおいて、エージェントのサブセットのラベル付けは、エージェントのサブセットによるWAF保護のためにアプリケーションを指定する。
ブロック803において、エージェントにより収集された複数のメトリックのうちの第1のメトリックが、WAF保護のためにアプリケーションを指定するエージェントの数を増やし又は減らすための第1の基準を満たしているかが判断される。第1のメトリックが第1の基準を満たしているかどうかの判断は、第1のメトリックが第1のメトリックの最大値を超えている、及び/又は第1のメトリックの最小値を下回っているかどうかに基づくことができる。ブロック805において、第1のメトリックが第1の基準を満たしているという判断に基づいて、WAF保護のためにアプリケーションを指定するエージェントの数が増やされ又は減らされる。WAF保護のためにアプリケーションを指定するエージェントの数は、アプリケーションに対応するラベルを、エージェントのサブセットに加えて少なくとも第1のエージェントにラベル付けすることに少なくとも部分的に基づいて、増やすことができる。WAF保護のためにアプリケーションを指定するエージェントの数は、エージェントのサブセットのうちの少なくとも第1のエージェントから、アプリケーションに対応するラベルを除去することに少なくとも部分的に基づいて、減らすことができる。
バリエーション
フローチャートは、例示の理解を助けるために提供されており、特許請求の範囲の範囲を制限するために使用されるものではない。フローチャートは、特許請求の範囲の範囲内で変わる可能性のある例示的な動作を示している。さらなる動作が実行される場合があり、より少ない動作が実行される場合があり、動作が並列に実行される場合があり、動作が異なる順序で実行される場合がある。例えば、ブロック307と309に示されている動作は、並列又は同時に実行することができる。フローチャート例示及び/又はブロック図の各ブロック、並びにフローチャート例示及び/又はブロック図内のブロックの組み合わせは、プログラムコードにより実装できることが理解されるであろう。プログラムコードは、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルマシン若しくは装置のプロセッサに提供されてもよい。
理解されるように、開示の態様は、システム、方法、又は1つ以上のマシン読取可能媒体に記憶されたプログラムコード/命令として具現化することができる。したがって、態様は、ハードウェア、ソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又はソフトウェア及びハードウェア態様の組み合わせの形態をとる場合があり、これらは全て、一般に本明細書において「回路」、「モジュール」、又は「システム」と呼ばれる場合がある。例示的な図解において個々のモジュール/ユニットとして提示されている機能は、プラットフォーム(オペレーティングシステム及び/又はハードウェア)、アプリケーションエコシステム、インターフェース、プログラマの好み、プログラミング言語、管理者の好みなどのいずれか1つに従って別様に編成することができる。
1つ以上のマシン読取可能媒体の任意の組み合わせを利用することができる。マシン読取可能媒体は、マシン読取可能信号媒体又はマシン読取可能記憶媒体であってよい。マシン読取可能記憶媒体は、例えば、これらに限られないが、プログラムコードを記憶するために電子、磁気、光学、電磁、赤外線、又は半導体技術のいずれか1つ又はこれらの組み合わせを採用するシステム、装置、又はデバイスでもよい。マシン読取可能記憶媒体のより具体的な例(網羅的ではないリスト)には、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラマブル読取専用メモリ(EPROM又はフラッシュメモリ)、ポータブルコンパクトディスク読取専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は前述のものの任意の適切な組み合わせが含まれる。本文献の文脈において、マシン読取可能記憶媒体は、命令実行システム、装置、又はデバイスによる使用又はそれらに関連した使用のためにプログラムを含み又は記憶することができる、任意の有形の媒体であってよい。マシン読取可能記憶媒体は、マシン読取可能信号媒体ではない。
マシン読取可能信号媒体は、マシン読取可能プログラムコードが内部に、例えば、ベースバンドで又は搬送波の一部として具現化された、伝搬データ信号を含むことができる。そのような伝搬信号は、これらに限られないが電磁的、光学的、又はこれらの任意の適切な組み合わせを含む、様々な形式のいずれかを取ることができる。マシン読取可能信号媒体は、マシン読取可能記憶媒体ではなく、かつ命令実行システム、装置、又はデバイスによる使用又はそれらに関連した使用のためにプログラムを通信、伝搬、又は移送することができる、任意のマシン読取可能媒体であってよい。
マシン読取可能媒体に具現化されたプログラムコードは、これらに限られないが、無線、有線、光ファイバーケーブル、RF等、又は前述のものの任意の適切な組み合わせを含む、任意の適切な媒体を使用して送信することができる。
プログラムコード/命令は、さらに、特定の方法で機能するようにマシンに指示することができるマシン読取可能媒体に記憶されてもよく、それにより、マシン読取可能媒体に記憶された命令は、フローチャート及び/又はブロック図の1つ又は複数のブロックに規定された機能/動作を実装する命令を含む製造品を生成する。
図9は、WAF配備マネージャを備えた一例示的なコンピュータシステムを示す。コンピュータシステムは、プロセッサ901を含む(可能性として、複数のプロセッサ、複数のコア、複数のノードを含み、かつ/あるいはマルチスレッドを実装する)。コンピュータシステムは、メモリ907を含む。メモリ907は、システムメモリ、又は上記で既に説明したマシン読取可能媒体の可能な実現のうちいずれか1つ以上でもよい。コンピュータシステムは、バス903とネットワークインターフェース905をさらに含む。システムは、WAF配備マネージャ911をさらに含む。WAF配備マネージャ911は、本明細書に記載されるように、クラウドクラスタの1つ以上のノードにわたる動的なWAF配備及びスケーリングを管理する。前に説明した機能のいずれか1つを、ハードウェアで及び/又はプロセッサ901上で部分的に(又は、全体的に)実装することができる。例えば、機能は、特定用途向け集積回路で、プロセッサ901に実装されたロジックにおいて、周辺デバイス又はカード上のコプロセッサにおいて等で実装されてもよい。さらに、実現には、図9に示されていない、より少ない又はさらなるコンポーネント(例えば、ビデオカード、オーディオカード、さらなるネットワークインターフェース、周辺デバイスなど)を含んでもよい。プロセッサ901とネットワークインターフェース905は、バス903に結合されている。バス903に結合されるものとして示されているが、メモリ907は、プロセッサ901に結合されてもよい。
開示の態様は、様々な実装と活用を参照して説明されているが、これらの態様は例示的であり、特許請求の範囲の範囲はそれらに限定されないことが理解されるであろう。一般に、本明細書で説明されている動的にスケーラブルなWAF配備のための手法は、任意の1つ又は複数のハードウェアシステムと整合性のある設備で実装することができる。多くのバリエーション、修正、追加、及び改善が可能である。
本明細書において単一のインスタンスとして説明されたコンポーネント、動作、又は構造に対して、複数のインスタンスが提供される場合がある。最後に、様々なコンポーネント、動作、及びデータストア間の境界は、ある程度任意であり、特定の動作は、特定の例示的な構成のコンテキストで示されている。機能の他の割り振りが想定され、開示の範囲内に入る場合がある。一般に、例示的な構成において別個のコンポーネントとして提示された構造及び機能は、組み合わせられた構造又はコンポーネントとして実装することができる。同様に、単一のコンポーネントとして提示された構造及び機能は、別個のコンポーネントとして実装することができる。これら及び他のバリエーション、修正、追加、及び改善が、開示の範囲内に入る場合がある。
用語
本説明は、説明の効率と容易さのため、クラウド技術に関する略語を用いている。「クラウド」に言及するとき、本説明は、クラウドサービスプロバイダのリソースを指している。例えば、クラウドは、クラウドサービスプロバイダのサーバ、仮想マシン、及びストレージデバイスを包含することができる。用語「クラウド宛先」及び「クラウドソース」は、ネットワーク接続のエンドポイントとして使用することができるネットワークアドレスを有するエンティティを指す。エンティティは、物理デバイス(例えば、サーバ)でもよく、あるいは仮想エンティティ(例えば、仮想サーバ又は仮想ストレージデバイス)でもよい。より一般的な用語では、顧客にとってアクセス可能なクラウドサービスプロバイダリソースは、ネットワーク接続を介してアクセス可能であるクラウドサービスプロバイダエンティティにより所有/管理されるリソースである。しばしば、アクセスは、クラウドサービスプロバイダにより提供されるアプリケーションプログラミングインターフェース又はソフトウェア開発キットに従う。
接続詞「及び」を用いたリストの前の、語句「のうち少なくとも1つ」の使用は、網羅的なリストとして扱われるべきでなく、別段具体的に示されていない限り、各カテゴリから1つの項目を有するカテゴリのリストとして解釈されるべきではない。「A、B、及びCのうち少なくとも1つ」を記載した節は、列挙された項目のうち1つのみ、列挙された項目のうち複数、及びリスト内の項目の1つ以上と列挙されていない別の項目により侵害される可能性がある。
Claims (15)
- クラウドクラスタの1つ以上のノード上で実行されている外部に公開されたクラウドアプリケーションを識別するステップであり、前記クラウドアプリケーションは第1の構成を有する、ステップと、
前記クラウドアプリケーションに仕向けられたネットワークトラフィックを、1つ以上のエージェントに割り振られた第1のポート上で前記1つ以上のエージェントにリダイレクトするために、前記第1の構成を修正するステップであり、前記エージェントの各々は、前記1つ以上のノードのうちのそれぞれのノードで実行され、前記クラウドアプリケーションのために利用可能であるウェブアプリケーションファイアウォールをインスタンス化している、ステップと、
前記エージェントにより収集された複数のメトリックのうちの第1のメトリックが、前記クラウドアプリケーションのために前記ウェブアプリケーションファイアウォールが利用可能である前記エージェントの数を修正するための第1の基準を満たしているかを判断するステップと、
前記第1のメトリックが前記第1の基準を満たしていると判断したことに基づいて、前記クラウドアプリケーションのために前記ウェブアプリケーションファイアウォールが利用可能である前記エージェントの前記数を修正するステップと、
を含む方法。 - 前記第1の基準は、前記第1のメトリックの最大値に対応する閾値を含み、前記第1のメトリックが前記第1の基準を満たしているかを判断することは、前記第1のメトリックが前記閾値を超えているかを判断することを含み、前記エージェントの前記数を修正することは、前記クラウドアプリケーションのために前記ウェブアプリケーションファイアウォールが利用可能である前記エージェントの前記数を増やすことを含む、請求項1に記載の方法。
- 前記第1の基準は、前記第1のメトリックの最小値を含み、前記第1のメトリックが前記第1の基準を満たしているかを判断することは、前記第1のメトリックが前記最小値を下回っているかを判断することを含み、前記エージェントの前記数を修正することは、前記クラウドアプリケーションのために前記ウェブアプリケーションファイアウォールが利用可能である前記エージェントの前記数を減らすことを含む、請求項1に記載の方法。
- 前記第1の構成をコピーすることと、前記クラウドアプリケーションのパブリックネットワークアドレスを、前記クラウドアプリケーションに割り振られたプライベートネットワークアドレスに置き換えることに少なくとも部分的に基づいて、前記クラウドアプリケーションを、プライベートネットワークアドレスを用いて前記クラウドクラスタ内で内部に公開するために、前記クラウドアプリケーションのための第2の構成を生成するステップと、
前記ウェブアプリケーションファイアウォールを通過することを許可されたネットワークトラフィックを、前記クラウドアプリケーションの前記プライベートネットワークアドレスを介して前記クラウドアプリケーションに向けるために、前記エージェントの構成を修正するステップと、
をさらに含む、請求項1に記載の方法。 - 前記クラウドアプリケーションを指定するラベルを前記エージェントの少なくともサブセットの各々のコンテナに関連づけるステップであり、前記ラベルは、前記エージェントの前記サブセットの各々でインスタンス化された前記ウェブアプリケーションファイアウォールが前記クラウドアプリケーションにとって利用可能であることを指定する、ステップ、をさらに含む請求項1に記載の方法。
- 前記エージェントの前記数を修正することは、前記ラベルを前記エージェントの前記サブセットに加えてエージェントのコンテナに関連づけること、又は、前記ラベルを前記エージェントの前記サブセットの前記コンテナのうちの少なくとも第1のものから除去することを含む、請求項5に記載の方法。
- 前記エージェントの前記数を修正することは、さらなるエージェントを配備したノードを前記クラウドクラスタに追加し、前記ラベルを前記さらなるエージェントのコンテナに関連づけること、又は、前記1つ以上のノードのうちの第1のもののステータスをアクティブからアイドルに変更することを含む、請求項5に記載の方法。
- 前記1つ以上のノードで実行されている第2の外部に公開されたクラウドアプリケーションを識別したことに基づいて、前記第2のクラウドアプリケーションに仕向けられたネットワークトラフィックを、前記1つ以上のエージェントに割り振られた第2のポート上で前記1つ以上のエージェントにリダイレクトするために、前記第2のクラウドアプリケーションの構成を修正するステップであり、前記第2のポートは前記第1のポートと異なる、ステップ、をさらに含む請求項1に記載の方法。
- 前記複数のメトリックは、前記1つ以上のノードの各々のメモリ使用率と、前記1つ以上のノードの各々の中央処理装置(CPU)使用率と、前記クラウドアプリケーションに向けられたネットワークトラフィックの量とのうちの少なくとも1つを示すメトリックを含む、請求項1に記載の方法。
- プログラムコードを記憶させた1つ以上の非一時的マシン読取可能媒体であって、前記プログラムコードは、請求項1乃至9のうちいずれか1項に記載の方法を実行するためにプロセッサにより実行可能であるマシン命令を含む、1つ以上の非一時的マシン読取可能媒体。
- 装置であって、
プロセッサと、
命令を記憶させたコンピュータ読取可能媒体であり、前記命令は、当該装置に、
外部に公開されたアプリケーションの識別に基づいて、前記アプリケーションに仕向けられたネットワークトラフィックを1つ以上のエージェントにリダイレクトするために前記アプリケーションの第1の構成を修正し、
前記1つ以上のエージェントの各々は、前記アプリケーションが実行されるクラウドクラスタの1つ以上のノードのうちのそれぞれのノードで実行され、
前記エージェントの各々は、ウェブアプリケーションファイアウォールをインスタンス化しており、ウェブアプリケーションファイアウォール保護のために前記アプリケーションを指定し、
前記エージェントにより収集された複数のメトリックのうちの第1のメトリックが、ウェブアプリケーションファイアウォール保護のために前記アプリケーションを指定する前記エージェントの数を増やし又は減らすための第1の基準を満たしているかを判断し、
前記第1のメトリックが前記第1の基準を満たしているという判断に基づいて、ウェブアプリケーションファイアウォール保護のために前記アプリケーションを指定する前記エージェントの前記数を増やし又は減らす
ことをさせるために前記プロセッサにより実行可能である、コンピュータ読取可能媒体と、
を含む装置。 - 当該装置に、
前記第1の構成に少なくとも部分的に基づいて、前記アプリケーションを、前記アプリケーションに割り振られたプライベートネットワークアドレスを用いて前記クラウドクラスタ内で内部にするために、前記アプリケーションのための第2の構成を生成し、
ネットワークトラフィックを、前記アプリケーションの前記プライベートネットワークアドレスを介して前記アプリケーションに向けるために、前記エージェントの構成を修正する
ことをさせるために前記プロセッサにより実行可能な命令をさらに含む、請求項11に記載の装置。 - 前記エージェントの少なくともサブセットに、前記アプリケーションに対応するラベルをラベル付けし、前記エージェントの前記サブセットの前記ラベル付けは、前記エージェントの前記サブセットによるウェブアプリケーションファイアウォール保護のために前記アプリケーションを指定する、ことを当該装置にさせるために前記プロセッサにより実行可能な命令をさらに含む請求項11に記載の装置。
- 前記第1のメトリックが前記第1の基準を満たしているかを判断することを当該装置にさせるために前記プロセッサにより実行可能な前記命令は、前記第1のメトリックが前記第1のメトリックの最大値を超えているかを判断することを当該装置にさせるために前記プロセッサにより実行可能な命令を含み、
前記エージェントの前記数を増やし又は減らすことを当該装置にさせるために前記プロセッサにより実行可能な前記命令は、前記アプリケーションに対応する前記ラベルを前記エージェントの前記サブセットに加えて少なくとも第1のエージェントにラベル付けすることに少なくとも部分的に基づいて、ウェブアプリケーションのファイアウォール保護のために前記アプリケーションを指定する前記エージェントの前記数を増やすことを当該装置にさせるために前記プロセッサにより実行可能な命令を含む、請求項13に記載の装置。 - 前記第1のメトリックが前記第1の基準を満たしているかを判断することを当該装置にさせるために前記プロセッサにより実行可能な前記命令は、前記第1のメトリックが前記第1のメトリックの最小値を下回っているかを判断することを当該装置にさせるために前記プロセッサにより実行可能な命令を含み、
前記エージェントの前記数を増やし又は減らすことを当該装置にさせるために前記プロセッサにより実行可能な前記命令は、前記アプリケーションに対応する前記ラベルを前記エージェントの前記サブセットのうちの少なくとも第1のエージェントから除去することに少なくとも部分的に基づいて、ウェブアプリケーションファイアウォール保護のために前記アプリケーションを指定する前記エージェントの前記数を減らすことを当該装置にさせるために前記プロセッサにより実行可能な命令を含む、請求項13に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/139,103 | 2020-12-31 | ||
US17/139,103 US11575651B2 (en) | 2020-12-31 | 2020-12-31 | Dynamically scalable application firewall deployment for cloud native applications |
PCT/US2021/073133 WO2022147436A1 (en) | 2020-12-31 | 2021-12-28 | Dynamically scalable application firewall deployment for cloud native applications |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024515401A true JP2024515401A (ja) | 2024-04-10 |
Family
ID=80112068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023532736A Pending JP2024515401A (ja) | 2020-12-31 | 2021-12-28 | クラウドネイティブアプリケーションのための動的にスケーラブルなアプリケーションファイアウォール配備 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11575651B2 (ja) |
EP (1) | EP4272372A1 (ja) |
JP (1) | JP2024515401A (ja) |
KR (1) | KR20230125180A (ja) |
CN (1) | CN116724577A (ja) |
WO (1) | WO2022147436A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10454714B2 (en) | 2013-07-10 | 2019-10-22 | Nicira, Inc. | Method and system of overlay flow control |
US20180219765A1 (en) | 2017-01-31 | 2018-08-02 | Waltz Networks | Method and Apparatus for Network Traffic Control Optimization |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US10778528B2 (en) | 2017-02-11 | 2020-09-15 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US10805114B2 (en) | 2017-10-02 | 2020-10-13 | Vmware, Inc. | Processing data messages of a virtual network that are sent to and received from external service machines |
US11115480B2 (en) | 2017-10-02 | 2021-09-07 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10999100B2 (en) | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US11223514B2 (en) | 2017-11-09 | 2022-01-11 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
US11310170B2 (en) | 2019-08-27 | 2022-04-19 | Vmware, Inc. | Configuring edge nodes outside of public clouds to use routes defined through the public clouds |
US11689959B2 (en) | 2020-01-24 | 2023-06-27 | Vmware, Inc. | Generating path usability state for different sub-paths offered by a network link |
US11601356B2 (en) | 2020-12-29 | 2023-03-07 | Vmware, Inc. | Emulating packet flows to assess network links for SD-WAN |
US11792127B2 (en) | 2021-01-18 | 2023-10-17 | Vmware, Inc. | Network-aware load balancing |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
US12009987B2 (en) | 2021-05-03 | 2024-06-11 | VMware LLC | Methods to support dynamic transit paths through hub clustering across branches in SD-WAN |
US20220407790A1 (en) * | 2021-06-18 | 2022-12-22 | Vmware, Inc. | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics |
US12015536B2 (en) | 2021-06-18 | 2024-06-18 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds |
KR102481623B1 (ko) * | 2021-07-14 | 2022-12-27 | 숭실대학교산학협력단 | Lisp 기반 분산 컨테이너 가상화 환경에서의 어플리케이션에 대한 주소 관리 방법 및 시스템 |
US12047282B2 (en) | 2021-07-22 | 2024-07-23 | VMware LLC | Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
US20230319012A1 (en) * | 2022-03-31 | 2023-10-05 | Sophos Limited | Hybrid web application firewall |
GB2618654A (en) * | 2022-03-31 | 2023-11-15 | Sophos Ltd | Hybrid web application firewall |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
US12057993B1 (en) | 2023-03-27 | 2024-08-06 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12034587B1 (en) | 2023-03-27 | 2024-07-09 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9769085B2 (en) | 2012-05-04 | 2017-09-19 | Citrix Systems, Inc. | Systems and methods for adaptive application provisioning |
US9848041B2 (en) * | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US10185638B2 (en) * | 2015-09-29 | 2019-01-22 | NeuVector, Inc. | Creating additional security containers for transparent network security for application containers based on conditions |
US20170366605A1 (en) * | 2016-06-16 | 2017-12-21 | Alcatel-Lucent Usa Inc. | Providing data plane services for applications |
-
2020
- 2020-12-31 US US17/139,103 patent/US11575651B2/en active Active
-
2021
- 2021-12-28 WO PCT/US2021/073133 patent/WO2022147436A1/en active Application Filing
- 2021-12-28 EP EP21841178.3A patent/EP4272372A1/en active Pending
- 2021-12-28 KR KR1020237018086A patent/KR20230125180A/ko unknown
- 2021-12-28 JP JP2023532736A patent/JP2024515401A/ja active Pending
- 2021-12-28 CN CN202180087548.2A patent/CN116724577A/zh active Pending
-
2022
- 2022-12-27 US US18/146,658 patent/US20230129362A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022147436A1 (en) | 2022-07-07 |
US11575651B2 (en) | 2023-02-07 |
US20220210122A1 (en) | 2022-06-30 |
US20230129362A1 (en) | 2023-04-27 |
CN116724577A (zh) | 2023-09-08 |
EP4272372A1 (en) | 2023-11-08 |
KR20230125180A (ko) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11575651B2 (en) | Dynamically scalable application firewall deployment for cloud native applications | |
US10884722B2 (en) | Cross-environment application of tracing information for improved code execution | |
JP7275171B2 (ja) | オンデマンドネットワークコード実行システムにおけるオペレーティングシステムカスタマイゼーション | |
US10564946B1 (en) | Dependency handling in an on-demand network code execution system | |
US10827020B1 (en) | Assignment of microservices | |
EP3394750B1 (en) | Code execution request routing | |
US20180039507A1 (en) | System and method for management of a virtual machine environment | |
US9934073B2 (en) | Extension of resource constraints for service-defined containers | |
WO2017186123A1 (en) | System and method for distributed resource management | |
US20170220389A1 (en) | Dynamic performance isolation of competing workloads on cpus with shared hardware components | |
US10318347B1 (en) | Virtualized tasks in an on-demand network code execution system | |
US11704133B2 (en) | Isolating applications at the edge | |
US11093288B2 (en) | Systems and methods for cluster resource balancing in a hyper-converged infrastructure | |
US20210250223A1 (en) | Storage System for Network Information | |
US11263054B2 (en) | Memory-aware placement for virtual GPU enabled systems | |
US20210334126A1 (en) | On-demand code execution with limited memory footprint | |
US11372683B2 (en) | Placement of virtual GPU requests in virtual GPU enabled systems using a requested memory requirement of the virtual GPU request | |
US11726684B1 (en) | Cluster rebalance using user defined rules | |
US11477168B2 (en) | Dynamic application firewall configuration for cloud native applications | |
US20220237014A1 (en) | Network function placement in vgpu-enabled environments | |
Kenigsberg | A Performance and Storage Evaluation of Lightweight Containerization with NixOS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A529 | Written submission of copy of amendment under article 34 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A529 Effective date: 20230530 |