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
数多のセキュリティリスクを抱えたDBを改善した話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kyohei Kushihara
November 27, 2025
Technology
0
51
数多のセキュリティリスクを抱えたDBを改善した話
Kyohei Kushihara
November 27, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
94k
Claude Codeで実践するスペック駆動開発入門 / sdd-with-claude_code
yoshidashingo
2
420
React 19時代のコンポーネント設計ベストプラクティス
uhyo
14
4.8k
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
260
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
1.1k
量子クラウドシステムと運用
oqtopus
0
170
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
310
通話データから価値を生む 生成AIデータ基盤の実践 / CO-LAB_Tech_Night
sansan_randd
0
110
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
420
AIエージェントのメモリについて
shibuiwilliam
0
220
個人的3D Gaussian Splattingニュースをご紹介 / sharing 3d gaussian splatting news
drumath2237
0
230
ZOZO.swift #2
zozotech
PRO
0
270
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
130
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
140
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Claude Code のすすめ
schroneko
67
210k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Marketing to machines
jonoalderson
1
4.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Being A Developer After 40
akosma
91
590k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
Transcript
数多のセキュリティリスクを抱えた DBを改善した話
自己紹介 • 櫛原(くしはら) 京平 • インフラ(クラウド) • AWS/GCP/Alibaba • 好きなAWSサービス
◦ Step Functions
ローカル->DBへの接続、どうしてますか • DBへの接続経路は? ◦ SSH鍵を利用して踏み台サーバを経由して接続 ◦ Session Managerを利用して踏み台サーバを経由して接続 • DB接続方法は?
◦ パスワード認証を利用して接続 ◦ IAMデータベース認証を利用して接続 …etc
弊社のこれまでの接続方法 SSH鍵接続を利用して 弊社の接続方式は「エジパパ 方式」でした ※こんな方式名はでないので本日限りで忘れてください 常時起動している パブリックサブネットの踏み台サーバから パスワード認証を利用して DB接続を行っていた
エジパパ方式の欠点 • SSH鍵を利用しており漏洩リスクがある ◦ 22番ポートを解放している • 常時インターネットから接続できる経路がある • DBパスワードの漏洩リスクがある •
DB接続情報所有者がサイレントにDB接続できる
このLTで伝えたいこと (特にレガシーシステム) 前述したDB接続のセキュリティリスクを緩和し、 DBに格納されている情報が抜かれにくいインフラを目指して 弊社が採用した方式を聞いてください!! そして、世に存在しているエジパパを解放したい
目次 • 採用した接続方法 • 実際の運用方法 • インフラ構成について • この方式を実際に利用してみて
採用した接続方法
弊社の接続方式 Session Managerを利用して、 必要な時に起動する プライベートサブネットの踏み台サーバから パスワード認証を利用して ← 運用起因 DB接続を行う DBパスワード認証を利用したのは、
SREチームで利用している MySQL GUIクライアントツールが IAM認証に未対応であったため
エジパパ方式と比較したメリット • SSH鍵が不要 ◦ 22番ポートを解放する必要がない • 踏み台サーバがインターネットに常時晒されない • 踏み台サーバの利用履歴がSlack上に残る
具体的な使用方法について
踏み台の起動① Slackから踏み台を起動 • 対象のプロジェクト • 必要な権限 • 対象者 提示されたコマンドを ローカルPCで実行する
SSM ポートフォワード② 自作のスクリプトによって、 Session Managerを利用したポートフォワードを行う ※この状態でローカルPCとAuroraが疎通できる状況
コマンドの裏側 内部的に下記のようなコマンドを実行し、ポートフォワードを行う aws ssm start-session --target "$instance_id" \ --document-name AWS-StartPortForwardingSessionToRemoteHost
\ --parameters "{\"host\":[\"$rds_endpoint\"],\"portNumber\":[\"3306\"],\"localPortNumber\":[\"3306\"]}"
DBとの接続を確立③
インフラ構成について
インフラ構成 • Slack • Lambda • Step Functions ◦ 権限付与
◦ ユーザー管理 ◦ サーバ作成・終了
この方式を実際に利用してみて
メリット • 誰がどんな権限でDB接続しているのか明瞭になった • 踏み台サーバへの経路がほぼ絶たれた安心感 • 常時 DBへの書き込み権限を所有しているユーザーが減った
デメリット • Slack or AWSの障害が発生すると利用できない • 自前のスクリプトを実行したり、若干手間が増えた
• ぜひ これを機に確認してみてください • システムで解決したり、 運用でカバーしている などあると思います この後の懇親会で、(話せる範囲で)運用方法を教えてください! 皆さんの接続方式はなんですか?