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
2025-09-19 クラウドにおけるシークレット管理
Search
SUZUKI Masashi
September 19, 2025
Technology
0
100
2025-09-19 クラウドにおけるシークレット管理
スリーシェイク社内のエンジニア勉強会で発表した資料
クラウドにおいてプロダクション環境でのシークレットの扱い方についてアプリケーションおよびインフラ側でどう管理していくのが望ましいかを詳解
SUZUKI Masashi
September 19, 2025
Tweet
Share
More Decks by SUZUKI Masashi
See All by SUZUKI Masashi
2025-09-25 SRETT #13 ConftestによるTerraformのPolicy as Codeを試してみる
masasuzu
0
150
2025-08-05 Google Cloud Next Tokyo 2025 Cloud RunとCloud SQLの接続方式と事例
masasuzu
0
28
2025-06-20 PrivateLinkがNLBなしで作れるようになり便利になった
masasuzu
2
440
2025-01-31 吉祥寺.pm 37 初めての海外カンファレンス
masasuzu
0
540
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
1.6k
2024-03-29 SRETT9 Cloud SQLの可用性について
masasuzu
0
510
2023-12-18 SRETT8 Terraform使いがPulumiに入門する
masasuzu
0
2.5k
2023-12-01 吉祥寺.pm ベストプラクティスと組織とIaC
masasuzu
1
1.7k
SRETT#6_Terraformのtfstateについて考える
masasuzu
2
3.9k
Other Decks in Technology
See All in Technology
Kubernetes self-healing of your workload
hwchiu
0
300
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
難しいセキュリティ用語をわかりやすくしてみた
yuta3110
0
340
Node.js 2025: What's new and what's next
ruyadorno
0
700
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
1
180
Wasmの気になる最新情報
askua
0
170
CREが作る自己解決サイクルSlackワークフローに組み込んだAIによる社内ヘルプデスク改革 #cre_meetup
bengo4com
0
110
LLMプロダクトの信頼性を上げるには?LLM Observabilityによる、対話型音声AIアプリケーションの安定運用
ivry_presentationmaterials
0
710
AIとともに歩んでいくデザイナーの役割の変化
lycorptech_jp
PRO
0
680
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
2.1k
Biz職でもDifyでできる! 「触らないAIワークフロー」を実現する方法
igarashikana
3
1.2k
Copilot Studio ハンズオン - 生成オーケストレーションモード
tomoyasasakimskk
0
160
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Facilitating Awesome Meetings
lara
56
6.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
A designer walks into a library…
pauljervisheath
209
24k
BBQ
matthewcrist
89
9.8k
The Language of Interfaces
destraynor
162
25k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
4 Signs Your Business is Dying
shpigford
185
22k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Agile that works and the tools we love
rasmusluckow
331
21k
Building Adaptive Systems
keathley
44
2.8k
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