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
これから始める秘匿情報との使い方
Search
Tomoki Yamashita
February 17, 2023
Programming
770
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
これから始める秘匿情報との使い方
Tomoki Yamashita
February 17, 2023
More Decks by Tomoki Yamashita
See All by Tomoki Yamashita
ハードウェア連携が必要なプロダクトにおける自動テストの書き方
tomorrowkey
0
120
STORES_決済端末2ってAndroidなんでしょ__ほんとうかな__.pdf
tomorrowkey
0
62
モバイルとRubyとわたし
tomorrowkey
0
66
BiDiってなんだ?
tomorrowkey
2
750
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
1.7k
Ebisu mobile #11 - Predictive Backに対応する
tomorrowkey
1
160
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
2
440
5分で完全理解するNav3との向き合い方
tomorrowkey
0
260
テストを楽に書きたい
tomorrowkey
2
430
Other Decks in Programming
See All in Programming
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
430
技術的負債解消で開発者の未来を開く- AIの力でコード刷新
kmd2kmd
0
140
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
280
dRuby over BLE
makicamel
2
400
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
210
Contextとはなにか
chiroruxx
1
390
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
960
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
460
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
460
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
220
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
107
250k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
340
Making Projects Easy
brettharned
120
6.7k
Code Reviewing Like a Champion
maltzj
528
40k
A designer walks into a library…
pauljervisheath
211
24k
For a Future-Friendly Web
brad_frost
183
10k
How to build a perfect <img>
jonoalderson
1
5.8k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
Raft: Consensus for Rubyists
vanstee
141
7.6k
Transcript
これから始める 秘匿情報との付き合い方 - 2023.02.17 shibuya.apk #40 @tomorrowkey
山下智樹 / STORES 株式会社 ex- おいしい健康 ex- クックパッド Android 13
年生 @tomorrowkey
なんでいま秘匿情報? Circle CI の インシデント対応 おつかれさまでした
STORES でなにやってるの? お商売をしているオーナーさんごとにオリジナルアプリを 作り、お客様へのクーポンの配布やお店からのご案内をと おして、双方にとってよい関係性を築いていくためのサー ビスです。
プロダクトの性質 ビジネスロジックとして サービスの成長 に伴い アプリ数が増える ということ
モバイルの秘匿情報って そこそこあるよね Firebase 認証情報 API サーバへOAuth クレデンシャル id, secret Google
Play Publisher の認証情報 Android アプリアップロード鍵の情報 password, alias, key password その他プロダクト固有の秘匿情報
例えば、 1 アプリに対して秘匿情報が 8 個 8 オーナー に対してアプリを提供 64 個の秘匿情報
None
🤮
自分たちで秘匿情報を 管理しましょう joker1007/yaml_vault
yaml_vault ってなに? YAML を暗号化して秘匿情報のストレージとして 使うことができるライブラリ(Ruby gem) 暗号化のキーはパスフレーズの他にGCM/AWS KMS も使うことができる
アプリ開発への組み込み
秘匿情報の編集 lane :"edit-secrets" do editor = ENV["EDITOR"] || "vi" Tempfile.create(["",
".yml"]) do |file| # 複合して一時ファイルに書き出し sh( "yaml_vault decrypt #{project_root_path}/secrets.yml -o #{file.path}", log: false ) # エディタで開く system("#{editor} \"#{file.path}\"") # 編集した秘匿情報を暗号化 sh( "yaml_vault encrypt #{file.path} -o #{project_root_path}/secrets.yml", log: false ) end end
編集している様子
0:00 / 0:19 秘匿情報の使用 def yaml_vault @yaml_vault ||= YamlVault::Main.from_file( "#{project_root_path}/secrets.yml",
[['$']], passphrase: ENV['YAML_VAULT_PASSPHRASE'], ).decrypt_hash end irb(#<Fastlane::FastFile:0x000000011469dcb8>):001:0> yaml_vault => {"keystore"=> {"file"=> "MIIKzwIBAzCCCogGCSqGSIb3DQEHAaCCCnkEggp1MIIKcTCCBbgGCSqGSIb3DQEHAaCCBakEggWlMIIFo "store_password"=>"M1zEE541QpOBvIVZkM", "key_alias"=>"tomorrowkey", "key_password"=>"M1zEE541QpOBvIVZkM"}}
それから CI はどうなった
さいごに 秘匿情報はとても大切なので、大切に使おう ちょっとした工夫で、より安全に扱うことがで きる みなさんのプロダクトでどのように秘匿情報を 扱っているか、このあとの時間に教えてくださ い〜〜〜〜 Sample code: tomorrowkey/AppWithYamlVault
None