как указать URL-адрес для объекта Amazon S3 и разрешить ему истекать через неделю?

#amazon-web-services #amazon-s3 #command-line-interface

#amazon-web-services #amazon-s3 #интерфейс командной строки

Вопрос:

Согласно руководству, я назначил учетные данные пользователя IAM (ключ доступа и секретный ключ доступа) и сгенерировал URL-адрес с указанием имени, используя AWS Signature версии 4 следующим образом:

 import os
os.system('aws configure set access_key {} --profile {}'.format(my_access_key, profile_name))
os.system('aws configure set secret_key {} --profile {}'.format(my_secret_key, profile_name))
os.system('aws configure set signature_version s3v4 --profile {}'.format(profile_name))
os.system("aws s3 presign {} --expires-in 604800 > public_url --profile {}".format(s3_path, profile_name))
  

Однако срок действия URL-адреса все равно истек через 6 часов. Есть ли какие-либо ошибки в моем коде или учетные данные, которые я использовал, не принадлежат пользователю IAM? Как я могу проверить типы учетных данных (IAM user или AWS IAM instance profile)? Я просто следую инструкциям, чтобы получить свой ключ доступа и секретный ключ доступа

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

1. my_access_key И my_secret_key принадлежат вашим пользователям IAM или какой-либо роли IAM?

2. Я просто следую инструкциям ( docs.aws.amazon.com/powershell/latest/userguide /… ), чтобы получить ключи. Они от моего пользователя IAM.

3. Тогда я не вижу причины, по которой он истекает только через 6 часов. Как вы его тестировали?

4. Я нажимаю URL-адрес через 6 часов, и на странице отображается «Срок действия предоставленного токена истек».

5. Можете ли вы подтвердить это с помощью aws cli? Не используйте python, просто сделайте все это вручную в терминале и проверьте, совпадает ли он.