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
インフラ観点で見るセキュリティ〜4Cモデルに倣って〜
Search
saramune
October 31, 2024
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
インフラ観点で見るセキュリティ〜4Cモデルに倣って〜
@IT Cloud Native Week 2024夏特別編集版
https://members06.live.itmedia.co.jp/library/NzM4NzE%253D
saramune
October 31, 2024
More Decks by saramune
See All by saramune
EKS Auto Modeなにそれおいしいの?
saramune
0
210
self-hosted runnersでAWSコスト削減?
saramune
0
190
業務効率向上としての分割キーボード
saramune
0
250
適材適所
saramune
1
150
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
830
週刊AWSキャッチアップ(2024/03/25週)
saramune
0
200
なんでもかんでもコンテナ化すればいいってもんでもないけど なんでもかんでもコンテナ化したらスッキリしました
saramune
2
500
ACKを活用して 使い捨てAWS検証環境を構築している話
saramune
0
1.5k
KubernetesとTerraformのセキュリティ/ガバナンス向上委員会 with OPA
saramune
2
1.8k
Other Decks in Technology
See All in Technology
自己解決や回答速度を上げる、サポート業務へのAIの組み込み方【SORACOM Discovery 2026】
soracom
PRO
0
100
現場との対話から始める “作る前に問い直す”業務改善
mochico50
2
340
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
440
AWS環境のセキュリティ不安を解消した企業事例 ~よくある課題と対策を一挙公開~
asanoharuki
0
240
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
360
脱Jenkins、インターン生が挑んだCIツールGitHubActions移行
mixi_engineers
PRO
1
260
SRENEXT_2026_Chairs__Talks_in_Tamachi.sre.pdf
srenext
1
170
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
540
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
200
13年運用タイトルのサーバーサイドが辿り着いた現在地 ― モンスターストライクにおける技術・組織・AI活用から得た知見
mixi_engineers
PRO
1
320
AI Agent を本番環境へ―― Microsoft Foundry × Azure Serverless で作る Enterprise-Ready な基盤
shibayan
PRO
1
820
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
460
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
A designer walks into a library…
pauljervisheath
211
24k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
430
Between Models and Reality
mayunak
4
380
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Odyssey Design
rkendrick25
PRO
2
740
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Crafting Experiences
bethany
1
230
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Design in an AI World
tapps
1
270
Skip the Path - Find Your Career Trail
mkilby
1
170
The Pragmatic Product Professional
lauravandoore
37
7.4k
Transcript
インフラ観点で見るセキュリティ 〜4Cモデルに倣って〜 古屋 啓介 2024年09月12日
自己紹介 2 • 古屋 啓介 ◦ 株式会社kubell SRE部 ◦ JAWS-UG
SRE支部運営 ◦ AWS Community Builder(2023〜) ◦ ドラム叩きます
2024年7月1日よりChatwork株式会社は、株式会社kubell(読み:クベル)に社名変更しました。 株式会社kubellは、誰もが使いやすく、社外のユーザーとも簡単につながることができる 日本最大級のビジネスチャット「Chatwork」を運営しています。 また、チャット経由で会計、労務、総務など様々なバックオフィス業務をアウトソースできる 「Chatwork アシスタント」などのBPaaSサービスを幅広く展開。 ビジネスチャットの会社から、BPaaSで「働く」を変えるプラットフォームを提供する会社へ事業領域を拡張します。
「Chatwork」とは ※※Nielsen NetView 及びNielsen Mobile NetView Customized Report 2024年4月度調べ月次利用者(MAU:Monthly Active
User)調査。 調査対象はChatwork、Microsoft Teams、Slack、LINE WORKS、Skypeを含む41サービスを株式会社kubellにて選定。 効率的に情報共有できる グループチャット 仕事の見える化ができる タスク管理 見落としがなくなる ファイル管理 いつでも会議ができる ビデオ/音声通話
「Chatwork」の構成(めちゃくちゃ古いですが) 5
本セッションのテーマ 6 クラウドやKubernetesをフル活用している 「Chatwork」における、インフラ観点のセキュリティ
前置き 7 • 本セッションで触れないこと ◦ 専門的なおはなし ◦ セキュリティのトレンド ◦ 具体的な攻撃やそれに対する防御
• そのほか ◦ CNDT 2022の発表内容がベースです ▪ KubernetesとTerraformのセキュリティ/ガバナンス向上委員会 with OPA
目次 CONTENTS 01 | セキュリティのはじめかた 02 | Kubernetesのセキュリティ向上施策 03 |
Terraformの安全な運用 04 | 今後やりたいこと 05 | まとめ
01 | セキュリティのはじめかた
クラウドネイティブセキュリティ
クラウドネイティブセキュリティ?
クラウドネイティブセキュリティって? 12 • イメージ ◦ なにかツールを入れる or SaaSを利用する ◦ プロダクトセキュリティチームを組成する
◦ 脆弱性診断してもらう
も、ダイジだけど 13 • インフラ(アプリ)観点でできる基本的なことはやっておきたい ◦ S3バケット、全世界に公開してないですか? ◦ IAMユーザ(ACCESSKEY)使ってないですか? ◦ コンテナイメージにヘンなの入ってないですか?
基本的なこと、をどこから見ていくか 14 • クラウドネイティブセキュリティの4C ◦ クラウド ◦ クラスター ◦ コンテナ
◦ コード https://kubernetes.io/ja/docs/concepts/security/overview/
たとえば、クラウドのセキュリティ 15 • 各クラウドの推奨事項 ◦ AWS: Well-Architected Framework ◦ Google
Cloud: Architecture Framework ◦ Azure: Well-Architected Framework
AWSのWell-Architected Framework(1/3) 16 • フレームワークの概要 ◦ AWS Well-Architected Framework では、クラウド上でワークロードを設計および実行
するための主要な概念、設計原則、アーキテクチャのベストプラクティスについて説明し ています。 ◦ 6つの柱 ▪ オペレーショナルエクセレンス ▪ セキュリティ ▪ 信頼性 ▪ パフォーマンス ▪ コスト最適化 ▪ 持続可能性 ◦ イメージとしてはプロダクトの健康診断表 ▪ 定期的に見直して、悪いところをあぶり出す https://aws.amazon.com/jp/architecture/well-architected/
AWSのWell-Architected Framework(2/3) 17 • セキュリティの柱(Pillar) ◦ このホワイトペーパーを読むことで、セキュリティを念頭に置いてクラウドアーキテク チャを設計するための AWS の最新の推奨事項と戦略を理解できます。
◦ 全60項目以上 ▪ セキュリティの基礎 ▪ IDとアクセス管理 ▪ 検知 ▪ インフラストラクチャ保護 ▪ データ保護 ▪ インシデント対応 ▪ アプリケーションのセキュリティ https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/security-pillar/welcome.html
AWSのWell-Architected Framework(3/3) 18 • たとえば ◦ IDとアクセス管理 ▪ SEC02-BP01 強力なサインインメカニズムを使用する
◦ インシデント対応 ▪ SEC10-BP03 フォレンジック機能を備える ◦ ワークロードを安全に運用する ▪ SEC01-BP08 新しいセキュリティサービスと機能を定期的に評価および実装する わかる わ、わかる わかるけどむずない?
AWSのWell-Architected Framework(3/3) 19 • たとえば ◦ IDとアクセス管理 ▪ SEC02-BP01 強力なサインインメカニズムを使用する
◦ インシデント対応 ▪ SEC10-BP03 フォレンジック機能を備える ◦ ワークロードを安全に運用する ▪ SEC01-BP08 新しいセキュリティサービスと機能を定期的に評価および実装する わかる わ、わかる わかるけどむずない? リスク踏まえてやるやらは都度判断でOK
AWSのWell-Architected Framework(3/3) 20 • たとえば ◦ IDとアクセス管理 ▪ SEC02-BP01 強力なサインインメカニズムを使用する
◦ インシデント対応 ▪ SEC10-BP03 フォレンジック機能を備える ◦ ワークロードを安全に運用する ▪ SEC01-BP08 新しいセキュリティサービスと機能を定期的に評価および実装する わかる わ、わかる わかるけどむずない? リスク踏まえてやるやらは都度判断でOK でもそもそも項目数が多すぎる...
• W-Aのセキュリティの柱をキュッとした版 ◦ アカウントの保護 ◦ ワークロードのセキュリティ保護 • 全27項目 ◦ たとえば...
▪ ACCT.08 — プライベート S3 バケットへのパブリックアクセスを阻止する ▪ WKLD.01 — コンピューティング環境へのアクセス許可に IAM ロールを使用する そんなあなたに、AWS Startup Security Baseline 21
• W-Aのセキュリティの柱をキュッとした版 ◦ アカウントの保護 ◦ ワークロードのセキュリティ保護 • 全27項目 ◦ たとえば...
▪ ACCT.08 — プライベート S3 バケットへのパブリックアクセスを阻止する ▪ WKLD.01 — コンピューティング環境へのアクセス許可に IAM ロールを使用する そんなあなたに、AWS Startup Security Baseline 22 これくらいならサッと見直せそう!
詳しくはSAはまーんさんの資料で 23 https://speakerdeck.com/track3jyo/aligning-agility-and-aws-governance-controls
• Well-Architected Framework ◦ 活用できてない... ▪ = 健康診断できてない... • AWS
Startup Security Baseline ◦ いけてそう ▪ = とりあえず最低ラインはOK • (セキュリティ室によるSecurity Hub運用) ◦ W-Aをフォロー 「Chatwork」では... 24
• クラウドネイティブ”インフラ”セキュリティのはじめかた ◦ モデルやフレームワークを使う ▪ 4Cモデル ▪ Well-Architected Framework ▪
AWS Startup Security Baseline ◦ リスクを踏まえてやるやらないを判断して無理なく ここまでのまとめ 25
02 | Kubernetesのセキュリティ向上施策
再掲 27 • クラウドネイティブセキュリティの4C ◦ クラウド ◦ クラスター ◦ コンテナ
◦ コード https://kubernetes.io/ja/docs/concepts/security/overview/
「Chatwork」のKubernetesクラスター無法地帯問題(言い過ぎ) 28 • 悪意のあるコンテナがデプロイされる危険性があった ◦ 起動するコンテナイメージを検査できていなかった うわっ...弊社のKubernetes、無法地帯すぎ...?
「Chatwork」のアプリデプロイの流れ 29 • Argo CDによるGitOps ◦ アプリリポジトリでmasterマージされれば自動でビルド&マニフェスト更新 ◦ Argo CDが差分を検知するのでSyncすればリリース
開発者 Application Manifest (helmfile) Charts ECR EKS Push Build Update Push kubectl apply Sync CI Reconciliation Loop
デプロイ可能なイメージの制約をかけたい 30 • いつどこで? ◦ マニフェストファイルのCI時 ◦ Kubernetes内部(kubectl apply時、apply以外のリソース生成時) 開発者
Application Manifest (helmfile) Charts ECR EKS Push Build Update Push kubectl apply Sync CI Reconciliation Loop
Open Policy Agent(OPA)を採用 31 • 先述の両方のタイミングで対応可能なツール ◦ ConftestでCI時の検査 ◦ GateKeeperでKubernetes内部から検査
OPAとは 32 • CNCFでホストされるオープンソースで汎用的なポリシーエンジン ◦ Regoという言語でポリシーを表現 ◦ Input(JSON)をPolicy(Rego)で検査するAPIを提供する
Regoとは 33 • OPAで利用するポリシー記述言語 • 普段使ってない脳みそが使われる感じがする ◦ 独特の書き味があって学習ハードルは高め ◦ Masayoshi
MIZUTANIさんのZenn記事にお世話になりました ▪ https://zenn.dev/mizutani/books/d2f1440cfbba94
Conftest、Gatekeeperについて 34 • いずれもOPA/Regoの仕組みを使ったツール • Conftest ◦ Regoを利用して以下のようなコードを検査できる ▪ Kubernetesのマニフェスト
▪ TerraformコードなどのHCL • Gatekeeper ◦ Kubernetes内でOPAのポリシーチェックを回す ▪ Validating Admission Webhookを利用
他社さんの事例 35 • Conftest + Gatekeeperは(k8sでは)あるあるな構成 • LIFULLさんの事例 ◦ Pod
Security Policyの代替として採用 ▪ https://www.lifull.blog/entry/2021/07/07/200000 • NIKKEIさんの記事 ◦ ハンズオンつき! ▪ https://hack.nikkei.com/blog/advent20201224/
運用戦略 36 • ポリシー専用のリポジトリを用意 ◦ ポリシーと検査の仕組みを密結合にしたくない • ポリシーの適用を自動化 ◦ ポリシーが更新されればCIとGatekeeperそれぞれに反映
実装 37 開発者 Policy(Rego) Gatekeeper Manifests Application Manifests EKS Push
Admission Webhook Update CRD (Konstraint) Sync Pull CI
検査(ポリシー)内容 38 • 前回発表時点 ◦ コンテナイメージ名チェック ▪ 特定の命名規則に則っているイメージ名のみ起動を許可 • 追加で
◦ cluster-admin Roleのチェック ▪ 意図したリソース以外に強い権限が割り当てられないか ◦ hostNetwork, hostPortの制限 ▪ 非推奨の機能が使われていないか
やってみて 39 • 課題が解決 ◦ 悪意のあるコンテナがデプロイされる危険性がなくなった ▪ 今までもなかったけど、より安全に ◦ その他明確にダメなところを塞ぐことができた
▪ cluster-admin Role, hostNetwork, hostPort • 2重チェックしているので安心(感がある) ◦ 実際に検知されたパターンもあり、機能している • Regoがやはり難しい ◦ ちょっと間が空くと書き方から忘れる...
ここまでのまとめ 40 • 確実なk8sマニフェスト検査ができるOPAの仕組みを採用 ◦ 意図しないコンテナの起動を防ぐなど • 自動かつ柔軟な検査が可能 ◦ CIとapply時のWチェック、ポリシーの分離
• 手をかけれるかどうかがOPA採用の見極めポイントかも ◦ 作り込みとRegoの習得が必要な点に要注意 ◦ Kyvernoとかが対抗馬か
参考文献 41 PairsにおけるEKSセキュリティの取り組み OPAの話も含め広範囲のセキュリティ対策について触れら れていてすごく参考になります OPA/Rego入門 再掲
03 | Terraformの安全な運用について
再掲 43 • クラウドネイティブセキュリティの4C ◦ クラウド ◦ クラスター ◦ コンテナ
◦ コード https://kubernetes.io/ja/docs/concepts/security/overview/
Terraform、どうやって運用してますか?
Terraform、どうやって運用してますか? 45
以前の「Chatwork」では 46 SQSが欲しいな... 開発チーム
以前の「Chatwork」では 47 SQSが欲しいな... SQS 1つお願いします! 開発チーム
以前の「Chatwork」では 48 SQS 1つ入りまーす SRE部
以前の「Chatwork」では 49 SQS 1つ入りまーす SRE部 .tf書いてpush
以前の「Chatwork」では 50 SQS 1つ入りまーす SRE部 .tf書いてpush terraform planして
以前の「Chatwork」では 51 SQS 1つ入りまーす SRE部 .tf書いてpush terraform planして plan結果をPRに添付
以前の「Chatwork」では 52 SQS 1つ入りまーす SRE部 .tf書いてpush terraform planして SRE部でレビューして plan結果をPRに添付
以前の「Chatwork」では 53 SQS 1つ入りまーす SRE部 .tf書いてpush terraform planして SRE部でレビューして terraform
apply plan結果をPRに添付
以前の「Chatwork」では 54 SQS 1つ入りまーす SRE部 .tf書いてpush terraform planして SRE部でレビューして terraform
apply apply結果を... plan結果をPRに添付
以前の「Chatwork」 Terraform事情 55 • 開発者主体でAWSリソースを作成できなかった ◦ AWSリソース作成は権限を持つSRE部が実施する必要あり • レビューおよび実行記録の保存がしんどい ◦
SRE各個人のmacからterraform apply!→GitHubにぺたぺた • Terraformのバージョン管理がつらい ◦ みんなのバージョン一生揃わない(providerも)
セキュリティ、という観点では • 各自ローカルから本番環境ポチポチ、は避けたい ◦ 強い権限が必要 ◦ 証跡が残らない ▪ 手動ぺたぺたの運用カバー ◦
Terraformのバージョンが揃わない ▪ 古いバージョン使われたり 56
新天地を求めて 57 • 要件 ◦ 開発者がセルフサービスで利用できる ▪ PR上で実行できるとレビュー記録も残って嬉しい ◦ tfstateをリモートで一元管理できる
▪ バージョンバラバラ問題にも対処できる ◦ IAMロールで運用できる ▪ セキュリティ推奨事項に則る
紆余曲折 58 • HCP Terraform(Terraform Cloud) ◦ 第一候補だったが当時はIAMキー必須のためNG • GitHub
Actions / Self-Hosted Runner ◦ 当時はプランの都合で選択できず...
新天地、Atlantis 59 • GitHub PR上でコメント駆動terraform applyできるOSS ◦ PRのコメントでplan、レビュー後apply、みたいな • Pros
◦ 要件はすべて満たす(PR運用、tfstate、IAMロール) • Cons ◦ 運用コスト(インフラ費、人件費)
The Atlantis Workflow 60 https://www.runatlantis.io/
The Atlantis Workflow 61 https://www.runatlantis.io/
The Atlantis Workflow 62 https://www.runatlantis.io/
The Atlantis Workflow 63 https://www.runatlantis.io/
運用 64 EKS terraform apply terraform apply 開発者 Terraform atlantis
apply pull
導入してみて 65 • 開発者体験の向上 ◦ SRE部に依頼しなくてもAWSリソースが作れる • セキュリティの向上 ◦ 権限はAtlantisさんだけが持てばよい(Atlantisさんつよつよ問題はある)
• ガバナンス(※)の向上 ◦ GitHubでplan見て、レビューしてもらって、applyできる ※ここでいうガバナンスが効いている状態とは、みんなが同じやり方・同じルール下でTerraform運用できる状態を指します
導入してみて 66 • 開発者体験の向上 ◦ SRE部に依頼しなくてもAWSリソースが作れる • セキュリティの向上 ◦ 権限はAtlantisさんだけが持てばよい(Atlantisさんつよつよ問題はある)
• ガバナンス(※)の向上 ◦ GitHubでplan見て、レビューしてもらって、applyできる ※ここでいうガバナンスが効いている状態とは、みんなが同じやり方・同じルール下でTerraform運用できる状態を指します
とはいえSRE部でレビューしたいところもある... 67 • GitHub CODEOWNERSの活用 ◦ 特定teamメンバーのapproveを強制できる • 制限をかける例 ◦
ネットワーク系 ◦ DNS系 ◦ SRE管理してるもの(EKS moduleなど) ◦ SSOのポリシー
ここまでのまとめ 68 • 新天地、Atlantis ◦ Terraform運用のつらみ解消 • Terraform運用の開発者体験 / セキュリティ
/ ガバナンス向上に貢献 ◦ 誰でもapplyできて、セキュアで、記録が残る • Atlantisさんのお守りは考える必要アリ ◦ 良くも悪くもself-hosted ◦ 今だとHCP Terraformでも全然いいかもしれない
04 | 今後やりたいこと
再掲 70 • クラウドネイティブセキュリティの4C ◦ クラウド ◦ クラスター ◦ コンテナ
◦ コード https://kubernetes.io/ja/docs/concepts/security/overview/
コンテナのセキュリティ 71 • 課題感 ◦ 診断ツールを入れているが、活用しきれていない ▪ 侵入や異常検知はしているものの... • やりたいこと
◦ ちゃんと運用を回す or 乗り換える ▪ 最近だとAWSのGuard Dutyでも結構イケそうな気がする
05 | まとめ
インフラ観点で見るセキュリティ〜4Cモデルに倣って〜 73 • モデルやフレームワークをまず見てみよう ◦ 4Cモデル、Well-Architected Framework • 4Cモデルに沿った具体的な施策 ◦
Kubernetes: OPA ◦ Terraform: Atlantis • インフラ観点でもやれるセキュリティ施策はたくさんある!
働くをもっと楽しく、創造的に