Временные URL-адреса S3 для содержимого корзины без ключевой информации

#amazon-s3 #pre-signed-url

#amazon-s3 #предварительно подписанный URL

Вопрос:

Я использую приведенный ниже код для возврата временных URL-адресов для файлов в корзине S3, которые отображаются на моем веб-сайте.

 export function PreURL(IAM_USER_KEY, IAM_USER_SECRET, BUCKET_NAME, Key1) {
    let s3bucket = new AWS.S3({
        endpoint: 's3-us-west-1.amazonaws.com',
        signatureVersion: 'v4',
        region: 'us-west-1',
        accessKeyId: IAM_USER_KEY,
        secretAccessKey: IAM_USER_SECRET,
        Bucket: BUCKET_NAME
    });
    var params = {Bucket: BUCKET_NAME, Key: Key1, Expires: 60};
    var url = s3bucket.getSignedUrl('getObject', params);
    console.log('Image The URL is', url); // expires in 60 seconds
    return url.toString()
} // End of PreURL
  

Он возвращает URL-адрес в следующих строках:

https://BUCKET.s3-РЕГИОН.amazonaws.com /FILE?X-Amz-Algorithm= AWS4-HMAC-SHA256amp;X-Amz-Credential=IAM_KEY/20200909/REGION/s3/aws4_requestamp;X-Amz-Date=TIMEamp;X-Amz-Expires= 60amp;X-Amz-Signature=ПОДПИСЬamp;X-Amz-SignedHeaders=ЗАГОЛОВКИ#t =0.1

Этот URL-адрес меня несколько беспокоит, поскольку он выдает все, кроме secret_access_key. Я знаю, что к корзине нельзя получить доступ без нее, но я бы предпочел временный URL-адрес без такого большого количества информации в нем. (Bucket_Name, .amazonaws, IAM_KEY). Есть ли какой-либо другой способ создания временного URL-адреса для файлов в корзине S3, который не выдает так много информации?

Ответ №1:

Нет, нет возможности создать «псевдоним» для объектов.

Я понимаю, что вы обеспокоены тем, что он отображает значения вашей корзины и ключа, но это обычный способ работы с предварительно подписанными URL-адресами.

Если вам действительно не нравится то, что он делает, вы могли бы:

  • Скопируйте файлы в «случайный» ключ
  • Укажите предварительно подписанный URL-адрес для временного объекта
  • Используйте политику жизненного цикла для удаления объектов через 1 день

Комментарии:

1. Большое вам спасибо, хотя меня больше беспокоит информация о корзине и IAM, чем ключ файла.