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
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
240
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
120
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
150
数百円から始めるRuby電子工作
tarosay
0
110
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
360
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
410
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
250
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
150
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.7k
Android CLI
fornewid
0
190
その節約、円になってますか?
isamumumu
0
420
AIが無かった頃の素敵な出会いの話
codmoninc
1
280
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
220
Fireside Chat
paigeccino
42
4k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
370
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The browser strikes back
jonoalderson
0
1.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
Google's AI Overviews - The New Search
badams
0
1.1k
Darren the Foodie - Storyboard
khoart
PRO
3
3.5k
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