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