Wie kann ich „HTTP 403 Forbidden“-Fehler 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-Entität (IAM) (Benutzer oder Rolle) aufgerufen. Ich erhalte einen „HTTP 403 Forbidden“-Fehler.

Lö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:

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

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?


Relevante Informationen

Beispiele für API-Gateway-Ressourcenrichtlinien

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren