Amazon Simple Storage Service (Amazon S3) 内のオブジェクトにアクセスしようとすると、「Request has expired」というエラーメッセージが表示されます。
解決策
URL の指定された有効期限を過ぎて署名付き URL にアクセスしようとした場合、Amazon S3 はこのエラーメッセージを返します。
たとえば、次の応答では、署名済み URL の有効期限は 2022 年 10 月 28 日です。2022 年 10 月 28 日よりも後に署名済み URL にアクセスしようとした場合、次のエラーメッセージが表示されます。
<Error>
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
<Expires>2022-10-28T07:13:14Z</Expires>
<ServerTime>2022-10-28T20:03:02Z</ServerTime>
<RequestId>87E1D2CFAAA7F9A6</RequestId>
<HostId>
A9BEluTV2hk3ltdFkixvQFa/yUBfUSgDjptwphKze+jXR6tYbpHCx8Z7y6WTfxu3rS4cGk5/WTQ=
</HostId>
</Error>
この問題を解決するには、オブジェクトにアクセスするための署名付き URL を新しく作成する必要があります。Amazon S3 コンソールを使用して有効期限を設定すると、URL の有効期間を 1 分から 12 時間の範囲で設定できます。AWS コマンドラインインターフェイス (AWS CLI) または AWS SDK を使用すると、有効期間を最大 7 日間に設定できます。
新しい署名付き URL を作成するには、次のいずれかの認証情報を使用します。
- AWS Identity and Access Management (IAM) インスタンスプロファイル
- AWS Security Token サービス
- IAM ユーザー
注: 一時トークンを使用して署名済み URL を作成した場合、トークンの有効期限が切れるとその URL は失効します。署名済み URL は、URL の作成に使用した資格情報が取り消されたり、削除されたり、非アクティブ化されたりすると期限切れになります。これは、URL が認証情報よりも後に失効するように設定した場合にも当てはまります。
関連情報
署名済み URL の有効期限
Amazon S3 バケットの署名済み URL が、指定した有効期限より前に失効する理由を知りたいです