> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

> IAMのロールとポリシーの代わりにCognitoを使用してAPI Gatewayチュートリアルをセキュリティ保護する方法。

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

このチュートリアルを始める前に、[適切なAmazon Cognitoユーザープールを作成](http://docs.aws.amazon.com/cognito/latest/developerguide/setting-up-cognito-user-identity-pools.html)してください。

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

[Amazon API Gatewayコンソール](https://console.aws.amazon.com/apigateway)に移動します。左側のナビゲーションバーで **［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ユーザープールをオーソライザーとして機能させる追加のメソッドごとにこの手順を繰り返します（`/pets`の`GET`と`PURCHASE`、`/purchase`の`POST`）。
