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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
SUZUKI Masashi
September 19, 2025
Technology
0
450
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
180
2025-11-08 Security JAWS TerraformによるIAM Policy記述ガイド
masasuzu
2
1k
2025-09-25 SRETT #13 ConftestによるTerraformのPolicy as Codeを試してみる
masasuzu
0
320
2025-08-05 Google Cloud Next Tokyo 2025 Cloud RunとCloud SQLの接続方式と事例
masasuzu
0
55
2025-06-20 PrivateLinkがNLBなしで作れるようになり便利になった
masasuzu
2
720
2025-01-31 吉祥寺.pm 37 初めての海外カンファレンス
masasuzu
0
780
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
2.1k
2024-03-29 SRETT9 Cloud SQLの可用性について
masasuzu
0
560
2023-12-18 SRETT8 Terraform使いがPulumiに入門する
masasuzu
0
2.6k
Other Decks in Technology
See All in Technology
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.3k
配列に見る bash と zsh の違い
kazzpapa3
1
130
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
200
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
230
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
今日から始めるAmazon Bedrock AgentCore
har1101
4
400
Greatest Disaster Hits in Web Performance
guaca
0
200
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
180
IaaS/SaaS管理における SREの実践 - SRE Kaigi 2026
bbqallstars
4
2k
Context Engineeringの取り組み
nutslove
0
330
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
160
プロポーザルに込める段取り八分
shoheimitani
1
210
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
4.9k
A designer walks into a library…
pauljervisheath
210
24k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
99
AI: The stuff that nobody shows you
jnunemaker
PRO
2
250
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Designing Powerful Visuals for Engaging Learning
tmiket
0
230
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Automating Front-end Workflow
addyosmani
1371
200k
Design in an AI World
tapps
0
140
Art, The Web, and Tiny UX
lynnandtonic
304
21k
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