SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
NGINX Ingress Controller
♥ RedHat OpenShift
2023/01/25
F5 / Hiroshi Matsumoto
©2023 F5
2
F5 & Red Hat Partnership
F5 / NGINXとRed Hatはワールドワイドでとっても仲良し
©2023 F5
3
F5 & Red Hat Partnership
マルチクラウド環境全体に追いて、安全に安心してアプリケーションを提供するプラットフォームを
CERTIFIED SOLUTIONを通じて高度な自動化とともに提供することが我々のミッションです
F5 Advanced WAF や NGINX App Protectによる高度な制御によ
り優れたAPI Security を実現します
優れた
API Security
F5 BIG-IPやNGINXと共にインフラ全体とアプリケーションサービスを
Red hat Ansibleで自動化できます
自動化
F5 CISやNGINX KICを用いたトラフィック制御によりRed Hat
Open Shift環境での優れたアプリケーションサービスを実現します
コンテナ環境の
アプリケーション
©2023 F5
4
アプリケーションを動作・デリバリするために最良の組み合わせ
OpenShift Cluster
pod
Ingress
Controller
Code
pod
pod
pod
pod
Per-Pod proxy
Per-Service
proxy
Customer
NETOPS /
OPERATIONS
DEVOPS /
APPLICATIONS
Edge
©2023 F5
5
NGINX
©2023 F5
6
NGINXとは、
• 高機能なWEBアプリケーションソフトウェア
• リソース消費が少なく、高速に安定動作
• 用途に合わせて自由な活用が可能
• メーカサポート・セキュリティパッチ提供
• 高度な攻撃を防御(NAP WAF/DoS)
お客様プラットフォームのシンプル化を実現
コンテナ・クラウドとの高い親和性
実績
安定・拡張性
自由な構成
メーカーサポート
セキュリティ
©2023 F5
7
コンテナプラットフォームに最適なNGINX Technology
Source: Datadog Container Report 2022
Top Ingress Providers
CNCF Survey
Source: CNCF Survey 2020
安定・高速動作がクラウドネイティブ環境に最適
実績
©2023 F5
8
業界を限定しない幅広い実績
Tech
Finance
Media
Service Provider
Other
あらゆるプラットフォームを「最適化」
実績
©2023 F5
9
柔軟に拡張できる最高のパフォーマンス
HARDWARE
SPECS
EXPECTED
PERFORMANCE
2 CPU cores
4 GB RAM
2x10 GbE NIC
74,000 RPS
9,100 SSL TPS (ECC)
4 Gbps throughput
4 CPU cores
8 GB RAM
2x10 GbE NIC
150,000 RPS
17,600 SSL TPS (ECC)
8 Gbps throughput
8 CPU cores
16 GB RAM
2x10 GbE NIC
300,000 RPS
33,000 SSL TPS (ECC)
8 Gbps throughput
HARDWARE
SPECS
EXPECTED
PERFORMANCE
2 CPU cores
4 GB RAM
2x1 GbE NIC
90,000 RPS
4,500 SSL TPS (ECC)
1 Gbps throughput
4 CPU cores
4 GB RAM
2x40 GbE NIC
175,000 RPS
8,500 SSL TPS (ECC)
5 Gbps throughput
8 CPU cores
4 GB RAM
2x40 GbE NIC
350,000 RPS
16,000 SSL TPS (ECC)
40 Gbps throughput
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
ECC
0
50000
100000
150000
200000
250000
300000
350000
400000
RPS
0
5000
10000
15000
20000
25000
30000
35000
ECC
0
50000
100000
150000
200000
250000
300000
350000
RPS
2 Core
4 GB
4 Core
4 GB
8 Core
4 GB
2 Core
4 GB
4 Core
8 GB
8 Core
16 GB
https://www.nginx.com/resources/datasheets/nginx-plus-sizing-guide/
https://www.nginx.com/resources/datasheets/nginx-ingress-controller-kubernetes/
ベアメタル:CPU/メモリに応じて様々な規模に柔軟な対応
Ingress Controller:アプライアンスに相当する高速・安定な処理
安定・拡張性
©2023 F5
10
幅広い環境で様々な用途で利用可能
CPU
プライベートクラウド パブリッククラウド コンテナ
Linux/BSD
Service
App
App
リバース
プロキシ
ロード
バランサー
WEB
サーバ
キャッシュ
サーバ
APIGW
認証GW
多くの機能を自由に設定。必要な機能を即座に利用。
WAF/
L7DoS
AddOn
自由な構成
©2023 F5
11
メーカーサポートの提供
NGINX OSS NGINX Plusメーカーサポート
連絡窓口
NGINX Mailing List、
GitHubによるコミュニケーション
F5が提供する「MyF5」という
サポートサイトよりメーカ直接サポート
SLA ー ○
問い合わせ上限 ー ☓ (上限なし・無制限)
24/365 サポート ー ○
日本語サポート ー
○
(ベストエフォート)
定期的なソフトウェア・アップデート ☓ ○
バグフィックス ☓ ○
顧客向けホットフィックス提供 ☓ ○
デバッグ・エラー調査サポート ☓ ○
インストールサポート ☓ ○
テクニカルQA ☓ ○
3rd Partyモジュールサポート ☓ ○
トラブルの安定対応。定期的なパッケージの提供により脆弱性に対処
メーカーサポート
©2023 F5
12
NGINX App Protect WAF/L7DoS on Ingress
NGINX App Protect
WAF/L7DoS機能
• Containerで動作するWAFはまだまだ少なく、
Ingressで圧倒的なシェアを誇るNGINXが
WAF機能を提供
• Ingressで実行することで構成の変更は不要
• 世界中で実績が豊富なF5製WAFを移植
• OWASP Top 10 シグネチャ & CVE
• メタ文字チェック
• HTTPプロトコル標準
• Bot通信検知
• 不許可ファイルアップロード検知
(bin, cgi, cmd, com, dll, exe, msi等)
• セキュリティスコア検知
• Cookie改ざん
• JSON & XML文法
• Data Guard & 重要パラメータ
OpenShift Cluster
pod
Ingress
Controller
pod
Customer
pod
• HTTP(s) GET
flood attack
• HTTP(s) POST
flood attack
• HTTP(s) slowloris ,
slowread, slowpost
• 検知を回避する行動の
繰り返し
• ランダムURI
NAP WAF NAP DoS
NGINX Ingress Controller
on RedHat OpenShift
©2023 F5
14
RedHat OpenShift Router / NGINX Ingress Controller活用のメリット
OpenShift Cluster
pod
外部ネットワークからの攻撃
柔軟な権限管理
(VS/VSR/Policy)
柔軟な通信制御
ヘッダー・Cookie
TCP/UDP対応
詳細なMetrics
・OpenTracing
OIDC・JWTによる
通信制御
シンプルな
HTTP/HTTPS
PATH Routing
シンプルなMetrics
・Prometheus
WAF/L7 DoS対策による高度
な防御 (※追加モジュール)
Circuit Breaker/帯域制御な
ど柔軟な流量制御
pod
Ingress
Controller
OpenShift
Router
NGINX Ingress ControllerはOpenShift Router が提供する機能に加え、
高度な通信制御機能・開発元によるパッチ提供が可能です。
OpenShift Router
NGINX Ingress
Controller
高度な通信制御機能 高度なセキュリティ機能
シンプルなRate
Limit
製品開発メーカーのサポート・
セキュリティパッチの提供
メーカーサポート
©2023 F5
15
NGINX Ingress Operatorによる
OpenShiftとの連携
©2023 F5
16
アプリケーションに手を加えずに簡単にセキュリティを追加
NGINX Ingress Controller
+ OpenShift
■コンテナアプリケーションを保護する
• NGINX Ingress Controller
大規模アプリケーショントラフィックを実現
• JWT認証:
OpenID接続を介して承認されたユーザーを検証する
• NGINX App Protect:
F5 WAFに基づいて開発された最新のアプリケーション
セキュリティソリューション
NGINX Ingress ControllerをOpenShift内で
■インストール・アップデート、管理する
NGINX App Protect
WAF/L7DoS機能
OpenShift Cluster
pod
Ingress
Controller
pod
Customer
pod
OIDC・JWTによる
通信制御
様々な柔軟な
通信制御
©2023 F5
17
• Red Hat認定済み、Red Hatフルサポート
OpenShift 4.x向け NGINX Ingress Operator
• 管理者によりOperatorを用いてインストールした後、
一つのマニフェストファイルで簡単にNGINX Ingress
Controllerをデプロイ可能
• OSSと商用版NGINXに対応
• OpenShiftデフォルトルータ(HA-Proxy)と共存が可能
• Ingress/Route設定や管理に関するライフサイクルの
複雑さを抽象化できる
SIMPLIFIED KIC LIFECYCLE MANAGEMENT
NGINX Ingress Operator
OpenShift Operator Hubからクリックでインストール可能
©2023 F5
18
NGINX Ingress Controller設定
NGINX Ingress Controller Configuration
©2023 F5
19
通信内容に応じた条件分岐
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: cafe
spec:
host: cafe.example.com
tls:
secret: cafe-secret
upstreams:
- name: tea
service: tea-svc
port: 80
- name: coffee
service: coffee-svc
port: 80
routes:
- path: /tea
action:
pass: tea
- path: /coffee
matches:
- conditions:
- cookie: user
value: john
action:
pass: coffee
Field Description Required
conditions 対象とするリクエストの条件を指定。一つ以上の指定が必要。 Yes
action 対象となるリクエストに対する処理内容を指定 No
splits
Traffic Splitの設定を指定。少なくとも2つ以上の対象を指定する必要が
ある
No
Field Description Required
header
ヘッダーを対象とする。対象とするヘッダーの名称を指定する。アルファベット、
数字、- (ハイフン) を指定可能
No
cookie
Cookieを対象とする。対象とするCookieの名称を指定する。アルファベット、
数字、_ (アンダースコア) を指定可能
No
argument
URLパラメータを対象とする。対象とするURLパラメータの名称を指定する。
アルファベット、数字、_ (アンダースコア) を指定可能
No
variable
NGINX変数を対象とする。対象とする変数は「$」マークから開始する必要
がある。対象となる変数は別途ドキュメントページを参照
No
value
Conditionで指定した条件が持つ値を指定する。値の指定方法は別途ド
キュメントページを参照
Yes
Condition:
Match:
Cookie “user” の “john” で
ある場合 ”coffee”に転送する
https://docs.nginx.com/nginx-ingress-controller/configuration/virtualserver-and-virtualserverroute-resources/#match
©2023 F5
20
App Protect WAF Configuration Sample
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: webapp
spec:
host: webapp.example.com
policies:
- name: waf-policy
upstreams:
- name: webapp
service: webapp-svc
port: 80
routes:
- path: /
action:
pass: webapp
apiVersion: k8s.nginx.org/v1
kind: Policy
metadata:
name: waf-policy
spec:
waf:
enable: true
apPolicy: "default/dataguard-alarm"
securityLog:
enable: true
apLogConf: "default/logconf"
logDest: "syslog:server=127.0.0.1:514"
apiVersion: appprotect.f5.com/v1beta1
kind: APLogConf
metadata:
name: logconf
spec:
content:
format: default
max_message_size: 64k
max_request_size: any
filter:
request_type: all
apiVersion: appprotect.f5.com/v1beta1
kind: APPolicy
metadata:
name: dataguard-alarm
spec:
policy:
signature-requirements:
- tag: Fruits
signature-sets:
- name: apple_sigs
block: true
signatureSet:
filter:
tagValue: Fruits
tagFilter: eq
※省略※
template:
name: POLICY_TEMPLATE_NGINX_BASE
apiVersion: appprotect.f5.com/v1beta1
kind: APUserSig
metadata:
name: apple
spec:
signatures:
- accuracy: medium
attackType:
name: Brute Force Attack
description: Medium accuracy user defined signature
with tag (Fruits)
name: Apple_medium_acc
risk: medium
rule: content:"apple"; nocase;
nginx-ingress
pod
NGINX
Config
VS : webapp
Host : webapp.example.com
Policy : waf-policy
waf: enable, apPolicy,
waf-policy
securityLog: enable, apLogConf,
logDest
webapp-svc:80
APPolicy : dataguard-alarm
policy: signature-requirements,
signature-sets,
name, template, data-guard
enforcementMode 等
APUserSig : waf-policy
signatures, tag
APLogConf : logconf
content, filter
©2023 F5
21
App Protect DoS Configuration Sample
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: webapp
spec:
host: webapp.example.com
upstreams:
- name: webapp
service: webapp-svc
port: 80
routes:
- path: /
dos: dos-protected
action:
pass: webapp
nginx-ingress
pod
NGINX
Config
VS : webapp
Host : webapp.example.com
Routes path: /
DosProtectedResource : dos-protected
apDosPolicy, apDosMonitor
dos-protected
dosAccessLogDest, dosSecurityLog
webapp-svc:80
APDosPolicy : dataguard-alarm
mitigation_mode, signatures,bad_actors,
automation_tools_detection, tls_fingerprint
APDosLogConf : logconf
content, filter
apiVersion: appprotectdos.f5.com/v1beta1
kind: DosProtectedResource
metadata:
name: dos-protected
spec:
enable: true
name: "webapp.example.com"
apDosPolicy: "dospolicy"
apDosMonitor:
uri: "webapp.example.com"
protocol: "http1"
timeout: 5
dosAccessLogDest: "syslog-svc-2.default.svc.cluster.local:514"
dosSecurityLog:
enable: true
apDosLogConf: "doslogconf"
dosLogDest: "syslog-svc.default.svc.cluster.local:514"
apiVersion: appprotectdos.f5.com/v1beta1
kind: APDosPolicy
metadata:
name: dospolicy
spec:
mitigation_mode: "standard"
signatures: "on"
bad_actors: "on"
automation_tools_detection: "on"
tls_fingerprint: "on"
apiVersion: appprotectdos.f5.com/v1beta1
kind: APDosLogConf
metadata:
name: doslogconf
spec:
content:
format: splunk
max_message_size: 64k
filter:
traffic-mitigation-stats: all
bad-actors: top 10
attack-signatures: top 10
©2023 F5
22
まとめ
©2023 F5
23
Reverse
Proxy
Web App
Server
まとめ
Kubernetes Cluster
Ingress
Controller
Gateway
Load Balancer
API Gateway
Load
Balancer
pod ライブラリ・コンテナへ
悪意あるプログラム
外部ネットワークからの攻撃
App Protect WAF App Protect DoS
通信、攻撃の詳細を横断的に把握 通信量、サーバの応答状況を把握
RedHat OpenShift上の重要なアプリは「セキュア」と「安定」を両立しなければいけません
それを実現するのが「NGINX Ingress Controller on RedHat OpenShift」です
NGINX Ingress Controller on RedHat OpenShift.pdf

Mais conteúdo relacionado

Semelhante a NGINX Ingress Controller on RedHat OpenShift.pdf

NGINX New Features (Japanese Webinar)
NGINX New Features (Japanese Webinar)NGINX New Features (Japanese Webinar)
NGINX New Features (Japanese Webinar)NGINX, Inc.
 
Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)NGINX, Inc.
 
NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)NGINX, Inc.
 
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX, Inc.
 
Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)NGINX, Inc.
 
Why NGINX Plus/NGINX Controller for NGINX OSS users
Why NGINX Plus/NGINX Controller for NGINX OSS usersWhy NGINX Plus/NGINX Controller for NGINX OSS users
Why NGINX Plus/NGINX Controller for NGINX OSS usersNGINX, Inc.
 
NGINX Ingress Controller with WAF for Kubernetes
NGINX Ingress Controller with WAF for KubernetesNGINX Ingress Controller with WAF for Kubernetes
NGINX Ingress Controller with WAF for KubernetesNGINX, Inc.
 
NGINX Plus Hands On Training
NGINX Plus Hands On Training NGINX Plus Hands On Training
NGINX Plus Hands On Training NGINX, Inc.
 
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」Takaaki Suzuki
 
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナーNGINX, Inc.
 
NGINX & OpenShift Webinar for Energy Sector
NGINX & OpenShift Webinar for Energy Sector NGINX & OpenShift Webinar for Energy Sector
NGINX & OpenShift Webinar for Energy Sector NGINX, Inc.
 
Netapp_innovation_2015_Cisco_抜粋修正版
Netapp_innovation_2015_Cisco_抜粋修正版Netapp_innovation_2015_Cisco_抜粋修正版
Netapp_innovation_2015_Cisco_抜粋修正版Takao Setaka
 
【Interop tokyo 2014】 シスコが提唱するBeyond SDN , Application Centric Infrastructure ...
【Interop tokyo 2014】 シスコが提唱するBeyond SDN , Application Centric Infrastructure ...【Interop tokyo 2014】 シスコが提唱するBeyond SDN , Application Centric Infrastructure ...
【Interop tokyo 2014】 シスコが提唱するBeyond SDN , Application Centric Infrastructure ...シスコシステムズ合同会社
 
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法NGINX, Inc.
 
[Cloud OnAir] Anthosで実現するハイブリッドクラウド 〜 GKE On-Prem編 〜 2019年8月29日 放送
[Cloud OnAir] Anthosで実現するハイブリッドクラウド 〜 GKE On-Prem編 〜 2019年8月29日 放送[Cloud OnAir] Anthosで実現するハイブリッドクラウド 〜 GKE On-Prem編 〜 2019年8月29日 放送
[Cloud OnAir] Anthosで実現するハイブリッドクラウド 〜 GKE On-Prem編 〜 2019年8月29日 放送Google Cloud Platform - Japan
 
NGINX App Protect for Secure Coding Webinar
NGINX App Protect for Secure Coding WebinarNGINX App Protect for Secure Coding Webinar
NGINX App Protect for Secure Coding WebinarNGINX, Inc.
 
VMware Cloud on AWS のご紹介 -セキュリティ風味-
VMware Cloud on AWS のご紹介  -セキュリティ風味- VMware Cloud on AWS のご紹介  -セキュリティ風味-
VMware Cloud on AWS のご紹介 -セキュリティ風味- Mitsutaka Ohisa
 
【Interop Tokyo 2016】 SDN/Cloud 仮想環境に、この二つさえあれば、他のファイアウォールはもういらない!
【Interop Tokyo 2016】 SDN/Cloud 仮想環境に、この二つさえあれば、他のファイアウォールはもういらない!【Interop Tokyo 2016】 SDN/Cloud 仮想環境に、この二つさえあれば、他のファイアウォールはもういらない!
【Interop Tokyo 2016】 SDN/Cloud 仮想環境に、この二つさえあれば、他のファイアウォールはもういらない!Juniper Networks (日本)
 
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組みマルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組みNGINX, Inc.
 
Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会axsh co., LTD.
 

Semelhante a NGINX Ingress Controller on RedHat OpenShift.pdf (20)

NGINX New Features (Japanese Webinar)
NGINX New Features (Japanese Webinar)NGINX New Features (Japanese Webinar)
NGINX New Features (Japanese Webinar)
 
Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)
 
NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)
 
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
 
Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)
 
Why NGINX Plus/NGINX Controller for NGINX OSS users
Why NGINX Plus/NGINX Controller for NGINX OSS usersWhy NGINX Plus/NGINX Controller for NGINX OSS users
Why NGINX Plus/NGINX Controller for NGINX OSS users
 
NGINX Ingress Controller with WAF for Kubernetes
NGINX Ingress Controller with WAF for KubernetesNGINX Ingress Controller with WAF for Kubernetes
NGINX Ingress Controller with WAF for Kubernetes
 
NGINX Plus Hands On Training
NGINX Plus Hands On Training NGINX Plus Hands On Training
NGINX Plus Hands On Training
 
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
 
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
 
NGINX & OpenShift Webinar for Energy Sector
NGINX & OpenShift Webinar for Energy Sector NGINX & OpenShift Webinar for Energy Sector
NGINX & OpenShift Webinar for Energy Sector
 
Netapp_innovation_2015_Cisco_抜粋修正版
Netapp_innovation_2015_Cisco_抜粋修正版Netapp_innovation_2015_Cisco_抜粋修正版
Netapp_innovation_2015_Cisco_抜粋修正版
 
【Interop tokyo 2014】 シスコが提唱するBeyond SDN , Application Centric Infrastructure ...
【Interop tokyo 2014】 シスコが提唱するBeyond SDN , Application Centric Infrastructure ...【Interop tokyo 2014】 シスコが提唱するBeyond SDN , Application Centric Infrastructure ...
【Interop tokyo 2014】 シスコが提唱するBeyond SDN , Application Centric Infrastructure ...
 
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
 
[Cloud OnAir] Anthosで実現するハイブリッドクラウド 〜 GKE On-Prem編 〜 2019年8月29日 放送
[Cloud OnAir] Anthosで実現するハイブリッドクラウド 〜 GKE On-Prem編 〜 2019年8月29日 放送[Cloud OnAir] Anthosで実現するハイブリッドクラウド 〜 GKE On-Prem編 〜 2019年8月29日 放送
[Cloud OnAir] Anthosで実現するハイブリッドクラウド 〜 GKE On-Prem編 〜 2019年8月29日 放送
 
NGINX App Protect for Secure Coding Webinar
NGINX App Protect for Secure Coding WebinarNGINX App Protect for Secure Coding Webinar
NGINX App Protect for Secure Coding Webinar
 
VMware Cloud on AWS のご紹介 -セキュリティ風味-
VMware Cloud on AWS のご紹介  -セキュリティ風味- VMware Cloud on AWS のご紹介  -セキュリティ風味-
VMware Cloud on AWS のご紹介 -セキュリティ風味-
 
【Interop Tokyo 2016】 SDN/Cloud 仮想環境に、この二つさえあれば、他のファイアウォールはもういらない!
【Interop Tokyo 2016】 SDN/Cloud 仮想環境に、この二つさえあれば、他のファイアウォールはもういらない!【Interop Tokyo 2016】 SDN/Cloud 仮想環境に、この二つさえあれば、他のファイアウォールはもういらない!
【Interop Tokyo 2016】 SDN/Cloud 仮想環境に、この二つさえあれば、他のファイアウォールはもういらない!
 
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組みマルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
 
Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会
 

Mais de FumieNakayama

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介FumieNakayama
 
OpenShiftで実現するプラットフォーム・エンジニアリングにおけるDevSecOpsの価値.pdf
OpenShiftで実現するプラットフォーム・エンジニアリングにおけるDevSecOpsの価値.pdfOpenShiftで実現するプラットフォーム・エンジニアリングにおけるDevSecOpsの価値.pdf
OpenShiftで実現するプラットフォーム・エンジニアリングにおけるDevSecOpsの価値.pdfFumieNakayama
 
実例に学ぶ、クラウドネイティブセキュリティの勘所.pdf
実例に学ぶ、クラウドネイティブセキュリティの勘所.pdf実例に学ぶ、クラウドネイティブセキュリティの勘所.pdf
実例に学ぶ、クラウドネイティブセキュリティの勘所.pdfFumieNakayama
 
ソフトウェアサプライチェーンセキュリティの最新技術動向.pdf
ソフトウェアサプライチェーンセキュリティの最新技術動向.pdfソフトウェアサプライチェーンセキュリティの最新技術動向.pdf
ソフトウェアサプライチェーンセキュリティの最新技術動向.pdfFumieNakayama
 
クラウドネイティブ最新技術動向.pdf
クラウドネイティブ最新技術動向.pdfクラウドネイティブ最新技術動向.pdf
クラウドネイティブ最新技術動向.pdfFumieNakayama
 
k8sとOpenShiftの違いとは.pdf
k8sとOpenShiftの違いとは.pdfk8sとOpenShiftの違いとは.pdf
k8sとOpenShiftの違いとは.pdfFumieNakayama
 

Mais de FumieNakayama (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
 
OpenShiftで実現するプラットフォーム・エンジニアリングにおけるDevSecOpsの価値.pdf
OpenShiftで実現するプラットフォーム・エンジニアリングにおけるDevSecOpsの価値.pdfOpenShiftで実現するプラットフォーム・エンジニアリングにおけるDevSecOpsの価値.pdf
OpenShiftで実現するプラットフォーム・エンジニアリングにおけるDevSecOpsの価値.pdf
 
実例に学ぶ、クラウドネイティブセキュリティの勘所.pdf
実例に学ぶ、クラウドネイティブセキュリティの勘所.pdf実例に学ぶ、クラウドネイティブセキュリティの勘所.pdf
実例に学ぶ、クラウドネイティブセキュリティの勘所.pdf
 
ソフトウェアサプライチェーンセキュリティの最新技術動向.pdf
ソフトウェアサプライチェーンセキュリティの最新技術動向.pdfソフトウェアサプライチェーンセキュリティの最新技術動向.pdf
ソフトウェアサプライチェーンセキュリティの最新技術動向.pdf
 
クラウドネイティブ最新技術動向.pdf
クラウドネイティブ最新技術動向.pdfクラウドネイティブ最新技術動向.pdf
クラウドネイティブ最新技術動向.pdf
 
k8sとOpenShiftの違いとは.pdf
k8sとOpenShiftの違いとは.pdfk8sとOpenShiftの違いとは.pdf
k8sとOpenShiftの違いとは.pdf
 

NGINX Ingress Controller on RedHat OpenShift.pdf

  • 1. NGINX Ingress Controller ♥ RedHat OpenShift 2023/01/25 F5 / Hiroshi Matsumoto
  • 2. ©2023 F5 2 F5 & Red Hat Partnership F5 / NGINXとRed Hatはワールドワイドでとっても仲良し
  • 3. ©2023 F5 3 F5 & Red Hat Partnership マルチクラウド環境全体に追いて、安全に安心してアプリケーションを提供するプラットフォームを CERTIFIED SOLUTIONを通じて高度な自動化とともに提供することが我々のミッションです F5 Advanced WAF や NGINX App Protectによる高度な制御によ り優れたAPI Security を実現します 優れた API Security F5 BIG-IPやNGINXと共にインフラ全体とアプリケーションサービスを Red hat Ansibleで自動化できます 自動化 F5 CISやNGINX KICを用いたトラフィック制御によりRed Hat Open Shift環境での優れたアプリケーションサービスを実現します コンテナ環境の アプリケーション
  • 6. ©2023 F5 6 NGINXとは、 • 高機能なWEBアプリケーションソフトウェア • リソース消費が少なく、高速に安定動作 • 用途に合わせて自由な活用が可能 • メーカサポート・セキュリティパッチ提供 • 高度な攻撃を防御(NAP WAF/DoS) お客様プラットフォームのシンプル化を実現 コンテナ・クラウドとの高い親和性 実績 安定・拡張性 自由な構成 メーカーサポート セキュリティ
  • 7. ©2023 F5 7 コンテナプラットフォームに最適なNGINX Technology Source: Datadog Container Report 2022 Top Ingress Providers CNCF Survey Source: CNCF Survey 2020 安定・高速動作がクラウドネイティブ環境に最適 実績
  • 9. ©2023 F5 9 柔軟に拡張できる最高のパフォーマンス HARDWARE SPECS EXPECTED PERFORMANCE 2 CPU cores 4 GB RAM 2x10 GbE NIC 74,000 RPS 9,100 SSL TPS (ECC) 4 Gbps throughput 4 CPU cores 8 GB RAM 2x10 GbE NIC 150,000 RPS 17,600 SSL TPS (ECC) 8 Gbps throughput 8 CPU cores 16 GB RAM 2x10 GbE NIC 300,000 RPS 33,000 SSL TPS (ECC) 8 Gbps throughput HARDWARE SPECS EXPECTED PERFORMANCE 2 CPU cores 4 GB RAM 2x1 GbE NIC 90,000 RPS 4,500 SSL TPS (ECC) 1 Gbps throughput 4 CPU cores 4 GB RAM 2x40 GbE NIC 175,000 RPS 8,500 SSL TPS (ECC) 5 Gbps throughput 8 CPU cores 4 GB RAM 2x40 GbE NIC 350,000 RPS 16,000 SSL TPS (ECC) 40 Gbps throughput 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 ECC 0 50000 100000 150000 200000 250000 300000 350000 400000 RPS 0 5000 10000 15000 20000 25000 30000 35000 ECC 0 50000 100000 150000 200000 250000 300000 350000 RPS 2 Core 4 GB 4 Core 4 GB 8 Core 4 GB 2 Core 4 GB 4 Core 8 GB 8 Core 16 GB https://www.nginx.com/resources/datasheets/nginx-plus-sizing-guide/ https://www.nginx.com/resources/datasheets/nginx-ingress-controller-kubernetes/ ベアメタル:CPU/メモリに応じて様々な規模に柔軟な対応 Ingress Controller:アプライアンスに相当する高速・安定な処理 安定・拡張性
  • 10. ©2023 F5 10 幅広い環境で様々な用途で利用可能 CPU プライベートクラウド パブリッククラウド コンテナ Linux/BSD Service App App リバース プロキシ ロード バランサー WEB サーバ キャッシュ サーバ APIGW 認証GW 多くの機能を自由に設定。必要な機能を即座に利用。 WAF/ L7DoS AddOn 自由な構成
  • 11. ©2023 F5 11 メーカーサポートの提供 NGINX OSS NGINX Plusメーカーサポート 連絡窓口 NGINX Mailing List、 GitHubによるコミュニケーション F5が提供する「MyF5」という サポートサイトよりメーカ直接サポート SLA ー ○ 問い合わせ上限 ー ☓ (上限なし・無制限) 24/365 サポート ー ○ 日本語サポート ー ○ (ベストエフォート) 定期的なソフトウェア・アップデート ☓ ○ バグフィックス ☓ ○ 顧客向けホットフィックス提供 ☓ ○ デバッグ・エラー調査サポート ☓ ○ インストールサポート ☓ ○ テクニカルQA ☓ ○ 3rd Partyモジュールサポート ☓ ○ トラブルの安定対応。定期的なパッケージの提供により脆弱性に対処 メーカーサポート
  • 12. ©2023 F5 12 NGINX App Protect WAF/L7DoS on Ingress NGINX App Protect WAF/L7DoS機能 • Containerで動作するWAFはまだまだ少なく、 Ingressで圧倒的なシェアを誇るNGINXが WAF機能を提供 • Ingressで実行することで構成の変更は不要 • 世界中で実績が豊富なF5製WAFを移植 • OWASP Top 10 シグネチャ & CVE • メタ文字チェック • HTTPプロトコル標準 • Bot通信検知 • 不許可ファイルアップロード検知 (bin, cgi, cmd, com, dll, exe, msi等) • セキュリティスコア検知 • Cookie改ざん • JSON & XML文法 • Data Guard & 重要パラメータ OpenShift Cluster pod Ingress Controller pod Customer pod • HTTP(s) GET flood attack • HTTP(s) POST flood attack • HTTP(s) slowloris , slowread, slowpost • 検知を回避する行動の 繰り返し • ランダムURI NAP WAF NAP DoS
  • 13. NGINX Ingress Controller on RedHat OpenShift
  • 14. ©2023 F5 14 RedHat OpenShift Router / NGINX Ingress Controller活用のメリット OpenShift Cluster pod 外部ネットワークからの攻撃 柔軟な権限管理 (VS/VSR/Policy) 柔軟な通信制御 ヘッダー・Cookie TCP/UDP対応 詳細なMetrics ・OpenTracing OIDC・JWTによる 通信制御 シンプルな HTTP/HTTPS PATH Routing シンプルなMetrics ・Prometheus WAF/L7 DoS対策による高度 な防御 (※追加モジュール) Circuit Breaker/帯域制御な ど柔軟な流量制御 pod Ingress Controller OpenShift Router NGINX Ingress ControllerはOpenShift Router が提供する機能に加え、 高度な通信制御機能・開発元によるパッチ提供が可能です。 OpenShift Router NGINX Ingress Controller 高度な通信制御機能 高度なセキュリティ機能 シンプルなRate Limit 製品開発メーカーのサポート・ セキュリティパッチの提供 メーカーサポート
  • 15. ©2023 F5 15 NGINX Ingress Operatorによる OpenShiftとの連携
  • 16. ©2023 F5 16 アプリケーションに手を加えずに簡単にセキュリティを追加 NGINX Ingress Controller + OpenShift ■コンテナアプリケーションを保護する • NGINX Ingress Controller 大規模アプリケーショントラフィックを実現 • JWT認証: OpenID接続を介して承認されたユーザーを検証する • NGINX App Protect: F5 WAFに基づいて開発された最新のアプリケーション セキュリティソリューション NGINX Ingress ControllerをOpenShift内で ■インストール・アップデート、管理する NGINX App Protect WAF/L7DoS機能 OpenShift Cluster pod Ingress Controller pod Customer pod OIDC・JWTによる 通信制御 様々な柔軟な 通信制御
  • 17. ©2023 F5 17 • Red Hat認定済み、Red Hatフルサポート OpenShift 4.x向け NGINX Ingress Operator • 管理者によりOperatorを用いてインストールした後、 一つのマニフェストファイルで簡単にNGINX Ingress Controllerをデプロイ可能 • OSSと商用版NGINXに対応 • OpenShiftデフォルトルータ(HA-Proxy)と共存が可能 • Ingress/Route設定や管理に関するライフサイクルの 複雑さを抽象化できる SIMPLIFIED KIC LIFECYCLE MANAGEMENT NGINX Ingress Operator OpenShift Operator Hubからクリックでインストール可能
  • 18. ©2023 F5 18 NGINX Ingress Controller設定 NGINX Ingress Controller Configuration
  • 19. ©2023 F5 19 通信内容に応じた条件分岐 apiVersion: k8s.nginx.org/v1 kind: VirtualServer metadata: name: cafe spec: host: cafe.example.com tls: secret: cafe-secret upstreams: - name: tea service: tea-svc port: 80 - name: coffee service: coffee-svc port: 80 routes: - path: /tea action: pass: tea - path: /coffee matches: - conditions: - cookie: user value: john action: pass: coffee Field Description Required conditions 対象とするリクエストの条件を指定。一つ以上の指定が必要。 Yes action 対象となるリクエストに対する処理内容を指定 No splits Traffic Splitの設定を指定。少なくとも2つ以上の対象を指定する必要が ある No Field Description Required header ヘッダーを対象とする。対象とするヘッダーの名称を指定する。アルファベット、 数字、- (ハイフン) を指定可能 No cookie Cookieを対象とする。対象とするCookieの名称を指定する。アルファベット、 数字、_ (アンダースコア) を指定可能 No argument URLパラメータを対象とする。対象とするURLパラメータの名称を指定する。 アルファベット、数字、_ (アンダースコア) を指定可能 No variable NGINX変数を対象とする。対象とする変数は「$」マークから開始する必要 がある。対象となる変数は別途ドキュメントページを参照 No value Conditionで指定した条件が持つ値を指定する。値の指定方法は別途ド キュメントページを参照 Yes Condition: Match: Cookie “user” の “john” で ある場合 ”coffee”に転送する https://docs.nginx.com/nginx-ingress-controller/configuration/virtualserver-and-virtualserverroute-resources/#match
  • 20. ©2023 F5 20 App Protect WAF Configuration Sample apiVersion: k8s.nginx.org/v1 kind: VirtualServer metadata: name: webapp spec: host: webapp.example.com policies: - name: waf-policy upstreams: - name: webapp service: webapp-svc port: 80 routes: - path: / action: pass: webapp apiVersion: k8s.nginx.org/v1 kind: Policy metadata: name: waf-policy spec: waf: enable: true apPolicy: "default/dataguard-alarm" securityLog: enable: true apLogConf: "default/logconf" logDest: "syslog:server=127.0.0.1:514" apiVersion: appprotect.f5.com/v1beta1 kind: APLogConf metadata: name: logconf spec: content: format: default max_message_size: 64k max_request_size: any filter: request_type: all apiVersion: appprotect.f5.com/v1beta1 kind: APPolicy metadata: name: dataguard-alarm spec: policy: signature-requirements: - tag: Fruits signature-sets: - name: apple_sigs block: true signatureSet: filter: tagValue: Fruits tagFilter: eq ※省略※ template: name: POLICY_TEMPLATE_NGINX_BASE apiVersion: appprotect.f5.com/v1beta1 kind: APUserSig metadata: name: apple spec: signatures: - accuracy: medium attackType: name: Brute Force Attack description: Medium accuracy user defined signature with tag (Fruits) name: Apple_medium_acc risk: medium rule: content:"apple"; nocase; nginx-ingress pod NGINX Config VS : webapp Host : webapp.example.com Policy : waf-policy waf: enable, apPolicy, waf-policy securityLog: enable, apLogConf, logDest webapp-svc:80 APPolicy : dataguard-alarm policy: signature-requirements, signature-sets, name, template, data-guard enforcementMode 等 APUserSig : waf-policy signatures, tag APLogConf : logconf content, filter
  • 21. ©2023 F5 21 App Protect DoS Configuration Sample apiVersion: k8s.nginx.org/v1 kind: VirtualServer metadata: name: webapp spec: host: webapp.example.com upstreams: - name: webapp service: webapp-svc port: 80 routes: - path: / dos: dos-protected action: pass: webapp nginx-ingress pod NGINX Config VS : webapp Host : webapp.example.com Routes path: / DosProtectedResource : dos-protected apDosPolicy, apDosMonitor dos-protected dosAccessLogDest, dosSecurityLog webapp-svc:80 APDosPolicy : dataguard-alarm mitigation_mode, signatures,bad_actors, automation_tools_detection, tls_fingerprint APDosLogConf : logconf content, filter apiVersion: appprotectdos.f5.com/v1beta1 kind: DosProtectedResource metadata: name: dos-protected spec: enable: true name: "webapp.example.com" apDosPolicy: "dospolicy" apDosMonitor: uri: "webapp.example.com" protocol: "http1" timeout: 5 dosAccessLogDest: "syslog-svc-2.default.svc.cluster.local:514" dosSecurityLog: enable: true apDosLogConf: "doslogconf" dosLogDest: "syslog-svc.default.svc.cluster.local:514" apiVersion: appprotectdos.f5.com/v1beta1 kind: APDosPolicy metadata: name: dospolicy spec: mitigation_mode: "standard" signatures: "on" bad_actors: "on" automation_tools_detection: "on" tls_fingerprint: "on" apiVersion: appprotectdos.f5.com/v1beta1 kind: APDosLogConf metadata: name: doslogconf spec: content: format: splunk max_message_size: 64k filter: traffic-mitigation-stats: all bad-actors: top 10 attack-signatures: top 10
  • 23. ©2023 F5 23 Reverse Proxy Web App Server まとめ Kubernetes Cluster Ingress Controller Gateway Load Balancer API Gateway Load Balancer pod ライブラリ・コンテナへ 悪意あるプログラム 外部ネットワークからの攻撃 App Protect WAF App Protect DoS 通信、攻撃の詳細を横断的に把握 通信量、サーバの応答状況を把握 RedHat OpenShift上の重要なアプリは「セキュア」と「安定」を両立しなければいけません それを実現するのが「NGINX Ingress Controller on RedHat OpenShift」です