Warum habe ich in einigen AWS-Regionen den IAM-Fehler „AWS konnte die bereitgestellten Zugangsdaten nicht überprüfen“ erhalten?

Lesedauer: 3 Minute
0

Ich habe eine AWS Identity and Access Management (IAM)-Rolle übernommen und mein API-Aufruf hat einen Fehler zurückgegeben, der dem folgenden ähnelt: „Beim Aufrufen des Vorgangs DescribeInstances ist ein Fehler aufgetreten (AuthFailure): AWS konnte die bereitgestellten Zugangsdaten zu überprüfen.“

Kurzbeschreibung

Der AWS Security Token Service (AWS STS) unterstützt eine aktualisierte Version der Sitzungstoken, Version 2. Neue AWS-Regionen (z. B. Bahrain) sind standardmäßig nicht aktiviert und akzeptieren nur die aktualisierte Version der Sitzungstoken. Dieser Fehler kann auftreten, wenn Sitzungstoken der Version 1 verwendet werden, um eine Anfrage an Serviceendpunkte in einer AWS-Region zu stellen, die standardmäßig nicht aktiviert sind. Weitere Informationen finden Sie unter Verwaltung von AWS STS in einer AWS-Region.

Lösung

Sitzungstoken, die vom regionalen AWS-STS-Endpunkt abgerufen wurden, haben Version 2 und sind in allen AWS-Regionen gültig. Als bewährte Methode wird empfohlen, regionale STS-Endpunkte zu verwenden. Die Verwendung eines Endpunkts, der geografisch näher an Ihrer Anwendung liegt, reduziert die Latenz und bietet bessere Reaktionszeiten.

Verwenden Sie eine der folgenden Methoden, um dieses Problem zu beheben.

Besorgen Sie sich Tokens von einem regionalen Endpunkt

Der folgende Beispielbefehl verwendet AWS-SDK für Python (Boto3).

Hinweis:

  • Ersetzen your-region, Konto-ID und Rollenname entsprechend Ihrer Umgebung.
  • Das Festlegen des Endpunkts\ _url ist erforderlich, um den STS-Client für den regionalen Endpunkt zu konfigurieren.
# Replace existing code to create STS client with the following
sts_client = boto3.client('sts', region_name='your-region', endpoint_url='https://sts.your-region.amazonaws.com')

Fügen Sie Regions- und Endpunkt-URL-Optionen in das bestehende Bash-Skript/den vorhandenen Bash−Befehl ein, um regionale Endpunkte zu verwenden.

aws sts assume-role --role-arn arn:aws:iam::AccountID:role/RoleName --role-session-name RoleName --region your-region --endpoint-url https://sts.your-region.amazonaws.com

Ändern Sie die Regionskompatibilität von Sitzungstoken für den globalen Endpunkt

Standardmäßig geben die AWS STS-Aufrufe an den globalen Endpunkt Sitzungstoken aus, die der Version 1 entsprechen. Token der Version 1 sind nur in AWS-Regionen gültig, die standardmäßig aktiviert sind. Sie können den globalen STS-Endpunkt jedoch auch so konfigurieren, dass er in Version 2 Tokens ausgibt, die in allen AWS-Regionen verwendet werden können.

Anweisungen finden Sie unter Ändern der Regionskompatibilität von Sitzungstoken für den globalen Endpunkt.

Wichtig: Token der Version 2 enthalten mehr Zeichen als die Tokens der Version 1. Dies kann sich auf die vorhandenen Systeme auswirken, in denen Sie Tokens vorübergehend speichern.


Ähnliche Informationen

AWS Security Token Service (STS) unterstützt jetzt die Aktivierung der Ausgabe von Sitzungstoken durch den globalen STS-Endpunkt, die mit allen AWS-Regionen kompatibel sind

Regionen und Endpunkte

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren