Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2025-09-19 クラウドにおけるシークレット管理
Search
SUZUKI Masashi
September 19, 2025
Technology
0
200
2025-09-19 クラウドにおけるシークレット管理
スリーシェイク社内のエンジニア勉強会で発表した資料
クラウドにおいてプロダクション環境でのシークレットの扱い方についてアプリケーションおよびインフラ側でどう管理していくのが望ましいかを詳解
SUZUKI Masashi
September 19, 2025
Tweet
Share
More Decks by SUZUKI Masashi
See All by SUZUKI Masashi
2025-11-21 社内エンジニア勉強会 改めて理解するVPC Endpoint
masasuzu
0
32
2025-11-08 Security JAWS TerraformによるIAM Policy記述ガイド
masasuzu
2
750
2025-09-25 SRETT #13 ConftestによるTerraformのPolicy as Codeを試してみる
masasuzu
0
180
2025-08-05 Google Cloud Next Tokyo 2025 Cloud RunとCloud SQLの接続方式と事例
masasuzu
0
37
2025-06-20 PrivateLinkがNLBなしで作れるようになり便利になった
masasuzu
2
520
2025-01-31 吉祥寺.pm 37 初めての海外カンファレンス
masasuzu
0
630
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
1.8k
2024-03-29 SRETT9 Cloud SQLの可用性について
masasuzu
0
530
2023-12-18 SRETT8 Terraform使いがPulumiに入門する
masasuzu
0
2.5k
Other Decks in Technology
See All in Technology
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
2
1.4k
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
9
6.2k
あなたの知らないDateのひみつ / The Secret of "Date" You Haven't known #tqrk16
expajp
0
110
M5UnifiedとPicoRubyで楽しむM5シリーズ
kishima
0
110
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
16
9.4k
20251127 BigQueryリモート関数で作る、お手軽AIバッチ実行環境
daimatz
0
430
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
48k
Introduction to Bill One Development Engineer
sansan33
PRO
0
330
著者と読み解くAIエージェント現場導入の勘所 Lancers TechBook#2
smiyawaki0820
9
3k
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
0
120
知っていると得する!Movable Type 9 の新機能を徹底解説
masakah
0
210
Active Directory 勉強会 第 6 回目 Active Directory セキュリティについて学ぶ回
eurekaberry
16
6k
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Documentation Writing (for coders)
carmenintech
76
5.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Scaling GitHub
holman
464
140k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Transcript
クラウドにおけるシークレット管理 Copyright © 3-shake, Inc. All Rights Reserved. 2025-09-19 スリーシェイクエンジニア勉強会
(社内) すずきまさし
Copyright © 3-shake, Inc. All Rights Reserved. おまえだれよ 2 •
すずきまさし/masasuzu/@masasuz • 株式会社スリーシェイクSreake事業部所属 • クラウドインフラなんでも屋さんをしてます ◦ お客様の外部から ▪ 設計、運用、構築等の技術支援を行います。 ◦ お客様の内部から ▪ インフラチームの一員として内製化支援も行います。 • 得意領域 ◦ AWS ▪ AWS Community Builder Cloud Operation Since 2024 ▪ 2025 Japan All AWS Certifications Engineers ◦ Google Cloud ◦ Terraform
• はじめに • アプリケーション側の視点 • インフラ側の視点 • まとめ Copyright ©
3-shake, Inc. All Rights Reserved. 目次 3
Copyright © 3-shake, Inc. All Rights Reserved. はじめに 01 4
ここで言うシークレットとはDBのパスワードやAPIキーなどの秘匿すべき情報のことを指 します。 AWSやGoogle Cloudなどでインフラやアプリケーションでシークレットをどう扱えばよい かをお話したいです。 Copyright © 3-shake, Inc. All
Rights Reserved. はじめに 5
Copyright © 3-shake, Inc. All Rights Reserved. アプリケーション側の視点 02 6
アプリケーション側の実装で避けるべきアンチパターンを載せます • ソースコードに直接記述 • 設定ファイルに平文で記述 • 環境変数に平文で記述 • base64エンコード Copyright
© 3-shake, Inc. All Rights Reserved. シークレット管理のアンチパターン 7
ソースコードや設定ファイルに平文でシークレットを保存するとgit操作などのミスで漏洩 の可能性があります。 暗号化鍵を使用しないBase64などのエンコード処理も形式さえ別れば簡単にデコード できてしまうので、平文保存と変わりません。 シークレットを平文でレポジトリに保存するのは避けるべきです。 Copyright © 3-shake, Inc. All
Rights Reserved. 平文保存ゼッタイダメ 8
平文がだめならKMSキーで暗号化すればよいのでは? 以下のようなフローが取れると思います。 1. アプリケーション起動時に KMSのから鍵を取得 2. 取得した鍵を利用して暗号化されたシークレットを復号 3. 平文のシークレット情報をアプリで利用する Copyright
© 3-shake, Inc. All Rights Reserved. KMSによる暗号化の検討 9
シークレットの復号化はアプリケーションの責務なのか? インフラ側に移譲できないか? Copyright © 3-shake, Inc. All Rights Reserved. 一見良い気がするが?
10
シークレットの復号およびシークレットの管理自体をシークレットストアに任せてアプリ ケーション側はそれを利用するのが望ましい • AWS ◦ Parameter Store (SecureString) ◦ Secrets
Manager • Google Cloud ◦ Secret Manager Copyright © 3-shake, Inc. All Rights Reserved. シークレットストアの利用 11
Copyright © 3-shake, Inc. All Rights Reserved. インフラ側の視点 03 12
クラウドリソースの管理をどうするかの検討 • 手動でコンソールから設定 • シークレットの値を平文で IaC管理(tfvarsファイルを git管理から外す ) • シークレットの値を暗号化して
IaCで管理 • シークレットストアを IaCで管理、値は手動設定 Copyright © 3-shake, Inc. All Rights Reserved. シークレットストアの管理 13
シークレットが少ないときはこれはこれであり。 • ただし、シークレットが増えてきたときに ◦ 煩雑 ◦ 設定ミスの可能性増大 Copyright © 3-shake,
Inc. All Rights Reserved. 手動で設定 14
シークレットの値だけ、gitignoreしたtfvarsで管理する。 • ミスでコミットされてしまう懸念 Copyright © 3-shake, Inc. All Rights Reserved.
シークレットの値を平文でIaC管理 15
sops providerを使うことでKMSを用いてシームレスに復号できます。 ただし、以下の懸念があります。 • KMSキーの管理が別途必要 • TerraformのStateファイルには平文で保存される Copyright © 3-shake,
Inc. All Rights Reserved. シークレットの値を暗号化してIaC管理 16
シークレットリソースは管理しつつ、実際の値は手動で管理します。 シークレットの値はignore_changeにすることにより差分を発生させないようにします。 • 値が管理されないので漏洩の心配がない • 一番バランスが取れいている Copyright © 3-shake, Inc.
All Rights Reserved. シークレットストアのリソースはIaC管理、値は手動管理 17
Copyright © 3-shake, Inc. All Rights Reserved. まとめ 04 18
現時点で私が考える望ましい方法としては以下のとおりです。 • アプリケーション ◦ クラウドのシークレットストア (Secrets Managerなど)と実行環境(ECS, Cloud Runなど)の統合機能 を使い、環境変数またはファイルとしてシークレットを読み込む。
• インフラ ◦ クラウドのシークレットストアのリソース自体は Terraformで管理する。 ◦ 実際のシークレットの値は ignore_changes を活用して手動で設定し、 Gitの管理から分離する。 もちろん要件によって取りうる手段は変わるとは思います。他になにか良い方法をご存知でしたら教えて下さ い。 それでは良いシークレットライフを ! Copyright © 3-shake, Inc. All Rights Reserved. まとめ 19