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
130
STORES_決済端末2ってAndroidなんでしょ__ほんとうかな__.pdf
tomorrowkey
0
63
モバイルとRubyとわたし
tomorrowkey
0
69
BiDiってなんだ?
tomorrowkey
2
750
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
1.7k
Ebisu mobile #11 - Predictive Backに対応する
tomorrowkey
1
160
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
2
450
5分で完全理解するNav3との向き合い方
tomorrowkey
0
270
テストを楽に書きたい
tomorrowkey
2
440
Other Decks in Programming
See All in Programming
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
190
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
2
1.2k
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
410
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
2.7k
数百円から始めるRuby電子工作
tarosay
0
110
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.2k
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
250
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
190
yield再入門 #phpcon
o0h
PRO
0
820
テーブルをDELETEした
yuzneri
0
120
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
640
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Mobile First: as difficult as doing things right
swwweet
225
10k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
400
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
380
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4k
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