Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
もう「クレデンシャルください」なんて言わせない
zaru
July 21, 2018
Technology
4
900
もう「クレデンシャルください」なんて言わせない
Rails で秘匿情報や環境変数を管理するベストな方法
2018.07.21 Osaka RubyKaigi 01 LT
@zaru
zaru
July 21, 2018
Tweet
Share
More Decks by zaru
See All by zaru
Hotwire を 本番環境で使ってみた感想
zaru_sakuraba
7
4.5k
失敗から学ぶ個人開発
zaru_sakuraba
18
4.9k
伝わらない Issue の書き方
zaru_sakuraba
0
260
とあるプロジェクトでコードを書き始めた僕がつまづいた石たち
zaru_sakuraba
0
72
Ruby との対話 : pry を使い pry をデバッグし pry のバグを直す話
zaru_sakuraba
3
330
個人プロジェクト現状報告会
zaru_sakuraba
0
51
僕と契約して、メソッドになってよ!
zaru_sakuraba
0
86
Other Decks in Technology
See All in Technology
CADDi HCMC Technology Center
caddi_eng
0
250
組織でPower Virtual Agentsを導入するために知っておきたいこと
miyakemito
0
1.6k
AWS CLI入門_20220513
suzakiyoshito
0
3.7k
長年運用されてきたモノリシックアプリケーションをコンテナ化しようとするとどんな問題に遭遇するか? / SRE NEXT 2022
nulabinc
PRO
15
7.3k
Oracle Database Technology Night #55 Oracle Autonomous Database 再入門
oracle4engineer
PRO
1
120
暗号資産ウォレット入門(MetaMaskの入門~NFTの購入~詐欺の注意事項など)
kayato
2
180
開発者のための GitHub Organization の安全な運用と 継続的なモニタリング
flatt_security
3
3.5k
#BabylonJS5 の祭ツイートまとめ Let's take a look at what people create with the latest #BabylonJS5
chomado
0
780
SRE_チーム立ち上げから1年_気づいたら_SRE_っぽくない仕事まで貢献しちゃってる説
bitkey
PRO
0
2k
1年間のポストモーテム運用とそこから生まれたツール sre-advisor / SRE NEXT 2022
fujiwara3
6
3k
srenext2022-skaru
mixi_engineers
0
430
1,000万人以上が利用する「家族アルバム みてね」のSRE組織は4年間でどのように作られてきたのか/SRE NEXT 2022
isaoshimizu
4
2.7k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
3
780
Teambox: Starting and Learning
jrom
121
7.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
Faster Mobile Websites
deanohume
294
28k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1M
How to name files
jennybc
39
58k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
A Tale of Four Properties
chriscoyier
149
20k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
49k
Code Review Best Practice
trishagee
41
6.7k
Transcript
もう「 クレデンシャルください」 なんて 言わせない 2018.07.21 Osaka RubyKaigi 01 LT @zaru
@zaru 株式会社ベー シック CTO
http://zaru.theshop.jp/
None
リモー ト OK https://basicinc.jp/enjoy-hacking
好きな Ruby メソッド Enumerable#cycle switch = %w(on off).cycle switch.next #=>
on switch.next #=> off switch.next #=> on
フォー ムオブジェクトと ActiveModel
フォー ムオブジェクトと ActiveModel
もう「 クレデンシャルください」 なんて 言わせない
みなさん、Rails で秘匿情報の管理どう してますか?
こんなことありませんか?
プロジェクトに新しく プログラマがジョインした
「.env ください」 「 アクセスキー ください」
None
つらみ その都度、 手で渡すのが面倒 もらう方も面倒くさい 秘匿情報の渡し方に神経を使う
こんなことありませんか?
開発をしていて 環境変数を追加した
「 デプロイ前に環境変数をサー バへ追加します」 「 デプロイ前に .env.production 修正します」 「Ansible でサー バへ環境変数を追加します」
None
つらみ デプロイフロー が煩雑 マー ジ以外に気を遣う部分がある デプロイ失敗チャレンジ感 手順をミスるとデプロイ失敗する
僕たちは秘匿情報や環境変数を どのように管理すれば良いのか
救世主?! Rails5.2 から Credentials 導入
Credentials とは 秘匿情報を1 つのファイルで管理するよ マスター キー で秘匿情報を暗号化・ 復号 config/master.key or
RAILS_MASTER_KEY Git で管理できるのでチー ムで共有しやすい
最高か?!
None
つらみ 暗号化すると構造を維持してないので中身がわからない コー ドレビュー がやりにくい マスター キー が必要 結局マスター キー
の管理をどうしようという悩みがある
解決
(AWS | GCP) KMS + yaml_vault
thanks @joker1007
何が嬉しいのか YAML の構造を保ったまま value だけ暗号化する コー ドレビュー がやりやすい デプロイ時にファイル展開ではなくメモリ展開できる サー
バに物理ファイルで秘匿情報を展開しなくて済む
マスター キー ではなく IAM で開発者毎のクレデンシャルを渡せば OK 開発者自身に管理してもらえる AWS EC2 にロー
ルを付与すればマスター キー なしに復号できる 煩わしいマスター キー を管理せずに済む
最高か?!
None
Heroku は? AWS API Key があればどこでも使えるので問題はない 問題はないが、Heroku アサインユー ザであれば Con
g vars 見れる のでキー が見えちゃう Enterprise なら細かいアクセス制限できる…? いい方法があれば教えてください
exit!