LoginSignup
7
8

More than 5 years have passed since last update.

AWSのAPIGatewayを利用したアクセスキー隠蔽方法

Posted at

ヴァル研究所 Advent Calendar 2016、6日目です。

javascriptで駅すぱあとWebサービス(WebAPI)を使いたいんだけど、アクセスキーが見られちゃうのは勘弁〜な人のために、
AWSのAPIGatewayを利用したアクセスキー隠蔽方法をご紹介します。

※ほぼAPIGatewayの説明です。駅すぱあとWebサービスに限らず、他のWebAPIで同じ悩みに遭遇している方も是非読んでいただけるとうれしいです。

APIGateway とは

APIを簡単に作成したり配布したり、保守や監視が行えるサービスです。
詳しくは公式ページをご覧ください。

駅すぱあとWebサービス とは

皆さんご存知(?)「駅すぱあと」の機能をWebAPIとして提供しているサービスです。経路探索はもちろん、駅や時刻表などの情報を取得することが出来ます。無料で使えるフリープランがありますので気になった方は駅すぱあとWebサービスの紹介ページをご覧ください。

それでは作ってみよう

今回は駅情報の機能をラップするAPIを作ります。

APIの作成

APIGatewayのページにアクセスし、「APIの作成」をクリックします。

スクリーンショット 2016-12-03 14.18.20.png

API名と説明を入力して「APIの作成」をクリックします。

リソースの作成

「リソースの作成」をクリックしてください。
スクリーンショット 2016-12-03 14.27.07.png

スクリーンショット 2016-12-03 14.27.44.png
駅情報APIは、api.ekispert.jp/v1/{format}/stationというエンドポイントなので、stationというリソースを作成することにします。

メソッドの作成

次に、メソッドを作成します。
「メソッドの作成」をクリックします。
スクリーンショット 2016-12-03 14.28.11.png

スクリーンショット 2016-12-03 14.30.22.png
「統合タイプ」はHTTPを選択しましょう。
「エンドポイントURL」は、http://api.ekispert.jp/v1/json/station?key=xxxxxxxを入力します。jsonの部分はxmlでもかまいません。

スクリーンショット 2016-12-03 14.31.04.png

テスト

ここまで出来たら、テストを実行してみましょう。

「テスト」をクリックして、駅すぱあとWebサービスのレスポンスが返るか確認してみましょう。

スクリーンショット 2016-12-03 14.45.49.png

デプロイ

デプロイを行い、APIを使える状態にします。

「APIのデプロイ」をクリックします。
スクリーンショット 2016-12-03 16.55.33.png

スクリーンショット 2016-12-03 16.56.41.png

「デプロイ」をクリックすると、エンドポイントが生成されます。

スクリーンショット 2016-12-03 16.58.50.png

アクセスして、テスト通りの結果になっているか確認しましょう。

スクリーンショット 2016-12-03 16.57.40.png

これで、駅情報の機能をラップするAPIが完成しました!

まとめ

今回は駅すぱあとWebサービスの機能を例に、
APIGatewayのHTTPプロキシ機能を使って、アクセスキーを隠蔽する方法をご紹介しました。
キーを隠蔽する以外にも、様々な使い方があります。

  • 他のAPIと組み合わせることで、1つのエンドポイントで事が済ませられる
  • メソッドレスポンスのモデルをいじることでレスポンスを整形することが出来るので、アプリケーション側の実装内容に合わせて、コード量を少なくすることが可能
  • リクエスト時に付与するパラメータ名を変更することが可能なので、オレオレAPIを作る事が出来る

APIをさらに便利に使う事が出来ますね♩
それでは良いAPIライフを!

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8