Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

NGINX Ingress Controller on RedHat OpenShift.pdf

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 24 Anzeige

Weitere Verwandte Inhalte

Ähnlich wie NGINX Ingress Controller on RedHat OpenShift.pdf (20)

Aktuellste (20)

Anzeige

NGINX Ingress Controller on RedHat OpenShift.pdf

  1. 1. NGINX Ingress Controller ♥ RedHat OpenShift 2023/01/25 F5 / Hiroshi Matsumoto
  2. 2. ©2023 F5 2 F5 & Red Hat Partnership F5 / NGINXとRed Hatはワールドワイドでとっても仲良し
  3. 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環境での優れたアプリケーションサービスを実現します コンテナ環境の アプリケーション
  4. 4. ©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
  5. 5. ©2023 F5 5 NGINX
  6. 6. ©2023 F5 6 NGINXとは、 • 高機能なWEBアプリケーションソフトウェア • リソース消費が少なく、高速に安定動作 • 用途に合わせて自由な活用が可能 • メーカサポート・セキュリティパッチ提供 • 高度な攻撃を防御(NAP WAF/DoS) お客様プラットフォームのシンプル化を実現 コンテナ・クラウドとの高い親和性 実績 安定・拡張性 自由な構成 メーカーサポート セキュリティ
  7. 7. ©2023 F5 7 コンテナプラットフォームに最適なNGINX Technology Source: Datadog Container Report 2022 Top Ingress Providers CNCF Survey Source: CNCF Survey 2020 安定・高速動作がクラウドネイティブ環境に最適 実績
  8. 8. ©2023 F5 8 業界を限定しない幅広い実績 Tech Finance Media Service Provider Other あらゆるプラットフォームを「最適化」 実績
  9. 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. 10. ©2023 F5 10 幅広い環境で様々な用途で利用可能 CPU プライベートクラウド パブリッククラウド コンテナ Linux/BSD Service App App リバース プロキシ ロード バランサー WEB サーバ キャッシュ サーバ APIGW 認証GW 多くの機能を自由に設定。必要な機能を即座に利用。 WAF/ L7DoS AddOn 自由な構成
  11. 11. ©2023 F5 11 メーカーサポートの提供 NGINX OSS NGINX Plusメーカーサポート 連絡窓口 NGINX Mailing List、 GitHubによるコミュニケーション F5が提供する「MyF5」という サポートサイトよりメーカ直接サポート SLA ー ○ 問い合わせ上限 ー ☓ (上限なし・無制限) 24/365 サポート ー ○ 日本語サポート ー ○ (ベストエフォート) 定期的なソフトウェア・アップデート ☓ ○ バグフィックス ☓ ○ 顧客向けホットフィックス提供 ☓ ○ デバッグ・エラー調査サポート ☓ ○ インストールサポート ☓ ○ テクニカルQA ☓ ○ 3rd Partyモジュールサポート ☓ ○ トラブルの安定対応。定期的なパッケージの提供により脆弱性に対処 メーカーサポート
  12. 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. 13. NGINX Ingress Controller on RedHat OpenShift
  14. 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. 15. ©2023 F5 15 NGINX Ingress Operatorによる OpenShiftとの連携
  16. 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. 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. 18. ©2023 F5 18 NGINX Ingress Controller設定 NGINX Ingress Controller Configuration
  19. 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. 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. 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
  22. 22. ©2023 F5 22 まとめ
  23. 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」です

×