Wie kann ich den Fehler „HTTP 403 Forbidden“ beheben, wenn ich meine API mit kontoübergreifender IAM-Authentifizierung für API Gateway aufrufe?

Lesedauer: 2 Minute
0

Ich habe meine Amazon API Gateway-API mit einer kontoübergreifenden AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Entität (Benutzer oder Rolle) aufgerufen. Ich erhalte die Fehlermeldung „HTTP 403 Forbidden“.

Lösung

REST-APIs

Aktiviere die IAM-Authentifizierung für eine API-Methode in der API Gateway-Konsole. um auf API Gateway-REST-APIs zuzugreifen. Verwende dann IAM- und Ressourcenrichtlinien, um den Benutzern deiner API Berechtigungen zuzuweisen.

Stelle sicher, dass die kontoübergreifende IAM-Entität über Berechtigungen zum Aufrufen der API verfügt und der Zugriff in der Ressourcenrichtlinie zulässig ist.

In diesem Beispiel ist für die REST-API für Konto A 111111111 die IAM-Authentifizierung aktiviert. User1 versucht, von Konto B 999999999 aufzurufen. An User1 in Konto B ist die folgende IAM-Richtlinie angefügt:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "execute-api:Invoke",
        "execute-api:ManageConnections"
      ],
      "Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/*/*/*"
    }
  ]
}

Verwende eine Ressourcenrichtlinie, die der folgenden ähnelt, damit der IAM-Benutzer für Konto B in Konto A den kontoübergreifenden Zugriff aufrufen kann:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::999999999:user/User1"
      },
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/stage/*/*"
    }
  ]
}

Weitere Informationen findest du unter Wie aktiviere ich die IAM-Authentifizierung für API Gateway-REST-APIs?

HTTP-APIs

Für den Zugriff auf API Gateway-HTTP-APIs kannst du die API-Aktion sts:AssumeRole verwenden, um eine Rolle für das HTTP-API-Konto zu übernehmen. Die übernommene Rolle stellt temporäre Sicherheitsanmeldeinformationen bereit, mit denen die HTTP-API in einem anderen Konto aufgerufen werden kann.

Stelle sicher, dass die temporären Sicherheitsanmeldeinformationen, die zum Aufrufen der HTTP-API verwendet werden, korrekt und nicht abgelaufen sind.

Weitere Informationen findest du unter Wie kann ich eine kontoübergreifende IAM-Autorisierung für API Gateway-HTTP-APIs bereitstellen?

Ähnliche Informationen

Beispiele für API Gateway-Ressourcenrichtlinien

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten