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