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
550
2025-09-19 クラウドにおけるシークレット管理
スリーシェイク社内のエンジニア勉強会で発表した資料
クラウドにおいてプロダクション環境でのシークレットの扱い方についてアプリケーションおよびインフラ側でどう管理していくのが望ましいかを詳解
SUZUKI Masashi
September 19, 2025
Tweet
Share
More Decks by SUZUKI Masashi
See All by SUZUKI Masashi
2026-03-03 Jagu'e'r Tech Writer Meetup #19 登壇のネタ作りについて
masasuzu
0
41
2026-02-24 月末 Tech Lunch Online #10 Cloud Runのデプロイの課題から考えるアプリとインフラの境界線
masasuzu
0
110
2025-11-21 社内エンジニア勉強会 改めて理解するVPC Endpoint
masasuzu
0
240
2025-11-08 Security JAWS TerraformによるIAM Policy記述ガイド
masasuzu
2
1.1k
2025-09-25 SRETT #13 ConftestによるTerraformのPolicy as Codeを試してみる
masasuzu
0
380
2025-08-05 Google Cloud Next Tokyo 2025 Cloud RunとCloud SQLの接続方式と事例
masasuzu
0
62
2025-06-20 PrivateLinkがNLBなしで作れるようになり便利になった
masasuzu
2
810
2025-01-31 吉祥寺.pm 37 初めての海外カンファレンス
masasuzu
0
820
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
2.2k
Other Decks in Technology
See All in Technology
クラウド時代における一時権限取得
krrrr38
1
160
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
7
2.1k
Master Dataグループ紹介資料
sansan33
PRO
1
4.4k
Serverless Agent Architecture on Azure / serverless-agent-on-azure
miyake
1
150
プロジェクトマネジメントをチームに宿す -ゼロからはじめるチームプロジェクトマネジメントは活動1年未満のチームの教科書です- / 20260304 Shigeki Morizane
shift_evolve
PRO
1
110
バクラクのSREにおけるAgentic AIへの挑戦/Our Journey with Agentic AI
taddy_919
2
1k
Introduction to Bill One Development Engineer
sansan33
PRO
0
380
LLM活用の壁を超える:リクルートR&Dの戦略と打ち手
recruitengineers
PRO
1
240
越境する組織づくり ─ 多様性を前提にしたチームビルディングとリードの実践知
kido_engineer
1
100
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
150
Lookerの最新バージョンv26.2がやばい話
waiwai2111
1
150
Data Hubグループ 紹介資料
sansan33
PRO
0
2.8k
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
310
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
99
Building an army of robots
kneath
306
46k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
490
WENDY [Excerpt]
tessaabrams
9
36k
Designing Experiences People Love
moore
143
24k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Amusing Abliteration
ianozsvald
0
120
Crafting Experiences
bethany
1
75
エンジニアに許された特別な時間の終わり
watany
106
240k
Docker and Python
trallard
47
3.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
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