Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SUSE RancherとKubernetes環境へのWAF対応

SUSE RancherとKubernetes環境へのWAF対応

TakashiAsanuma

October 22, 2021
Tweet

More Decks by TakashiAsanuma

Other Decks in Technology

Transcript

  1. 1
    © IDC Frontier Inc. All Rights Reserved.
    SUSE RancherとKubernetes環境
    へのWAF対応
    株式会社IDCフロンティア
    エンジニアリング本部 開発部 浅沼
    2021年9月30日

    View Slide

  2. 2
    © IDC Frontier Inc. All Rights Reserved.
    2
    Agenda

    1. IDCFクラウド コンテナコンソールのWAF対応
    (SUSE Rancher/Kubernetes環境におけるWAF対応)
    2. コンテナ運用管理を成功に導く鍵-SUSE Rancherとは
    (SUSE社より)

    View Slide

  3. 3
    © IDC Frontier Inc. All Rights Reserved.
    3
    IDCフロンティアについて

    高集積・大規模なニーズに
    応えるデータセンターを全国
    に7ヵ所、グループ全体では
    19ヵ所展開。
    ※2021年3月時点
    データセンター事業
    シンプル・パワフルなクラウ
    ドプロダクトと、プライベート
    やハイブリッドクラウドなど豊
    富なラインアップ。
    クラウド事業
    クラウド型レンタルサー
    バー、ドメイン名登録など中
    小企業や個人事業主の IT環
    境を支援。
    ホスティングサービス
    ドメイン名登録サービス
    大企業 SI企業 大手IT事業者
    IDCフロンティアは、法人向けのITインフラサービスを提供しているソフトバンクのグループ企業です。
    データセンター事業、クラウド事業を主軸に、中小企業からエンタープライズまで、

    幅広いお客さまのニーズに応えるサービスを取り揃えています。
    ネットサービス企業 クラウドSI企業
    中堅・中小企業 個人事業主

    View Slide

  4. 4
    © IDC Frontier Inc. All Rights Reserved.
    自社開発と

    他社プロダクト

    連携により

    幅広い

    ラインアップ
    IDCFクラウド
    コンピューティング
    データ
    ベース
    DNS/GSL
    B
    CDN
    (コンテンツキャッシュ)
    (Fastly)
    プライベート
    クラウド
    (ホスティッド型)
    バーチャルブリッジ
    (サービス間接続)
    プライベートコネクト
    (オンプレ接続)
    クラウドストレージ
    (Google Cloud
    Storage)
    ロード
    バランサー
    ベアメタル
    サーバー
    コンテナ
    GPU
    サーバー

    View Slide

  5. 5
    © IDC Frontier Inc. All Rights Reserved.
    5
    マルチインフラ環境でKubernetesクラスターの展開・管理

    管理基盤にSUSE Rancherを採用

    IDCFクラウド コンテナ


    View Slide

  6. 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/
    クラウド × オンプレミス
    クラウド × 物理サーバー
    クラウド × データセンター

    View Slide

  7. 7
    © IDC Frontier Inc. All Rights Reserved.
    7
    これからの開発・実行環境
    要件にあわせた環境をそろえたい、コンテナ管理が必要

    自社コンテナ
    イメージの標
    準化
    (マイクロサービス前提)
    実行環境を
    選べる
    (マルチクラウド利用)
    インフラ
    維持管理
    不要
    現在の課題
    クラウドベンダーのコンテナ環境 データセンターのオンプレミス環境
    プロダクション単位でコンテナ環境がバラバラ
    (GKE,ECS,EKS etc.)
    インフラ維持管理にエンジニア稼働が奪われる
    • 開発環境が乱立・増殖・混乱
    • あるいは特定クラウドベンダーへの依存リスク
    • 重要コンポーネントのコンテナ化が困難
     (i.e.セキュリティ要件が厳しい)
    • コンテナ・マイクロサービス開発体制へのシフトが進まない
    • インフラ機材所有コストの増大
    • ハードウェアの陳腐化対応
    • 監視運用稼働の削減に苦悩

    View Slide

  8. 8
    © IDC Frontier Inc. All Rights Reserved.
    8
    モニタリング
    コンテナからクラスタまで
    どのプラットフォームでも
    同じ様にリソースをモニタリング
    マルチクラウド
    ハイブリッドクラウド
    サービスの特長

    Any インフラ
    - 構築環境を選ばない -
    学習コスト低減
    - GUIから手軽に構築 -
    運用負荷軽減
    - サポートは日本語 -
    ベアメタルまたは
    プライベートクラウドなどの
    社内仮想化プラットフォームに
    Kubernetesを展開
    IDCFクラウドのコンピュートに加え
    GKE/EKS/AKSなど
    複数のパブリッククラウドを
    シームレスに利用可能
    ワンストップ
    マルチクラウド/インフラを
    1つのインターフェースで
    全てのクラスターを管理
    カスタマーサポート
    IDCFクラウド同様の
    日本語によるサポート体制
    を提供
    シンプル WEB UI
    WEB UIからワークロードを
    簡単管理でき、YAML編集から
    コマンドライン操作まで 可能

    View Slide

  9. 9
    © IDC Frontier Inc. All Rights Reserved.
    IDCFクラウド コンテナコンソール
    のWAF対応
    SUSE Rancher/Kubernetes環境のWebアプリケーション提供に当たって

    View Slide

  10. 10
    © IDC Frontier Inc. All Rights Reserved.
    10
    IDCFクラウド クラウドコンソールのWAF対応

    IDCF Cloud Console
    既存
    クラウド型
    WAF
    ゼロデイ攻撃
    非ボット型攻撃
    不正ログイン
    標的型攻撃
    高度な攻撃
    不正なボットや
    自動化された攻撃
    ソフトウェアの脆弱性や
    一般的な攻撃
    (OWASP Top10, etc)
    Webアプリケーションへの
    サイバー攻撃例

    View Slide

  11. 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に必要なプロトコル対
    応がなかった・・・

    View Slide

  12. 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


    View Slide

  13. 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のリソースとして扱うことができる


    View Slide

  14. 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は追随しているのがありがたい


    View Slide

  15. 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にまとめる


    View Slide

  16. 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の有効・透過を設定。現在は透
    過で様子見中。


    View Slide

  17. 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より

    View Slide

  18. 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ネットワークス社のコンサルサービ
    スでのコンバート支援はありがたい

    View Slide

  19. 19
    © IDC Frontier Inc. All Rights Reserved.

    View Slide