Cognitoを使用してAWS API Gatewayをセキュリティ保護する
IAMのロールとポリシーを使用してAPIをセキュリティ保護する代わりに、Amazon Cognitoのユーザープールを使用することができます。
このチュートリアルを始める前に、適切なAmazon Cognitoユーザープールを作成してください。
CognitoユーザープールをAPI Gateway APIと統合する
Amazon API Gatewayコンソールに移動します。左側のナビゲーションバーで[SecurePets]APIを選択します。
次に、[SecurePets]APIの[オーソライザー]を選択します。
画面中央付近の[オーソライザー]列で[作成]を選択し、[Cognitoユーザープールオーソライザー]を作成することを示します。
オーソライザーを構成するには以下を行います。
ユーザープールを作成した[Cognitoリージョン]を選択します。
希望に応じて、[オーソライザー名]フィールドをカスタマイズします(選択したユーザープールの名前に基づいて自動入力されるので、そのままにしておくこともできます)。
[IDトークンのソース]フィールドをカスタマイズします。このフィールドはデフォルトで
method.request.header.Authorization
に設定されており、これはAPI呼び出し元のIDトークンを含む受信要求ヘッダーの名前をAuthorization
に設定します。希望する場合は、[アプリクライアントID正規表現]フィールドに正規表現を追加して、ユーザープールに関連付けられているクライアントIDを検証します。
オーソライザーの構成が終わったら、[作成]をクリックしてユーザープールをAPIに統合します。
メソッドでユーザープールオーソライザーを有効にする
ユーザープールをオーソライザーとして機能させるメソッドごとに、その特定のメソッドに対してユーザープールを有効にする必要があります。
ユーザープールオーソライザーをGET
メソッドで有効にするには、以下を行います。
SecurePets APIを選択した後、
/pets
にリストされているGET
メソッドを選びます。[メソッドの要求]をクリックします。
[認可設定]で、[認可]フィールドの横にある編集アイコンをクリックします。
適切なCognitoユーザープールオーソライザーをリストから選びます。チェックマークアイコンをクリックして選択を保存します。
Cognitoユーザープールをオーソライザーとして機能させる追加のメソッドごとにこの手順を繰り返します(/pets
のGET
とPURCHASE
、/purchase
のPOST
)。