S3のオブジェクトは署名を付与することで、署名が有効な期間内中はアクセス可能にすることができます。
署名の作成
以下の例ではPython boto3を利用して署名付URLを作成しています。
48 * 60 * 60 (48時間)内でオブジェクトの取得可能なURLを生成。
s3 = boto3.client('s3') url = s3.generate_presigned_url( ClientMethod = 'get_object', Params = {'Bucket': 'yourBucketName', 'Key': 'targetFile'}, ExpiresIn = 48 * 60 * 60, HttpMethod = 'GET' )
生成された署名付URLでブラウザアクセスすると対象のオブジェクトがパブリックアクセス禁止の場合でも署名期限内であればオブジェクトを取得することが出来る。
リンク