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
シークレットを漏らしてしまった話 / secret-key-exposed
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
pep299
June 24, 2022
Technology
0
67
シークレットを漏らしてしまった話 / secret-key-exposed
pep299
June 24, 2022
Tweet
Share
More Decks by pep299
See All by pep299
なるべく自動化頑張ったLINE BOT on AWS
pep299
0
88
Playwright for PythonではじめるE2Eテスト / Lets start e2e-test with playwright for python
pep299
0
1.1k
プレイングマネージャーの葛藤 / The Conflict of a Playing Manager
pep299
1
3.3k
will・canマトリクスで自己分析してみた / Self-analysis with will-can matrix
pep299
0
560
そうだ Firebase Remote Config、使おう / let use Firebase Remote Config
pep299
0
96
Other Decks in Technology
See All in Technology
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
220
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
260
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
Agile Leadership Summit Keynote 2026
m_seki
1
610
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
110
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.3k
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
140
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
140
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
580
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.4k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
Featured
See All Featured
Designing Experiences People Love
moore
144
24k
The Spectacular Lies of Maps
axbom
PRO
1
520
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
BBQ
matthewcrist
89
10k
The Curse of the Amulet
leimatthew05
1
8.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
HDC tutorial
michielstock
1
380
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
65
エンジニアに許された特別な時間の終わり
watany
106
230k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
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