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
66
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
120
2025-08-05 Google Cloud Next Tokyo 2025 Cloud RunとCloud SQLの接続方式と事例
masasuzu
0
21
2025-06-20 PrivateLinkがNLBなしで作れるようになり便利になった
masasuzu
2
410
2025-01-31 吉祥寺.pm 37 初めての海外カンファレンス
masasuzu
0
540
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
1.5k
2024-03-29 SRETT9 Cloud SQLの可用性について
masasuzu
0
500
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.8k
Other Decks in Technology
See All in Technology
Function calling機能をPLaMo2に実装するには / PFN LLMセミナー
pfn
PRO
0
220
Pure Goで体験するWasmの未来
askua
1
150
Deep Research と NotebookLM を使い倒す!レガシーリプレイスの技術選定と学習コスト削減術
tet0h
0
2.7k
GopherCon Tour 概略
logica0419
2
140
そのグラフに「魂」は宿っているか? ~生成AI全盛期におけるデータ可視化手法とライブラリ比較~
negi111111
2
790
PLaMo2シリーズのvLLM実装 / PFN LLM セミナー
pfn
PRO
2
250
それでも私はContextに値を詰めたい | Go Conference 2025 / go conference 2025 fill context
budougumi0617
4
790
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
500
Findy Team+のSOC2取得までの道のり
rvirus0817
0
200
Oracle Cloud Infrastructure:2025年9月度サービス・アップデート
oracle4engineer
PRO
0
270
“2件同時配達”の開発舞台裏 〜出前館PMが挑んだダブルピック実現に向けた体験設計〜
demaecan
0
110
RailsのPostgreSQL 18対応
yahonda
0
1.1k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Documentation Writing (for coders)
carmenintech
75
5k
For a Future-Friendly Web
brad_frost
180
9.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Power of CSS Pseudo Elements
geoffreycrofte
78
6k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Side Projects
sachag
455
43k
Optimizing for Happiness
mojombo
379
70k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
840
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