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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
TakashiAsanuma
October 22, 2021
Technology
210
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
Skills間の連携も関数のようにしたら快適だった話
takashiasanuma
1
1.6k
Supabase CLIのある開発日常
takashiasanuma
3
370
DCC2P_IDCFクラウドコンテナ商用サービス事例紹介
takashiasanuma
0
100
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
CMやるよって言われてからのインフラチューニング
takashiasanuma
0
240
Other Decks in Technology
See All in Technology
【NRUG vol.18】KubernetesにおけるNew Relicデータ取得量削減の考え方
nrug_member
0
110
LLMにもCAP定理があるという話
harukasakihara
0
320
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
230
手塩にかけりゃいいってもんじゃない
ming_ayami
0
550
AIはどのように 組織のアジリティを変えるのか?
junki
2
650
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
140
EventBridge Connection
_kensh
5
700
"何を作るか"を任される エンジニアは、どう育つのか
yutaokafuji
1
660
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
220
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
920
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
730
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
220
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Navigating Weather and Climate Data
rabernat
0
220
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Designing Experiences People Love
moore
143
24k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Claude Code のすすめ
schroneko
67
230k
Exploring anti-patterns in Rails
aemeredith
3
400
We Are The Robots
honzajavorek
0
250
What's in a price? How to price your products and services
michaelherold
247
13k
Paper Plane (Part 1)
katiecoart
PRO
0
8.8k
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.