Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
シークレットを漏らしてしまった話 / secret-key-exposed
Search
pep299
June 24, 2022
Technology
83
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
シークレットを漏らしてしまった話 / secret-key-exposed
pep299
June 24, 2022
More Decks by pep299
See All by pep299
なるべく自動化頑張ったLINE BOT on AWS
pep299
0
110
Playwright for PythonではじめるE2Eテスト / Lets start e2e-test with playwright for python
pep299
0
1.2k
プレイングマネージャーの葛藤 / The Conflict of a Playing Manager
pep299
1
3.5k
will・canマトリクスで自己分析してみた / Self-analysis with will-can matrix
pep299
0
620
そうだ Firebase Remote Config、使おう / let use Firebase Remote Config
pep299
0
110
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
4
2.7k
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
140
Webとヘルスデータ
yukukotani
1
200
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
130
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
130
20260912_スクフェス三河
kgnkhkr
0
150
Omarchy Quattro の日本語設定周り
simosako
2
120
振り返りこそエンジニアの本領
negima
0
350
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
290
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
240
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
400
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
270
Featured
See All Featured
Design in an AI World
tapps
1
310
Test your architecture with Archunit
thirion
2
2.4k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
WCS-LA-2024
lcolladotor
0
820
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
How to Talk to Developers About Accessibility
jct
2
540
Unsuck your backbone
ammeep
672
58k
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Transcript
「シークレットを漏らしてしまった話」 ぺぺ@Pep299 1
自己紹介 ぺぺ@Pep299 https://twitter.com/Pep299 情報系学士卒 エンジニア歴7年目 SES(金融系)-> フリーランス -> Web系受託 ->
Web系自社サ Open Source Conference 2021 Kyoto 登壇 東京都 新型コロナウイルス感染症対策サイトのコントリビュート ゲーム(Dead By Daylight、Among Us、ボードゲーム)・ブレイクダンス 2
3行まとめ LINEとTwitter APIのシークレットをうっかりGitHubのPublicリポにpush 一次対応と再発防止策を共有 業務中ではなく趣味開発中の話、でも再現性ありそう リポジトリ: https://github.com/pep299/dbd_line_bot 3
ある日のこと ピロン「おや?GitHubからメールが…GitGuardian?なんかつよそう」 ? 4
こんなお達しが 「シークレットを検知したやで」オーマイガー 5
何が起きた? IaCのテスト実装時に考慮が足りてなかった AWS CDKのスナップショットテストをするため、修正前のCloudFormation Templateを 保持して置く必要が そのTemplateに環境変数のvalueもそのまま埋め込まれる 環境変数ダダ漏れ状態でした . .
"Environment": Object { "Variables": Object { "ENV_NAME": "prod", "LINE_CHANNEL_ACCESS_TOKEN": "+RpdU3yDW61DFGfEhltJ02zjYKX65bx1R..." . . 6
一次対応 シークレットの無効化、再発行 gitの歴史改変(commitをresetでなかったことにしてforce push) スナップショットテストの値はマスク replace(/^[A-Za-z0-9\+=/]{172}$|^[A-Za-z0-9]{50}$|^[A-Za-z0-9\-] {50}$|^[A-Za-z0-9]{45}$/, "[SEC REMOVED]") .
. "Environment": Object { "Variables": Object { "ENV_NAME": "prod", "LINE_CHANNEL_ACCESS_TOKEN": [SEC REMOVED] . . 7
再発防止策 環境変数にシークレットを埋め込まない CFnベストプラクティスにも記載が Secret Manager や System Manager のパラメータストアから都度取得 今回TwitterやLINEの課金が発生しないAPIシークレットだったが、AWSのアクセスキー
とかが漏れたら相当やばい IAM Role や IAM Policy 見直してちゃんと権限管理 CIにはアクセスキーを渡さずに OIDC で一時的なトークンを発行し認証 忘れた頃にやらかしそうなので、precommit で secret 検知 (まだやれてない…) 8
イメージ Before GitHub Actions CFn Template AWS Lambda クレデンシャル After
GitHub Actions CFn Template AWS Lambda AWS STS AWS System Manager 9
おわりに LINEとTwitter APIのシークレットをうっかりGitHubのPublicリポにpush そんな漏らし方があったのか…ということで共有 環境変数は万能ではない そもそも永続的なキーをなるべく避けよう 一次対応と再発防止策を共有 今回のケースを踏む人は少なそうだが、 何事もやらかした時の切り戻しだけは検討しておくこと 業務中ではなく趣味開発中の話、でも業務でも再現性ありそう
趣味開発だけども雑にやりすぎず締める所は締める レビュー通すとかベストプラクティスを守るとかはしておく 10