最近商品仕入れの自動化に向けて、SP-APIのマニュアルを読んでいます。
経緯については以下の記事をご覧ください。
【関連記事】商品リサーチ自動化に向けた調査 SP-APIとは何かをドキュメントから読み解く
【関連記事】Login with Amazon(LWA)とは SP-APIとLWAの関係について解説
SP-APIを利用するためには、AWSでの準備が必要であることがわかりました。
実際に準備作業を行ってみたので、具体的な手順について紹介させていただきます。
まずはマニュアルの内容を確認
ではマニュアルを読んで何をすべきか確認します。
マニュアルの入手と開き方については「商品リサーチ自動化に向けた調査 SP-APIとは何かをドキュメントから読み解く」の記事で記載しています。
対象は「guides>developer-guide」の中にある「SellingPartnerApiDeveloperGuide(日本語).md」というファイルです。
出品パートナーAPIアプリケーションの登録というを読むと、以下の作業が必要なようです。
ステップ1.AWSアカウントを作成する
SellingPartnerApiDeveloperGuide(日本語).md
ステップ2.IAMユーザーを作成する
ステップ3.IAMポリシーを作成する
ステップ4.IAMロールを作成する
ステップ5.IAMユーザーにAWSセキュリティトークンサービスポリシーを追加する
ステップ6.アプリケーションを登録する
順番に作業していきましょう。
AWS環境の準備
AWSについて簡単に説明します。
AWSとは、Amazonが運営している日本最大手のクラウドサービスです。
自前でサーバーやネットワーク機器をそろえなくても、数クリックで簡単にシステムを構築できてしまうという素晴らしいサービスです。
最近私の職場のシステムは大部分がクラウド(AWSではありませんが)に移行しています。
料金は使った分だけなので、「ちょっと試してみる」といったことが簡単に出来てしまいます。
自前で機器を用意する場合はそうはいきませんよね。
ちなみに今回の準備作業で行う内容は、特に料金がかかるようなものはありません。
ステップ1.AWSアカウントを作成する
私の場合はすでにAWSアカウントは持っているので、ステップ1は飛ばします。
AWSアカウントを持っていない場合は、是非作成してみてください。
1年間の無償枠があるので、大部分のサービスを試すことができます。
そのうちAWSアカウントの作成方法も解説しようと思います。
ステップ2.IAMユーザーを作成する
マネジメントコンソールから、IAMの管理画面を開いてIAMユーザーを作っていきます。
IAMユーザーとは、AWS環境を利用するのに必要なユーザーIDのことです。
個別に権限を割り当てたり、後述する「ロール」という権限の集合体を割り当てて使います。
とりあえずユーザー名は「spapi」としました。
マニュアルの指示通り、「プログラムによるアクセス」にチェックを入れます。
アクセス許可については後ほどIAMロールを作成するときに設定するので、デフォルトのまま何も設定しません。
お試しなのでタグも特に付けません。
ちなみにタグとは、AWS内のリソース(IAMユーザーなど)につける目印のことです。
リソースを整理整頓したり、一括操作するのに使用します。
確認画面でユーザーに権限がないと警告がでますが、問題ありません。
IAMユーザーを作成すると、アクセスキーIDとシークレットアクセスキーの確認ページが表示されます。
必ずメモするかCSVファイルをダウンロードしておいてください。
このページを閉じると二度と入手できなくなります。
その場合はアクセスキーを再作成しなければなりません。
アクセスキーIDとシークレットアクセスキーはプログラムからAWS環境を操作するのに使用します。
流出すると好き勝手いじられてしまうので、厳重に保管してください。
ステップ3.IAMポリシーを作成する
次にIAMポリシーを作成します。
IAMポリシーとは、IAMユーザーやIAMロールに割り当てて使用する権限の集合体です。
IAMポリシーを定義しておけば、同じポリシーを複数のIAMユーザーに割り当てて使うことができるので、管理が簡単になります。
マニュアルにある通り、権限はJSONを直接編集します。
マニュアルに記載の内容をコピペします。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:*:*:*"
}
]
}
タグは付けないのでスキップします。
IAMポリシー名は「Selling Partner API」を推奨とありますが、スペースが使えないのでアンダースコアで置き換えて「Selling_Partner_API」とします。
これでIAMポリシーの作成は完了です。
ステップ4.IAMロールを作成する
次にIAMロールを作成します。
IAMロールとは、IAMユーザーではなくAWSのリソースに権限を割り当てるために使うものです。
例えばサーバーにデータベースへのアクセス権限をつけるのに使ったりします。
また、IAMロールはクロスアカウントアクセスにも使います。
「複数のAWSアカウントが存在する場合に、それぞれの環境にIAMユーザーを作らなくても済む機能」くらいに思っておいてください。
IAMは奥が深いので今後別記事で解説できればと思います。
マニュアルに解説がありませんが、今回はおそらくこのクロスアカウントアクセス目的でIAMロールを作るようです。
ロール作成画面にて、信頼されたエンティティの種類として「別のAWSアカウント」を選択するとのことです。
ここで思ったんですが、最初のIAMユーザーって別AWSアカウントで作る前提だったんじゃ・・・。
マニュアルは手順しか書いてないので、目的がイマイチわかりません。
とりあえずマニュアル通り進めます。
アカウントIDには、自身のAWSカウントに割り振られた数字12桁のIDを入力します。
※マネジメントコンソール右上のユーザー名をクリックすれば確認可能です。
次のページで、先ほど作成したIAMポリシーをアタッチします。
フィルタに「selling」のように作成したIAMポリシー名を入力すると見つけやすいです。
対象のIAMポリシーにチェックをいれて次のステップに進みます。
タグは使わないのでスキップします。
ロール名は適当に「Selling_Partner_API_Role」として、「ロールの作成」ボタンを押します。
ロールの一覧に今作成したIAMロールが表示されるのでクリックすると概要ページが表示されます。
ここで「ロールARN」の内容をコピーしてメモ帳にでも貼り付けておいてください。
SP-APIアプリケーションを登録する際に使用します。
ステップ5.IAMユーザーにAWSセキュリティトークンサービスポリシーを追加する
つぎに、ステップ2で作成したIAMユーザーにサービスポリシーを追加します。
IAMユーザー一覧から、先ほど作成したIAMユーザーをクリックしてください。
アクセス権限タブにある、「インラインポリシーの追加」をクリックします。
「サービスの選択」をクリックします。
サービスの一覧から「STS」を探してクリックします。
「書き込み」の左にある三角をクリックします。
「AssumeRole」にチェックを入れ、「Role リソース ARN を指定します。」という部分をクリックします。
「ARNの追加」をクリックします。
「STS_roleのARN指定」にステップ4でコピーしたARNを張り付けて追加ボタンを押します。
ポリシーの確認ボタンを押すと確認画面に遷移します。
名前は「Selling_Partner_API_Policy」とでもしておきます。
ポリシーの作成ボタンを押せば完了です。
ステップ6.アプリケーションを登録する
Amazonセラーセントラルの上部メニューからアプリの開発ページを開きます。
「新しいアプリクライアントを追加」ボタンを押すとアプリ登録ページが開きます。
ボタンがない場合は開発者登録が完了していません。
「Amazon開発者登録の方法 実際の申請体験を踏まえて解説」の記事を参考に開発者登録を行ってみてください。
アプリ名は適当に決めてください。
APIタイプは「SP API」を選択します。
ロールはアプリで使いたい機能を選択します。
OAuth関連の項目は何を入れればよいかわからなかったので、空欄にしてみましたが先に進めました。
保存して終了ボタンを押せばアプリの作成は完了です。
まとめ
今回は「SP-APIの利用準備 IAMユーザー IMポリシー IAMロールを作成」という内容でお伝えしました。
なんとかアプリ作成の準備までこぎつけたのですが、ここで気づいてしまいました。
「SP-APIを使っても商品情報の取得ができない」ということに。
これはスクレイピングを使うのが正しい方法な気がしてきました。
というわけで、SP-APIは一旦置いておいて次回以降はスクレイピングによる商品情報の取得を考えてみたいと思います。
この記事が皆さんのお役に立てば幸いです。