Successfully reported this slideshow.
Your SlideShare is downloading. ×

Kubernetesセキュリティの歩き方

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 19 Ad

Kubernetesセキュリティの歩き方

Download to read offline

Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み

Kubernetesセキュリティの歩き方
LIFULLでは、マルチテナントのKuberntesクラスタを運用しています。

さまざまなアプリケーションが一つのクラスタに混在する中、OPA GatekeeperやConftestを用いてどのようにセキュアなKubernetesクラスタを実現しているのかについてご紹介します。

スピーカー:花塚 亮祐

Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み

Kubernetesセキュリティの歩き方
LIFULLでは、マルチテナントのKuberntesクラスタを運用しています。

さまざまなアプリケーションが一つのクラスタに混在する中、OPA GatekeeperやConftestを用いてどのようにセキュアなKubernetesクラスタを実現しているのかについてご紹介します。

スピーカー:花塚 亮祐

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Kubernetesセキュリティの歩き方 (20)

Advertisement

More from LIFULL Co., Ltd. (20)

Recently uploaded (20)

Advertisement

Kubernetesセキュリティの歩き方

  1. 1. Copyright© LIFULL All Rights Reserved. Kubernetesセキュリティの歩き方 テクノロジー本部アプリケーション基盤G 花塚 亮祐 2021.12.15 Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み
  2. 2. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 花塚 亮祐(Hanatsuka Ryosuke) 2018年4月  セキュリティエンジニアとして新卒入社 脆弱性可視化基盤を開発するプロジェクト立ち上げ 2020年10月  現在のチームに異動し、 Kubernetesによるアプリケーション実行基 盤の開発・運用に携わる Twitter(動いていない): @___hnts
 Blog: https://hanatsuu.medium.com/ 自己紹介 2
  3. 3. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 今日のポイント 3 ● マニフェストの自動監査にGatekeeperとConftestを採用 ● 自分たちの環境に対して適切な対策を見つける ● 事故が起きないように本番環境への導入は慎重に
  4. 4. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 Agenda 1. 解決したかった課題 2. 採用したOPA GatekeeperとConftestについて 3. OPA GateKeeperで何を対策するのか 4. 対策を本番環境に導入するまで 4
  5. 5. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 マニフェストの監査を自動化して、k8sクラスタをよりセキュアにしたい ● 不適切な設定・悪意のある設定のマニフェストのデプロイの制限 ○ Privileged Containerなど強い権限を持ったマニフェストがデプロイ可能となっていた ● 人力によるマニフェストのチェック ○ 開発者が書いた多くのマニフェストを人力でチェックするため、見落としの可能性があった 解決したかった課題 5
  6. 6. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 Pod Security Policy ● Kubernetesに元から組み込まれている 6 OPA Gatekeeper ● Pod Security Policyと同じようなことが 可能な上、自由度が高い 監査自動化において検討した候補
  7. 7. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 Pod Security Policy ● Kubernetesに元から組み込まれている 7 OPA Gatekeeper ● Pod Security Policyと同じようなことが 可能な上、自由度が高い Kubernetes v1.25から Pod Security Policyは廃止になる ✅ Conftestも採用することで、開発時の マニフェストチェックも可能になる 検討した候補
  8. 8. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 ● KubernetesのAdmission Controllerとして動作し、アンチパターンなマニフェストのデプロイの禁 止などを可能にする カスタムコントローラー ● Regoで任意の処理を実現できる (以下の例は、hostPIDがtrueであるリソースのデプロイを防いでいる ) 8 package deny_host_pid violation[msg] { input.review.object.spec.hostPID msg := sprintf("Sharing the host pid is not allowed: %v", [input.review.object.metadata.name]) } OPA Gatekeeperとは
  9. 9. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 ● Conftestはk8sマニフェストが違反していないかを静的にチェックできる ● CIに組み込むことで、デプロイ前にマニフェストがポリシーに違反していないかを確かめることが 可能 ● Gatekeeper同様に、Regoで任意の処理を実現できる ⚠Gatekeeperで使用したRegoと差異があることに注意 9 package deny_host_pid violation[msg] { input.spec.hostPID msg := sprintf("Sharing the host pid is not allowed: %v", [input.metadata.name]) } Conftestとは
  10. 10. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 Gatekeeperで何を対策するのか? 10
  11. 11. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 最初に以下のような記事を読んで把握した - クラウドネイティブセキュリティの概要 | Kubernetes
 - Matrix - Enterprise | MITRE ATT&CK®
 - Threat matrix for Kubernetes
 - NIST SP 800-190 11 https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernet ① コンテナ・Kubernetesに関するセキュリティの 全体を簡単に把握する
  12. 12. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 脅威と攻撃手順を知ることで妥当性のある対策を考案できる 参考にしたもの ● 脅威モデリングのレポート ○ CNCF Financial User Groupが脅威モデリングレポート を公開 ○ STRIDEを用いた一般的な k8sクラスタへの脅威モデリング ○ 複数のシナリオに対応した Attack Treeが含まれている ● Attack Tree ○ 攻撃の一連の流れを表したもの ○ 攻撃を達成するまでにどのような手順が必要か把握できる 12 Attack tree of malicious code execution ②対策すべき項目と対策を具体的に考える
  13. 13. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 脅威モデリングレポートを参考とした基本的な対策 (今後はPod Securityによる代替も検討) ● Privileged Containerの制限 ● Host PIDの制限 ● Host Networkの制限 ● etc. 自分たちの環境で見つかった脅威の対策 ● Istio Gatewayの衝突回避 ● Istio Virtual Serviceの衝突回避 ● PriorityClassのデプロイの制限 13 実際に決めた対策
  14. 14. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 対策を本番環境に導入するまで ぶつかった課題ややるべきことが色々あったので紹介 14
  15. 15. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 解決策 GatekeeperとConftestのRegoを併用できない ● 少しだけ文法に差異がある ● GatekeeperではConstraintTemplateに直接Regoが埋め込まれる 15 https://github.com/plexsystems/konstraint/blob/main/images/logo.png Konstraintを使って解決する ● GatekeeperとConftestのRegoの差異を吸収してくれるツール ● Github Actionsを併用することでRegoの更新を自動化 課題 本番環境に導入するまでにぶつかった課題①
  16. 16. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 解決策    ConstraintとConstraintTemplateをクラスタへ適用する際に、 何も考えずに適用してしまうと、意図していないリソースまでも 影響を受ける可能性がある 16 一定期間dryrunで監視する ● dryrunで適用することでテスト運用できる ● Gatekeeperが公開するメトリクスから通知を設定 課題 本番環境に導入するまでにぶつかった課題②
  17. 17. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 GatekeeperとConftestのテスト ● ConftestのverifyコマンドでRegoをテスト(test suffixをつけたファイルをテストしてくれる ) 17 対策が機能しているかを確認する
  18. 18. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 ● 必ず対応すべきポリシーやテストのみを提供する ● 対応方法が分かるRunbookを提供する CIの形骸化を防ぐ 18
  19. 19. Copyright© LIFULL All Rights Reserved. Ltech#20 Kubernetesを用いたアプリケーション実行基盤の取り組み 2021.12.15 まとめ 19 ● マニフェストの自動監査にGatekeeperとConftestを採用 GatekeeperとConftestを採用することで課題を解決 ● 自分たちの環境に対して適切な対策を見つける むやみに対策するのではなく、自分たちが対策すべき項目を洗い出す ● 事故が起きないように本番環境への導入は慎重に Gatekeeperの稼働は意図しない事故に繋がるので、十分にテストすること

×