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

一時トークンを使用して署名付き URL を作成した場合、トークンが有効期限切れになると、URL は失効します。URL の有効期限がより長い場合でも失効します。

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

  • AWS Identity and Access Management (IAM) インスタンスプロファイル: 最大 6 時間有効
  • AWS Security Token Service (STS): 最大 36 時間有効 (AWS アカウントユーザーや IAM ユーザーの認証情報など、永続的認証情報を使用して署名した場合)
  • IAM ユーザー: 最大 7 日間有効 (AWS 署名バージョン 4 を使用した場合)

最大 7 日間有効の署名付き URL を作成するには、まず、使用する SDK への IAM ユーザー認証情報 (アクセスキーとシークレットアクセスキー) を指定します。次に、AWS 署名バージョン 4 を使用して署名付き URL を生成します。

たとえば、Boto 3 を使用して署名付き URL を作成するには、以下のステップに従います。

1.    Boto 用の IAM ユーザー認証情報を設定します。

2.    次のコードスニペットを編集して実行し、S3 オブジェクトで使用する署名付き URL を作成します。

import boto3
from botocore.client import Config

# Get the service client with sigv4 configured
s3 = boto3.client('s3', config=Config(signature_version='s3v4'))

# Generate the URL to get 'key-name' from 'bucket-name'
# URL expires in 604800 seconds (seven days)
url = s3.generate_presigned_url(
    ClientMethod='get_object',
    Params={
        'Bucket': 'bucket-name',
        'Key': 'key-name'
    },
    ExpiresIn=604800
)

print(url)

警告: IAM ユーザーを削除した場合やアクセスキーとシークレットアクセスキーを無効にした場合は、署名付き URL が期限前に失効します。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2018 年 8 月 6 日