

# API Gateway コンソールを使用してリソースで CORS を有効にする
<a name="how-to-cors-console"></a>

API Gateway コンソールを使用して、作成した REST API リソース上の 1 つまたはすべてのメソッドに対する CORS サポートを有効にできます。COR サポートを有効にしたら、統合パススルーの動作を `NEVER` に設定します。この場合、マッピングされていないコンテンツタイプのメソッドリクエストは、HTTP 415 Unsupported Media Type レスポンスで拒否されます。詳細については、[API Gateway で REST API のマッピングテンプレートを使用しないペイロードのメソッドリクエストの動作](integration-passthrough-behaviors.md)を参照してください。

**重要**  
リソースには子リソースを含めることができます。リソースおよびそのメソッドに対する CORS サポートを有効にしても、子リソースおよびそのメソッドに対して再帰的に有効になるわけではありません。

**REST API リソースで CORS サポートを有効にするには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. APIを選択します。

1. [**リソース**] のリソースを選択します。

1. **[リソースの詳細]** セクションで、**[CORS の有効化]** を選択します。

      
![[リソース] ペインで、[CORS を有効にする] を選択します。](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/amazon-api-gateway-new-console-enable-cors.png)

1.  **[CORS の有効化]** フォームで、以下の操作を行います。

   1. (オプション) カスタムゲートウェイレスポンスを作成し、そのレスポンスの CORS サポートを有効にする場合は、ゲートウェイレスポンスを選択します。

   1. それぞれのメソッドを選択して CORS サポートを有効にします。`OPTION` メソッドでは CORS が有効になっている必要があります。

      `ANY` メソッドの CORS サポートを有効にすると、すべてのメソッドで CORS が有効になります。

   1.  **[Access-Control-Allow-Headers]** 入力フィールドに、クライアントがリソースの実際のリクエストで送信する必要があるヘッダーのカンマ区切りリストの静的な文字列を入力します。コンソールで提供されたヘッダーのリスト `'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'` を使用するか、独自のヘッダーを指定します。

   1. コンソールで提供された値 `'*'` を [**Access-Control-Allow-Origin**] ヘッダー値として使用してすべてのオリジンからのアクセスリクエストを許可するか、リソースへのアクセスを許可するオリジンを指定します。

   1. **[保存]** を選択します。  
![どのヘッダーを許可するかを選択する](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/amazon-api-gateway-new-console-enable-cors-resources.png)
**重要**  
 上記の手順をプロキシ統合の `ANY` メソッドに適用すると、適切な CORS ヘッダーは設定されません。代わりに、バックエンドは `Access-Control-Allow-Origin` などの適切な CORS ヘッダーを返す必要があります。

`GET` メソッドで CORS を有効にすると、すでに追加されていない場合は `OPTIONS` メソッドがリソースに追加されます。`200` メソッドの `OPTIONS` レスポンスは、プリフライトハンドシェイクを満たすため 3 つの `Access-Control-Allow-*` ヘッダーを返すよう自動的に設定されます。さらに、実際の (`GET`) メソッドは、デフォルトでその 200 レスポンスで `Access-Control-Allow-Origin` ヘッダーを返すように設定されます。他の種類のレスポンスでは、`Access-Control-Allow-Origin'` エラーが発生しないようにする場合、'\*' または特定のオリジンを使って `Cross-origin access` ヘッダーを返すよう手動で設定する必要があります。

リソースで CORS サポートを有効にした後、新しい設定を有効にするには API をデプロイまたは再デプロイする必要があります。詳細については、「[デプロイを作成する](set-up-deployments.md#create-deployment)」を参照してください。

**注記**  
手順を実行してもリソースで CORS サポートを有効にできない場合は、CORS 設定をサンプルの API `/pets` リソースと比較することをお勧めします。サンプル API の作成方法については、「[チュートリアル: サンプルをインポートして REST API を作成する](api-gateway-create-api-from-example.md)」を参照してください。