Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
もう「 クレデンシャルください」 なんて 言わせない 2018.07.21 Osaka RubyKaigi 01 LT @zaru
Slide 2
Slide 2 text
@zaru 株式会社ベー シック CTO
Slide 3
Slide 3 text
http://zaru.theshop.jp/
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
リモー ト OK https://basicinc.jp/enjoy-hacking
Slide 6
Slide 6 text
好きな Ruby メソッド Enumerable#cycle switch = %w(on off).cycle switch.next #=> on switch.next #=> off switch.next #=> on
Slide 7
Slide 7 text
フォー ムオブジェクトと ActiveModel
Slide 8
Slide 8 text
フォー ムオブジェクトと ActiveModel
Slide 9
Slide 9 text
もう「 クレデンシャルください」 なんて 言わせない
Slide 10
Slide 10 text
みなさん、Rails で秘匿情報の管理どう してますか?
Slide 11
Slide 11 text
こんなことありませんか?
Slide 12
Slide 12 text
プロジェクトに新しく プログラマがジョインした
Slide 13
Slide 13 text
「.env ください」 「 アクセスキー ください」
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
つらみ その都度、 手で渡すのが面倒 もらう方も面倒くさい 秘匿情報の渡し方に神経を使う
Slide 16
Slide 16 text
こんなことありませんか?
Slide 17
Slide 17 text
開発をしていて 環境変数を追加した
Slide 18
Slide 18 text
「 デプロイ前に環境変数をサー バへ追加します」 「 デプロイ前に .env.production 修正します」 「Ansible でサー バへ環境変数を追加します」
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
つらみ デプロイフロー が煩雑 マー ジ以外に気を遣う部分がある デプロイ失敗チャレンジ感 手順をミスるとデプロイ失敗する
Slide 21
Slide 21 text
僕たちは秘匿情報や環境変数を どのように管理すれば良いのか
Slide 22
Slide 22 text
救世主?! Rails5.2 から Credentials 導入
Slide 23
Slide 23 text
Credentials とは 秘匿情報を1 つのファイルで管理するよ マスター キー で秘匿情報を暗号化・ 復号 config/master.key or RAILS_MASTER_KEY Git で管理できるのでチー ムで共有しやすい
Slide 24
Slide 24 text
最高か?!
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
つらみ 暗号化すると構造を維持してないので中身がわからない コー ドレビュー がやりにくい マスター キー が必要 結局マスター キー の管理をどうしようという悩みがある
Slide 27
Slide 27 text
解決
Slide 28
Slide 28 text
(AWS | GCP) KMS + yaml_vault
Slide 29
Slide 29 text
thanks @joker1007
Slide 30
Slide 30 text
何が嬉しいのか YAML の構造を保ったまま value だけ暗号化する コー ドレビュー がやりやすい デプロイ時にファイル展開ではなくメモリ展開できる サー バに物理ファイルで秘匿情報を展開しなくて済む
Slide 31
Slide 31 text
マスター キー ではなく IAM で開発者毎のクレデンシャルを渡せば OK 開発者自身に管理してもらえる AWS EC2 にロー ルを付与すればマスター キー なしに復号できる 煩わしいマスター キー を管理せずに済む
Slide 32
Slide 32 text
最高か?!
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
Heroku は? AWS API Key があればどこでも使えるので問題はない 問題はないが、Heroku アサインユー ザであれば Con g vars 見れる のでキー が見えちゃう Enterprise なら細かいアクセス制限できる…? いい方法があれば教えてください
Slide 35
Slide 35 text
exit!