へろくしーの挫折

2,600 views

Published on

Heroku-ja Meetup #1でのLT

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
2,600
On SlideShare
0
From Embeds
0
Number of Embeds
139
Actions
Shares
0
Downloads
7
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

へろくしーの挫折

  1. 1. 「へろくしー」の挫折 Heroku-ja Meetup #1 2011年7月7日 @yebihara | 海老原 雄一郎
  2. 2. @yebiharaについて• キャリア 定職に就かず職を転々 日本オラクル → ソニー → IPLocks → Preferred Infrastructure (Railsでサービスをいくつか開発) → SaaS/PaaS系の某ドットコム企業 (Heroku勉強中)• 好きなもの – 巨人 – ビール – SQL • 「NoSQL入門」 http://www.slideshare.net/pfi/introductiontoonlysql
  3. 3. 最近困ったこと• 某SaaSアプリケーションの標準APIから取得できるユー ザー情報には、プライバシー情報が含まれる。• 企業内ユースがメインなので通常は問題ないが、今 回だけは隠したかった。 User *id ! *email 標準 API *name { title id: 90053, address email: “yebihara@bou.com”, phoneNumber モバイル端末 name: “海老原 雄一郎”, ... title: “データベーススペシャリスト”, address: “東京都品川区・・・”, phoneNumber: “090xxxxxxxx”, ... } 某SaaSアプリケーション
  4. 4. 最初の解決案• カスタムAPIを作る。• けど、標準APIがそのままだと意味ない。 カスタムAPI User { *id id: 90053, name: “海老原 雄一郎”, *email title: “データベーススペシャリスト”, *name モバイル端末 } title ! address 標準API phoneNumber { ... id: 90053, 攻撃者 email: “yebihara@bou.com”, name: “海老原 雄一郎”, title: “データベーススペシャリスト”, address: “東京都品川区・・・”, phoneNumber: “090xxxxxxxx”, ... 某SaaSアプリケーション }
  5. 5. リバースプロクシー案• 某SaaSアプリケーションは、アクセス可能なソースIPア ドレス範囲を制限する機能を持っている。• 前段にリバースプロクシーを置いて、標準APIへのアク セスをブロックすればいい! カスタムAPI User Reverse Proxy *id *email *name モバイル端末 title address 標準API phoneNumber ... 攻撃者 某SaaSアプリケーション
  6. 6. どうやって実装しようか• PaaS屋さんにとって大切なこと。• サーバーの構築や運用などしたくない! – たとえAmazon EC2だとしてもイヤ – アプリケーションサーバーより上のレイヤーしか 見たくない• Herokuでリバースプロクシーを作ろう!
  7. 7. Herokuについておさらい(誤)HerokuはRuby on RailsのためのPaaSである。(正)HerokuはRackアプリケーションのための PaaSである。 つまり、リバースプロクシーをRackアプリ ケーションとして構築すれば、Herokuの上で 動かせる!
  8. 8. 最初にしたことまずは名前決め よい名前があれば中身は後からついてくる!Herokuで動くリバースプロクシー「へろくしー」 !!
  9. 9. 次にしたこと開発。・・・ではなく、Gemを探す。首尾よく見つかる!rack-reverse-proxyhttps://github.com/jaswope/rack-reverse-proxyプロトタイプの構築はあっさり完了!・・・というか、へろくしーオリジナルな部分はほとんどなし。
  10. 10. 最後にしたこと後は某SaaSアプリケーションにへろくしー経由でしかアクセスできないようIPアドレスを登録するだけ!へろくしーのIPアドレスを調べるか!おや? 再起動するたびにIPアドレスが変わるぞ・・・Heroku FAQ: Does my app have a static IP? http://devcenter.heroku.com/articles/does-my-app-have-a-static-ip私のアプリは静的IPアドレスを持てますか? No!
  11. 11. 終了
  12. 12. まとめ• HerokuはRailsじゃなくても、Rackだったらなん でもホストできます。• いい名前を思い付いただけで、うまくいくとい うわけではないようです。

×