Изтеглянето на S3 работи от конзолата, но не и от командния ред

Може ли някой да обясни това поведение:

Когато се опитам да изтегля файл от S3, получавам следната грешка:

An error occurred (403) when calling the HeadObject operation: Forbidden.

Използван команден ред:

aws s3 cp s3://bucket/raw_logs/my_file.log .

Въпреки това, когато използвам уебсайта на конзолата S3, мога да изтегля файла без проблеми.

Ключът за достъп, използван от командния ред, е правилен. Проверих това и други AWS операции чрез командния ред работят добре. Ключът за достъп е свързан със същия потребителски акаунт, който използвам в конзолата на AWS.


person Jeroen Jacobs    schedule 04.11.2016    source източник


Отговори (2)


Така че предполагам, че сте сигурни за IAM политиката на вашия потребител и файлът съществува във вашата кофа

Ако сте задали регион по подразбиране във вашата конфигурация, но кофата не е създадена в този регион (Да s3 кофите са създадени в регион), няма да го намери. Уверете се, че сте добавили регионалния флаг към CLI

aws s3 cp s3://bucket/raw_logs/my_file.log . --region <region of the bucket>

Други бележки:

  • не забравяйте да надстроите до най-новата версия
  • може да е причина, ако системният часовник не е синхронизиран, ако не посочвате никакви параметри за синхронизиране, може да е добре, но не знам вътрешния и за някои команди CLI гледа системния часовник, за да сравни със S3, ако не е синхронизиран, това може да причини проблеми
person Frederic Henri    schedule 04.11.2016

Имах подобен проблем поради активирането на двуфакторно удостоверяване в моя акаунт. Вижте как да конфигурирате 2FA за aws cli тук: https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

person Mark Sparhawk    schedule 04.12.2018
comment
Добре дошли в Stack Overflow! Връзка към решение е добре дошла, но моля, уверете се, че отговорът ви е полезен и без нея: добавете контекст около връзката, така че вашият колега потребителите ще имат някаква представа какво е и защо е там, след което цитирайте най-подходящата част от страницата, към която препращате, в случай че целевата страница е недостъпна. Отговори, които са малко повече от връзка, може да бъдат изтрити. - person Samuel Liew♦; 04.12.2018
comment
Може да е още по-лесно да добавите вашия mfa_serial към вашия ~/.aws/config файл. Следващият път, когато се направи AssumeRole Call, cli иска токен. Вижте описанието на mfa_serial на docs.aws.amazon.com/cli /latest/topic/config-vars.html - person Matthias Wiedemann; 07.02.2020