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

Letzte Aktualisierung: 16.09.2022

Ich habe meine Amazon API Gateway API mit einer kontoübergreifenden AWS Identity and Access Management (IAM) -Entität (Benutzer oder Rolle) aufgerufen. Ich erhalte einen „HTTP 403 Forbidden“ -Fehler. Wie kann ich dies beheben?

Auflösung

REST-APIs

Aktivieren Sie für den Zugriff auf API Gateway-REST-APIs die IAM-Authentifizierung für eine API-Methode in der API Gateway-Konsole. Verwenden Sie dann IAM-Richtlinien und Ressourcenrichtlinien, um Berechtigungen für die Benutzer Ihrer API festzulegen.

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

In diesem Beispiel ist in der REST-API für Konto A 111111111 die IAM-Authentifizierung aktiviert. Benutzer1 versucht, von Konto B 999999999 aus aufzurufen. An Benutzer1 ist in Konto B die folgende IAM-Richtlinie angehängt:

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

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

{
  "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/*/*"
    }
  ]
}

Wie aktiviere ich die IAM-Authentifizierung für API-Gateway-REST-APIs?

HTTP-APIs

Für den Zugriff auf API Gateway-HTTP-APIs können Sie die API-Aktion sts:AssumeRole verwenden, um eine Rolle für das HTTP-API-Konto zu übernehmen Die übernommene Rolle stellt temporäre Sicherheitsnachweise bereit, die zum Aufrufen der HTTP-API in einem anderen Konto verwendet werden können.

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

Wie kann ich kontoübergreifende IAM-Autorisierung für API-Gateway-HTTP-APIs bereitstellen?


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?