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