Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SUSE RancherとKubernetes環境へのWAF対応
Search
TakashiAsanuma
October 22, 2021
Technology
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SUSE RancherとKubernetes環境へのWAF対応
TakashiAsanuma
October 22, 2021
More Decks by TakashiAsanuma
See All by TakashiAsanuma
Supabase Meetup Tokyo #1 リードレプリカを利用した社内分析用リモートMCPを作ってみた
takashiasanuma
0
64
Skills間の連携も関数のようにしたら快適だった話
takashiasanuma
1
1.7k
Supabase CLIのある開発日常
takashiasanuma
3
380
DCC2P_IDCFクラウドコンテナ商用サービス事例紹介
takashiasanuma
0
110
RubyによるPub/Sub messaging - パブリッククラウドのバックエンドシステム事例 /Public Cloud backend system
takashiasanuma
0
160
RubyでPub/Sub messaging-Multi Process-Daemonizes-Application
takashiasanuma
1
12k
Scalable Applications with Pub/Sub Messaging
takashiasanuma
0
130
Pub/Subメッセージングのテスト(LT版)
takashiasanuma
0
110
IDCクラウドのバックエンド
takashiasanuma
0
160
Other Decks in Technology
See All in Technology
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
460
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
720
AI時代の強いチームの作り方
yuukiyo
23
15k
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
1
170
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
480
モバイルアプリ開発概論2026
recruitengineers
PRO
1
320
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
16
5.7k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.1k
SnowflakeCoCoでデータエンジニアリング!
foursue
0
180
TypeScript入門 2026
recruitengineers
PRO
1
300
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
120
PLaMoを毎日の開発で使い育てていく
pfn
PRO
0
180
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
440
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
460
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
New Earth Scene 8
popppiees
3
2.5k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
ラッコキーワード サービス紹介資料
rakko
1
4.2M
Speed Design
sergeychernyshev
33
2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Transcript
1 © IDC Frontier Inc. All Rights Reserved. SUSE RancherとKubernetes環境
へのWAF対応 株式会社IDCフロンティア エンジニアリング本部 開発部 浅沼 2021年9月30日
2 © IDC Frontier Inc. All Rights Reserved. 2 Agenda
1. IDCFクラウド コンテナコンソールのWAF対応 (SUSE Rancher/Kubernetes環境におけるWAF対応) 2. コンテナ運用管理を成功に導く鍵-SUSE Rancherとは (SUSE社より)
3 © IDC Frontier Inc. All Rights Reserved. 3 IDCフロンティアについて
高集積・大規模なニーズに 応えるデータセンターを全国 に7ヵ所、グループ全体では 19ヵ所展開。 ※2021年3月時点 データセンター事業 シンプル・パワフルなクラウ ドプロダクトと、プライベート やハイブリッドクラウドなど豊 富なラインアップ。 クラウド事業 クラウド型レンタルサー バー、ドメイン名登録など中 小企業や個人事業主の IT環 境を支援。 ホスティングサービス ドメイン名登録サービス 大企業 SI企業 大手IT事業者 IDCフロンティアは、法人向けのITインフラサービスを提供しているソフトバンクのグループ企業です。 データセンター事業、クラウド事業を主軸に、中小企業からエンタープライズまで、 幅広いお客さまのニーズに応えるサービスを取り揃えています。 ネットサービス企業 クラウドSI企業 中堅・中小企業 個人事業主
4 © IDC Frontier Inc. All Rights Reserved. 自社開発と 他社プロダクト
連携により 幅広い ラインアップ IDCFクラウド コンピューティング データ ベース DNS/GSL B CDN (コンテンツキャッシュ) (Fastly) プライベート クラウド (ホスティッド型) バーチャルブリッジ (サービス間接続) プライベートコネクト (オンプレ接続) クラウドストレージ (Google Cloud Storage) ロード バランサー ベアメタル サーバー コンテナ GPU サーバー
5 © IDC Frontier Inc. All Rights Reserved. 5 マルチインフラ環境でKubernetesクラスターの展開・管理
管理基盤にSUSE Rancherを採用 IDCFクラウド コンテナ
6 © IDC Frontier Inc. All Rights Reserved. 6 IDCFご利用のお客様状況と市場の流れ
市場でもクラウド利用者の 81%が2社以上の 事業者と契約 81% 2社以上のクラウド 単独の クラウド IDCFクラウドユーザーの 73%が ハイブリッド利用 ハイブリッド利用やマルチクラウドが主流に データセンターとクラウド 両方を担うIDCFだからこそ 必要な性能や機能で選ぶ マルチクラウドの流れ 出典:Smarter With Gartner「Why Organizations Choose a Multicloud Strategy」(2019年5月7日) 出典:https://www.idcf.jp/cloud/hybrid/ クラウド × オンプレミス クラウド × 物理サーバー クラウド × データセンター
7 © IDC Frontier Inc. All Rights Reserved. 7 これからの開発・実行環境
要件にあわせた環境をそろえたい、コンテナ管理が必要 自社コンテナ イメージの標 準化 (マイクロサービス前提) 実行環境を 選べる (マルチクラウド利用) インフラ 維持管理 不要 現在の課題 クラウドベンダーのコンテナ環境 データセンターのオンプレミス環境 プロダクション単位でコンテナ環境がバラバラ (GKE,ECS,EKS etc.) インフラ維持管理にエンジニア稼働が奪われる • 開発環境が乱立・増殖・混乱 • あるいは特定クラウドベンダーへの依存リスク • 重要コンポーネントのコンテナ化が困難 (i.e.セキュリティ要件が厳しい) • コンテナ・マイクロサービス開発体制へのシフトが進まない • インフラ機材所有コストの増大 • ハードウェアの陳腐化対応 • 監視運用稼働の削減に苦悩
8 © IDC Frontier Inc. All Rights Reserved. 8 モニタリング
コンテナからクラスタまで どのプラットフォームでも 同じ様にリソースをモニタリング マルチクラウド ハイブリッドクラウド サービスの特長 Any インフラ - 構築環境を選ばない - 学習コスト低減 - GUIから手軽に構築 - 運用負荷軽減 - サポートは日本語 - ベアメタルまたは プライベートクラウドなどの 社内仮想化プラットフォームに Kubernetesを展開 IDCFクラウドのコンピュートに加え GKE/EKS/AKSなど 複数のパブリッククラウドを シームレスに利用可能 ワンストップ マルチクラウド/インフラを 1つのインターフェースで 全てのクラスターを管理 カスタマーサポート IDCFクラウド同様の 日本語によるサポート体制 を提供 シンプル WEB UI WEB UIからワークロードを 簡単管理でき、YAML編集から コマンドライン操作まで 可能
9 © IDC Frontier Inc. All Rights Reserved. IDCFクラウド コンテナコンソール
のWAF対応 SUSE Rancher/Kubernetes環境のWebアプリケーション提供に当たって
10 © IDC Frontier Inc. All Rights Reserved. 10 IDCFクラウド
クラウドコンソールのWAF対応 IDCF Cloud Console 既存 クラウド型 WAF ゼロデイ攻撃 非ボット型攻撃 不正ログイン 標的型攻撃 高度な攻撃 不正なボットや 自動化された攻撃 ソフトウェアの脆弱性や 一般的な攻撃 (OWASP Top10, etc) Webアプリケーションへの サイバー攻撃例
11 © IDC Frontier Inc. All Rights Reserved. 11 IDCFクラウド
コンテナコンソールでの課題 IDCF コンテナ Console (SUSE Rancher/Kubernetes) 既存 クラウド型 WAF ・HTTP/2 ・WebSocket ・SPDY への対応が必須 SUSE RancherのEndpoint、及び、SUSE RancherはKubernetesのEndpointでも ある。そのため、WebSocket・SPDYの通信に対応するWAFが必要。 既存WAFに必要なプロトコル対 応がなかった・・・ ❌
12 © IDC Frontier Inc. All Rights Reserved. 12 要件に適したWAFの選定
要件 A社製品 B社製品 C社製品 NGINX Plus Ingress WebSocket対応 × ◎ ◎ ◎ HTTP/2対応 × ◎ ◎ ◎ SPDY対応 × × × ◎ kubernetesとの相性 - - - ◎ 余談ですが、kubectl execのSPDYについて、Kubernetesコミュニティは議論中 SPDY is deprecated. Switch to HTTP/2. #7452 https://github.com/kubernetes/kubernetes/issues/7452
13 © IDC Frontier Inc. All Rights Reserved. 13 SUSE
Rancher/KubernetesとIngress構成 Pod SUSE Rancher アプリケーション Internet Pod ingress-nginx ingress-nginx ingress-nginx IDCFクラウド コンテナ SUSE Rancher アプリケーション ingress-nginxをNGINX Plus Ingress + App protectへ置き換えていくことができるので、 NGINX Plusへ移行してもKubernetesのリソースとして扱うことができる
14 © IDC Frontier Inc. All Rights Reserved. 14 ingress-nginxとNGINX
Plus IngressのAnnotation Annotation(ingress-nginx) NGINX Plus 備考 nginx.ingress.kubernetes.io/proxy-connect-timeout ◎ nginx.ingress.kubernetes.io/proxy-read-timeout ◎ nginx.ingress.kubernetes.io/proxy-send-timeout ◎ nginx.ingress.kubernetes.io/rewrite-target ◎ nginx.ingress.kubernetes.io/service-upstream ◎ NGINX Ingress Controller v1.11より対応 nginx.ingress.kubernetes.io/ssl-redirect ◎ nginx.ingress.kubernetes.io/use-regex ◎ nginx.ingress.kubernetes.io/server-snippet ◎ nginx.ingress.kubernetes.io/configuration-snippet ◎ Kubernetesコミュニティのingress-nginxで実装が進んでいたservice-upstreamのような AnnotationもNGINX Plusのingressは追随しているのがありがたい
15 © IDC Frontier Inc. All Rights Reserved. 15 NGINX
Plus Ingress のリソース構成 apiVersion: k8s.nginx.org/v1 kind: VirtualServer metadata: name: xxxxxx.com namespace: default spec: host: xxxxxx.com policies: - name: waf-policy server-snippets: | location ^~ /healthz { access_log off; return 200; } routes: - path: ~* ^/ui/.* route: ui-index/idcf--ui VirtualServer apiVersion: k8s.nginx.org/v1 kind: VirtualServerRoute metadata: name: idcf-ui namespace: ui-index spec: host: xxxxxx.com upstreams: - name: ui-index service: ui-index port: 80 use-cluster-ip: true subroutes: - path: ~* ^/ui/.* action: proxy: upstream: ui-index VirtualServerRoute 複数のnamespaceで同じhostを使用するため、VirtualServerとVirtualServerRouteのリソー スタイプを使用する。また、NGINXの機能拡張をConfigmapで利用する。 kind: ConfigMap apiVersion: v1 metadata: name: nginx-config namespace: nginx-ingress data: proxy-connect-timeout: "30s" proxy-read-timeout: "1800s" proxy-send-timeout: "1800s" ….. Configmap ・共通の固有パラメーター ・headers-moreモジュール などをConfigmapにまとめる
16 © IDC Frontier Inc. All Rights Reserved. 16 NGINX
App Protectのリソース構成 apiVersion: k8s.nginx.org/v1 kind: VirtualServer metadata: name: xxxxxx.com namespace: xxxxx spec: host: xxxxx.com policies: - name: waf-policy VirtualServer apiVersion: k8s.nginx.org/v1 kind: Policy metadata: name: waf-policy namespace: xxxxx spec: waf: enable: true apPolicy: "appprotect-policy" securityLog: enable: true apLogConf: "logconf-app" logDest: "syslog:server=xx.x.x.xxx:5144" Policy App Protect apiVersion: appprotect.f5.com/v1beta1 kind: APPolicy metadata: name: appprotect-policy namespace: xxxxx spec: policy: name: app_protect_policy template: name: POLICY_TEMPLATE_NGINX_BASE applicationLanguage: utf-8 ... apiVersion: appprotect.f5.com/v1beta1 kind: APLogConf metadata: name: logconf-app namespace: xxxxx spec: filter: request_type: all content: format: default ... WAFのルール設定は、kind:APPolicyの中で行う。 enforcementModを使い、Blockingの有効・透過を設定。現在は透 過で様子見中。
17 © IDC Frontier Inc. All Rights Reserved. 17 App
Protect DashBoard App Protectに対応したGUIのDashBoardがOSSとして公開されており、WAFとしてリ クエストの状況を可視化、運用中の確認などに利用できる https://github.com/f5devcentral/f5-waf-elk-dashboardsより
18 © IDC Frontier Inc. All Rights Reserved. 18 NGINX
Plus Ingress+App Protectを導入してみて • NGINX App ProtectはKubernetesリソースとして扱える唯一のWAF • NGINX Plus IngressにもKubernetesコミュニティの開発機能がキャッチアップされ るのがありがたい • NGINXとしての機能エンハンス・拡張を組み込むことができる(HTTP/3とか ingress-nginxはまだ様子見で組み込んでいない) • なので、ingress-nginxとNGINXの良いところ採りに期待できる • NGINX Plus Ingress + App ProtectはKubernetesリソースなので、Kubernetesを 利用するインフラ・アプリエンジニアは既存プロセスで扱うことができる • ingress-nginxからの初回コンバートは大変。F5ネットワークス社のコンサルサービ スでのコンバート支援はありがたい
19 © IDC Frontier Inc. All Rights Reserved.