> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

# Cognito を使用して AWS API Gateway を保護する

API を保護するには、IAMロールやポリシーの代わりに、Amazon Cognito のユーザープールを使用することもできます。

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

<div id="integrate-the-cognito-user-pool-with-the-api-gateway-api">
  ## Cognito User Pool を API Gateway API と統合する
</div>

[Amazon API Gateway Console](https://console.aws.amazon.com/apigateway) に移動します。左側のナビゲーションバーで、**SecurePets** API を選択します。

次に、**SecurePets** API の **Authorizers** を選択します。

画面中央付近の Authorizers 列で **Create** を選択し、**Cognito User Pool Authorizer** を作成することを指定します。

authorizer を設定するには、次の手順に従います。

1. ユーザープール を作成した **Cognito region** を選択します。
2. 必要に応じて **Authorizer name** フィールドを変更します (選択した ユーザープール の名前が自動的に入力されるため、そのままでも問題ありません) 。
3. **Identity token source** フィールドを変更します。既定では、このフィールドは `method.request.header.Authorization` に設定されています。これは、API 呼び出し元のアイデンティティ token を含む受信 request header の名前が `Authorization` であることを示します。
4. 必要に応じて、ユーザープール に関連付けられた client ID を validate するための正規表現を **App client ID regex** フィールドに追加します。

authorizer の設定が完了したら、**Create** をクリックして ユーザープール を API と統合します。

<div id="enable-the-user-pool-authorizer-on-methods">
  ## メソッドで ユーザープール Authorizer を有効にする
</div>

ユーザープール を authorizer として使用する各メソッドでは、そのメソッドごとに ユーザープール を有効にする必要があります。

`GET` メソッドで ユーザープール authorizer を有効にするには、次の手順に従います。

1. SecurePets API を選択したら、`/pets` の下にある `GET` メソッドを選択します。
2. **メソッド要求** をクリックします。
3. Authorization Settings で、Authorization フィールドの横にある **編集アイコン** をクリックします。
4. 一覧から適切な Cognito ユーザープール authorizer を選択します。選択内容を保存するには、**チェックマークアイコン** をクリックします。

Cognito ユーザープール を authorizer として使用する追加のメソッドについても、この手順を繰り返します (`/pets` の `GET` と `PURCHASE`、および `/purchase` の `POST`) 。
