Interfejs AWS CLI zgłasza „Nie można zlokalizować poświadczeń” przy drugim uruchomieniu

9

Próbuję pobrać niektóre pliki z S3 do instancji EC2 przy użyciu interfejsu AWS CLI (1.8.7) podczas uruchamiania przy użyciu skryptu danych użytkownika. To wystąpienie ma profil roli i wystąpienia IAM z odpowiednimi uprawnieniami. Czasami CLI kończy się niepowodzeniem z błędem „Nie można zlokalizować poświadczeń”. Zdarza się to często (nie za każdym razem), ale zawsze po osobnym poleceniu S3, które działało. Oto wynik skryptu:

++ date +%r
03:24:10 AM
++ aws s3 cp s3://non-public-bucket-1/15mb-zip-file.zip ./15mb-zip-file.zip
Completed 1 of 1 part(s) with 1 file(s) remaining^Mdownload: s3://non-public-bucket-1/15mb-zip-file.zip to 15mb-zip-file.zip
++ date +%r
03:24:14 AM
++ unzip 15mb-zip-file.zip

# Snip

++ date +%r
03:26:01 AM
++ curl http://169.254.169.254/latest/meta-data/instance-id
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    10  100    10    0     0  13831      0 --:--:-- --:--:-- --:--:-- 10000
i-12345678++ date +%r
03:26:01 AM
++ aws s3 cp s3://non-public-bucket-2/my-small-text-file.json ./output.json
download failed: s3://non-public-bucket-2/my-small-text-file.json to output.json Unable to locate credentials

++ date +%r
03:26:34 AM

Masz pojęcie, co może to spowodować?

Edycja: To jest serwer Amazon Linux.

Simon Paris
źródło
Czy próbowałeś opóźnić 10 sekund przed próbą pobrania plików? Być może poświadczenia IAM nie są jeszcze dostępne przy pierwszym uruchomieniu polecenia.
EEAA
Mam dokładnie ten sam problem z Ubuntu 16.04 LTS.
sj26,

Odpowiedzi:

3

Miałem ten sam problem, nawet skontaktowałem się z pomocą techniczną i nie mogli udzielić odpowiedzi. Eksportowanie referencji do zmiennych środowiskowych nie działa w przypadku aws s3 ...poleceń. Musisz albo użyć aws configureutil, albo utworzyć taki ~/.aws/configplik:

[default]
aws_access_key_id=foo
aws_secret_access_key=bar
region=us-west-2

Proszę odnieść się do dokumentacji AWS pod adresem http://docs.aws.amazon.com/cli/latest/topic/config-vars.html

Nie tylko okazało się, że w ogóle nie działa z eksportami środowiska podczas uruchamiania EC2 za pośrednictwem Danych użytkownika, ale także po uruchomieniu z wiersza polecenia w pełni wdrożonej działającej instancji.

Steven K7FAQ
źródło