Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
これから始める秘匿情報との使い方
Search
Tomoki Yamashita
February 17, 2023
Programming
790
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
160
STORES_決済端末2ってAndroidなんでしょ__ほんとうかな__.pdf
tomorrowkey
0
83
モバイルとRubyとわたし
tomorrowkey
0
89
BiDiってなんだ?
tomorrowkey
2
820
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
2.1k
Ebisu mobile #11 - Predictive Backに対応する
tomorrowkey
1
180
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
2
460
5分で完全理解するNav3との向き合い方
tomorrowkey
0
330
テストを楽に書きたい
tomorrowkey
2
460
Other Decks in Programming
See All in Programming
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
200
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
350
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
180
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.4k
SODA - FACT BOOK(EN)
sodainc
1
200
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
280
Railsバージョンを4倍にした話
optim
0
920
Next.js: The final boss of Web Performance
guaca
0
380
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
380
AmebaブログはKMPから卒業します
kmars0605
0
320
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.6k
Designing Experiences People Love
moore
143
24k
Building AI with AI
inesmontani
PRO
1
1.4k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
870
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
320
Deep Space Network (abreviated)
tonyrice
0
410
Making the Leap to Tech Lead
cromwellryan
135
10k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
300
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
450
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