指示に従って、 Amazon API Gateway REST または HTTP API のカスタムドメイン名を設定しました。APIを呼び出すと、403「認証トークンがありません」というエラーが表示されます。このエラーをトラブルシューティングして解決するにはどうすればよいですか?
簡単な説明
カスタムドメイン名を持つ API Gateway API は、URL パスが正しくない場合、API を呼び出すと 403「認証トークンがありません」というエラーを返します。
**注意:**API Gateway API ステージ URL を使用しても、403「認証トークンが見つかりません」エラーは返されません。
解決方法
API Gateway API 用に設定されたカスタムドメイン名は、API マッピングを使用して API ステージを接続し、カスタムドメイン名を通じて API にトラフィックを送信します。API マッピングには API、ステージ、カスタムドメイン名、およびオプションでマッピングに使用するパスがあります。詳細については、「API マッピングの使用」を参照してください。
次の例では、カスタムドメイン「https://api.example.com」 API マッピングは次のように設定されています。
| | | | | |
---|
API | 例 | ステージ | パス | デフォルト URL | カスタムドメイン URL |
abcd3456ef | API 1 | 開発 | (なし) | https://abcd3456ef.execute-api.us-east-1.amazonaws.com/dev | https://api.example.com |
wxyz1234ab | API 2 | テスト | 命令 | https://wxyz1234ab.execute-api.us-east-1.amazonaws.com/test | https://api.example.com/orders |
mnop5678qr | API 3 | prod | お客様 | https://mnop5678qr.execute-api.us-east-1.amazonaws.com/prod | https://api.example.com/customers |
この設定例では、URL https://abcd3456ef.execute-api.us-east-1.amazonaws.com/dev/resourceA を使用して API 1 に対して行われたリクエストは、トラフィックを「ResourceA」に正常にルーティングします。これは、ステージ名「dev」のリソースに対してリクエストが行われるためです。ただし、URL https://api.example.com/dev/resourceA を使用した同じリクエストでは、403「認証トークンがありません」というエラーが返されます。このエラーは、ステージ「dev」がカスタムドメイン名の (none) パスにマップされているために発生します。カスタムドメイン名を使用して「ResourceA」にリクエストをルーティングするには、URL が https://api.example.com/resourceA であることを確認してください。
同様に、https://wxyz1234ab.execute-api.us-east-1.amazonaws.com/test/resourceB に相当するカスタムドメイン名 URL は https://api.example.com/orders/resourceB です。これは、API 2 の「テスト」ステージがカスタムドメイン API マッピングの「orders」パスにマッピングされているためです。
関連情報
API Gateway REST API から HTTP 403 エラーをトラブルシューティングする方法を教えてください。
API Gateway REST API エンドポイントからの 403「Missing Authentication Token」エラーをトラブルシューティングするにはどうすればよいですか?
API Gateway でのリージョナルカスタムドメイン名のセットアップ