wake-up-neo.net

Die AWS-Zugriffsschlüssel-ID ist in unseren Datensätzen nicht vorhanden

Ich habe einen neuen Zugriffsschlüssel erstellt und diesen in der AWS-CLI mit aws configure konfiguriert. Die .ini-Datei wurde in ~/.aws/config erstellt. Wenn ich aws s3 ls starte, ergibt sich Folgendes:

Beim Aufrufen des ListBuckets-Vorgangs ist ein Clientfehler (InvalidAccessKeyId) aufgetreten: Die von Ihnen angegebene AWS-Zugriffsschlüssel-ID ist in unseren Datensätzen nicht vorhanden.

Die AmazonS3FullAccess-Richtlinie ist ebenfalls an den Benutzer angehängt. Wie kann ich das beheben? 

27
kaushikdr

Es kann vorkommen, dass die alten Schlüssel über env-Variablen (bash_profile) exportiert werden. Da die env-Variablen Vorrang vor Berechtigungsnachweisdateien haben, wird der Fehler "Die Zugriffsschlüssel-ID ist nicht vorhanden" angezeigt.

Entfernen Sie die alten Schlüssel aus dem bash_profile, und Sie sind bereit zu gehen.

Ist mir früher einmal passiert, als ich vergessen habe, dass ich Anmeldeinformationen in bash_profile habe und mir schon seit einiger Zeit Kopfschmerzen bereitet :)

25
Manish Joshi

Anscheinend wurden bereits einige Werte für die Umgebungsvariablen AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY festgelegt.

Wenn es so ist, können Sie einige Werte sehen, wenn Sie die folgenden Befehle ausführen.

echo $AWS_SECRET_ACCESS_KEY
echo $AWS_ACCESS_KEY_ID

Sie müssen diese Variablen zurücksetzen, wenn Sie aws configure verwenden.

Zum Zurücksetzen führen Sie die folgenden Befehle aus.

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
15
Ashik Mohammed

Für mich war ich auf IAM EC2 roles angewiesen, um Zugriff auf unsere Maschinen für bestimmte Ressourcen zu gewähren.

Ich wusste gar nicht, dass es eine credentials-Datei auf ~/.aws/credentials gab, bis ich einige meiner accessKeys an der IAM-Konsole gedreht/entfernt habe, um unsere Sicherheit zu erhöhen. Dadurch wurde eines der Skripte plötzlich auf einer einzigen Maschine eingestellt.

Durch das Löschen dieser credentials-Datei wurde das Problem behoben.

3
marmor

eine andere Sache, die dazu führen kann, dass der Befehl von einem Makefile ausgeführt wird, auch wenn alles korrekt eingerichtet ist. Zum Beispiel hatte ich eine Regel:

awssetup:
        aws configure
        aws s3 sync s3://mybucket.whatever .

als ich make awssetup lief, bekam ich den Fehler: fatal error: An error occurred (InvalidAccessKeyId) when calling the ListObjects operation: The AWS Access Key Id you provided does not exist in our records.. aber es lief von der Kommandozeile aus.

1
jcomeau_ictx

Sieht aus wie ~/.aws/credentials nicht erstellt wurde. Versuchen Sie es manuell mit diesem Inhalt zu erstellen:

[default]
aws_access_key_id = sdfesdwedwedwrdf
aws_secret_access_key = wedfwedwerf3erfweaefdaefafefqaewfqewfqw

(Wenn ich in meiner Testbox den Befehl aws ohne Berechtigungsnachweisdatei ausführte, lautet der Fehler Unable to locate credentials. You can configure credentials by running "aws configure"..). __ Können Sie versuchen, diese beiden Befehle in derselben Shell auszuführen, in der Sie aws ausführen möchten:

$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

und versuchen Sie dann den Befehl aws.

1
Dusan Bajic

Keine der positiv gestimmten Antworten funktioniert für mich. Schließlich übergebe ich die Anmeldeinformationen im Python-Skript mithilfe der Client-API.

import boto3
client = boto3.client(
's3',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
aws_session_token=SESSION_TOKEN)

Bitte beachten Sie, dass das Argument aws_session_token optional ist. Nicht für die öffentliche Arbeit empfohlen, aber für einfache Versuche einfacher.

0
Frank

Ich versuche unten Schritte und es hat funktioniert: 1. cd ~ 2. cd .aws 3. vi Anmeldeinformationen 4. delete aws_access_key_id = aws_secret_access_key = Setzen Sie den Cursor auf diese Zeile und drücken Sie dd (vi-Befehl zum Löschen der Zeile).

Löschen Sie sowohl die Linie als auch die Verstärkung.

0
Shubhangi

sie können Profile in der Datei bash_profile mit konfigurieren

<profile_name>
aws_access_key_id = <access_key>
aws_secret_access_key = <acces_key_secret>

wenn Sie mehrere Profile verwenden. dann benutze:

aws s3 ls --profile <profile_name>
0