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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
78
Skills間の連携も関数のようにしたら快適だった話
takashiasanuma
1
1.7k
Supabase CLIのある開発日常
takashiasanuma
3
390
DCC2P_IDCFクラウドコンテナ商用サービス事例紹介
takashiasanuma
0
120
RubyによるPub/Sub messaging - パブリッククラウドのバックエンドシステム事例 /Public Cloud backend system
takashiasanuma
0
160
RubyでPub/Sub messaging-Multi Process-Daemonizes-Application
takashiasanuma
1
13k
Scalable Applications with Pub/Sub Messaging
takashiasanuma
0
140
Pub/Subメッセージングのテスト(LT版)
takashiasanuma
0
110
IDCクラウドのバックエンド
takashiasanuma
0
160
Other Decks in Technology
See All in Technology
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
270
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
500
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
ラジオの科学
frievea
0
350
Reference-Free Image Quality Assessment for Virtual Try-On via Human Feedback
zozotech
PRO
0
640
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
150
Sets in Go
ramalho
1
1.1k
Apache Icebergインフラストラクチャ:ストレージ・カタログ・エンジンの選択肢とClouderaプラットフォームでの実装
tsugiyama
0
120
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
0
700
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
350
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.2k
コーチングの奥義 何もしないテクニック
jinwatanabe
0
110
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
250
Become a Pro
speakerdeck
PRO
31
6.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
New Earth Scene 8
popppiees
3
2.5k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Ethics towards AI in product and experience design
skipperchong
2
350
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
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.