Amazon S3 バケットの署名付き URL が、指定した有効期限より前に失効するのはなぜですか?

所要時間1分
0

一時トークンを使用して、Amazon Simple Storage Service (Amazon S3) バケットの署名付き URL を作成しました。しかし、URL は指定した有効期限前に失効しました。原因は何でしょうか? 有効期限がより長い署名付き URL を作成する方法を教えてください。

解決方法

一時トークンを使用して署名済み URL を作成した場合は、トークンが失効すると URL も失効します。それより後の有効期限を指定して URL を作成した場合でも、URL は失効します。

署名付き URL の作成に使用できる認証情報には以下が含まれます。

  • AWS Identity and Access Management (IAM) インスタンスプロファイル: 最長 6 時間有効。
  • AWS Security Token Service (STS): AWS Identity and Access Management (IAM) ユーザーが署名した場合は最長 36 時間、ルートユーザーが署名した場合は最長 1 時間有効です。
  • IAM ユーザー: 最長 7 日間有効 (AWS 署名バージョン 4 を使用した場合)。

最長 7 日間有効の署名付き URL を作成するには、SDK に対する IAM ユーザー認証情報 (アクセスキーとシークレットアクセスキー) を指定します。その後、AWS 署名バージョン 4 を使用して署名付き URL を生成します。例については、「Signature calculations in AWS Signature Version 4」(AWS Signature Version 4 での署名の計算) を参照してください。

署名付き URL を作成するときは、次の点に留意してください。

  • AWS Lambda 実行ロールなど、ロールを引き受けるサービスは、必ずしもロールのセッション期間の設定に準拠しているわけではありません。
  • 署名済み URL は、その URL を知っているユーザーに Amazon S3 バケットへのアクセス権を付与するものであるため、それらを適切に保護するのがベストプラクティスです。
  • 一時トークンを使用して署名済み URL を作成した場合は、トークンが失効すると URL も失効します。これは、URL がそれより後の有効期限で作成された場合にも当てはまります。

ユーザーが Amazon S3 バケット内のオブジェクトに 7 日を超える期間にわたってアクセスすることを許可するには、次のいずれかのオプションの使用を検討してください。


関連情報

署名付き URL を使用したオブジェクトの共有

GetSessionToken

インスタンスメタデータからのセキュリティ認証情報の取得

Authenticating requests: Using query parameters (AWS Signature Version 4) (リクエストの認証: クエリパラメータの使用 (AWS Signature Version 4))

Boto 3 Docs: S3

AWS公式
AWS公式更新しました 2年前
コメントはありません