Cognitoを使用してAWS API Gatewayをセキュリティ保護する

IAMのロールとポリシーを使用してAPIをセキュリティ保護する代わりに、Amazon Cognitoのユーザープールを使用することができます。

このチュートリアルを始める前に、適切なAmazon Cognitoユーザープールを作成してください。

CognitoユーザープールをAPI Gateway APIと統合する

Amazon API Gatewayコンソールに移動します。左側のナビゲーションバーで[SecurePets]APIを選択します。

次に、[SecurePets]APIの[オーソライザー]を選択します。

画面中央付近の[オーソライザー]列で[作成]を選択し、[Cognitoユーザープールオーソライザー]を作成することを示します。

オーソライザーを構成するには以下を行います。

  1. ユーザープールを作成した[Cognitoリージョン]を選択します。

  2. 希望に応じて、[オーソライザー名]フィールドをカスタマイズします(選択したユーザープールの名前に基づいて自動入力されるので、そのままにしておくこともできます)。

  3. [IDトークンのソース]フィールドをカスタマイズします。このフィールドはデフォルトでmethod.request.header.Authorizationに設定されており、これはAPI呼び出し元のIDトークンを含む受信要求ヘッダーの名前をAuthorizationに設定します。

  4. 希望する場合は、[アプリクライアントID正規表現]フィールドに正規表現を追加して、ユーザープールに関連付けられているクライアントIDを検証します。

オーソライザーの構成が終わったら、[作成]をクリックしてユーザープールをAPIに統合します。

メソッドでユーザープールオーソライザーを有効にする

ユーザープールをオーソライザーとして機能させるメソッドごとに、その特定のメソッドに対してユーザープールを有効にする必要があります。

ユーザープールオーソライザーをGETメソッドで有効にするには、以下を行います。

  1. SecurePets APIを選択した後、/petsにリストされているGETメソッドを選びます。

  2. [メソッドの要求]をクリックします。

  3. [認可設定]で、[認可]フィールドの横にある編集アイコンをクリックします。

  4. 適切なCognitoユーザープールオーソライザーをリストから選びます。チェックマークアイコンをクリックして選択を保存します。

Cognitoユーザープールをオーソライザーとして機能させる追加のメソッドごとにこの手順を繰り返します(/petsGETPURCHASE/purchasePOST)。