Your SlideShare is downloading. ×
へろくしーの挫折
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

へろくしーの挫折

2,068
views

Published on

Heroku-ja Meetup #1でのLT

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,068
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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: “yebihara@bou.com”, 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: “yebihara@bou.com”, 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-proxyhttps://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だったらなん でもホストできます。• いい名前を思い付いただけで、うまくいくとい うわけではないようです。