SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
「へろくしー」の挫折


        Heroku-ja Meetup #1
              2011年7月7日
  @yebihara | 海老原 雄一郎
@yebiharaについて
• キャリア
  定職に就かず職を転々
  日本オラクル
  → ソニー
  → IPLocks
  → Preferred Infrastructure (Railsでサービスをいくつか開発)
  → SaaS/PaaS系の某ドットコム企業 (Heroku勉強中)

• 好きなもの
 – 巨人
 – ビール
 – SQL
    • 「NoSQL入門」
    http://www.slideshare.net/pfi/introductiontoonlysql
最近困ったこと
• 某SaaSアプリケーションの標準APIから取得できるユー
  ザー情報には、プライバシー情報が含まれる。
• 企業内ユースがメインなので通常は問題ないが、今
  回だけは隠したかった。

                                                            User
                                                      *id



                                   !                  *email




                                             標準 API
                                                      *name
           {                                           title
               id: 90053,                              address
               email: “yebihara@bou.com”,              phoneNumber
  モバイル端末       name: “海老原 雄一郎”,                        ...
               title: “データベーススペシャリスト”,
               address: “東京都品川区・・・”,
               phoneNumber: “090xxxxxxxx”,
               ...
           }
                                             某SaaSアプリケーション
最初の解決案
• カスタム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アプリケーション
          }
リバースプロクシー案
• 某SaaSアプリケーションは、アクセス可能なソースIPア
  ドレス範囲を制限する機能を持っている。
• 前段にリバースプロクシーを置いて、標準APIへのアク
  セスをブロックすればいい!




                                カスタムAPI
                                                User




                Reverse Proxy
                                          *id
                                          *email
                                          *name
  モバイル端末                                   title
                                           address




                                標準API
                                           phoneNumber
                                           ...

   攻撃者




                                某SaaSアプリケーション
どうやって実装しようか
• PaaS屋さんにとって大切なこと。
• サーバーの構築や運用などしたくない!
 – たとえAmazon EC2だとしてもイヤ
 – アプリケーションサーバーより上のレイヤーしか
   見たくない


• Herokuでリバースプロクシーを作ろう!
Herokuについておさらい
(誤)HerokuはRuby on RailsのためのPaaSである。

(正)HerokuはRackアプリケーションのための
   PaaSである。

  つまり、リバースプロクシーをRackアプリ
  ケーションとして構築すれば、Herokuの上で
  動かせる!
最初にしたこと
まずは名前決め
 よい名前があれば中身は後からついてくる!

Herokuで動くリバースプロクシー

「へろくしー」 !!
次にしたこと
開発。

・・・ではなく、Gemを探す。

首尾よく見つかる!
rack-reverse-proxy
https://github.com/jaswope/rack-reverse-proxy

プロトタイプの構築はあっさり完了!
・・・というか、へろくしーオリジナルな部分はほとん
どなし。
最後にしたこと
後は某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!
終了
まとめ
• HerokuはRailsじゃなくても、Rackだったらなん
  でもホストできます。

• いい名前を思い付いただけで、うまくいくとい
  うわけではないようです。

Mais conteúdo relacionado

Semelhante a へろくしーの挫折

JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE 陽平 山口
 
Getting started with Handoff
Getting started with HandoffGetting started with Handoff
Getting started with HandoffYuichi Yoshida
 
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API GatewayAWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API GatewayAmazon Web Services Japan
 
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜SORACOM,INC
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリMasaki Oshikawa
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Kazumi IWANAGA
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...Naoya Ito
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019昌桓 李
 
AWS as MBaaS 〜APIキーとかの話〜
AWS as MBaaS 〜APIキーとかの話〜AWS as MBaaS 〜APIキーとかの話〜
AWS as MBaaS 〜APIキーとかの話〜Yuki Hirai
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すTomoki Hasegawa
 
Android開発者向けempress暗号化資料
Android開発者向けempress暗号化資料Android開発者向けempress暗号化資料
Android開発者向けempress暗号化資料ITDORAKU
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成Tomoki Oyamatsu
 
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリWordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリアシアル株式会社
 
ApplicationTemplateのススメ
ApplicationTemplateのススメApplicationTemplateのススメ
ApplicationTemplateのススメTakafumi ONAKA
 
Transfer for sftp 20181212
Transfer for sftp 20181212Transfer for sftp 20181212
Transfer for sftp 20181212Noguchi Takaaki
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for SmalltalkSho Yoshida
 
API通信周りの継続的なテストの仕組み~SideCIでの実践~
API通信周りの継続的なテストの仕組み~SideCIでの実践~API通信周りの継続的なテストの仕組み~SideCIでの実践~
API通信周りの継続的なテストの仕組み~SideCIでの実践~Koichiro Sumi
 

Semelhante a へろくしーの挫折 (18)

JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE
 
Getting started with Handoff
Getting started with HandoffGetting started with Handoff
Getting started with Handoff
 
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API GatewayAWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
 
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリ
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019
 
AWS as MBaaS 〜APIキーとかの話〜
AWS as MBaaS 〜APIキーとかの話〜AWS as MBaaS 〜APIキーとかの話〜
AWS as MBaaS 〜APIキーとかの話〜
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
 
Android開発者向けempress暗号化資料
Android開発者向けempress暗号化資料Android開発者向けempress暗号化資料
Android開発者向けempress暗号化資料
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
 
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリWordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリ
 
ApplicationTemplateのススメ
ApplicationTemplateのススメApplicationTemplateのススメ
ApplicationTemplateのススメ
 
Transfer for sftp 20181212
Transfer for sftp 20181212Transfer for sftp 20181212
Transfer for sftp 20181212
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for Smalltalk
 
API通信周りの継続的なテストの仕組み~SideCIでの実践~
API通信周りの継続的なテストの仕組み~SideCIでの実践~API通信周りの継続的なテストの仕組み~SideCIでの実践~
API通信周りの継続的なテストの仕組み~SideCIでの実践~
 
Connect with Data API
Connect with Data APIConnect with Data API
Connect with Data API
 

へろくしーの挫折