Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Steuern des Zugriffs auf API Gateway
Um zu steuern, wer auf Ihre Amazon API Gateway Gateway-APIs zugreifen kann, können Sie die Autorisierung in IhremAWS SAM-Vorlage.
AWS SAMunterstützt mehrere Mechanismen zur Steuerung des Zugriffs auf Ihre API Gateway Gateway-APIs. Der Satz unterstützter Mechanismen unterscheidet sich zwischenAWS::Serverless::HttpApi
undAWS::Serverless::Api
-Ressourcentypen.
In der folgenden Tabelle finden Sie eine Zusammenfassung der Mechanismen, die jeder Ressourcentyp unterstützt.
Mechanismen zur Kontrolle des Zugangs | AWS::Serverless::HttpApi | AWS::Serverless::Api |
---|---|---|
Lambda-Genehmiger | ✓ | ✓ |
IAM-Berechtigungen | ✓ | |
Amazon-Cognito-Benutzerpools | ✓ * | ✓ |
API-Schlüssel | ✓ | |
Ressourcenrichtlinien | ✓ | |
OAuth 2.0/JWT-Genehmiger | ✓ |
* Sie können Amazon Cognito als JSON Web Token (JWT) -Aussteller mitAWS::Serverless::HttpApi
-Ressourcentyp.
-
Lambda-Genehmiger— Ein Lambda-Autorisierer (früher bekannt alsGenehmiger) ist eine Lambda-Funktion, die Sie bereitstellen, um den Zugriff auf Ihre API zu steuern. Wenn Ihre API aufgerufen wird, wird diese Lambda-Funktion mit einem Anforderungskontext oder einem Autorisierungstoken aufgerufen, das die Clientanwendung bereitstellt. Die Lambda-Funktion antwortet, ob der Aufrufer berechtigt ist, den angeforderten Vorgang auszuführen.
Sowohl die
AWS::Serverless::HttpApi
undAWS::Serverless::Api
-Ressourcentypen unterstützen Lambda-Genehmiger.Weitere Informationen über Lambda-Genehmiger mit
AWS::Serverless::HttpApi
, sieheArbeiten mitAWS Lambda-Genehmiger für HTTP-APIsimEntwicklerhandbuchaus. Weitere Informationen über Lambda-Genehmiger mitAWS::Serverless::Api
, sieheAPI Gateway-Lambda-Genehmiger verwendenimEntwicklerhandbuchaus.Beispiele für Lambda-Autorisierer für beide Ressourcentypen finden Sie unterBeispiele für Lambda-Genehmigeraus.
-
IAM-Berechtigungen- Sie können steuern, wer Ihre API aufrufen kannAWS Identity and Access Management(IAM) Berechtigungenaus. Benutzer, die Ihre API aufrufen, müssen mit IAM-Anmeldeinformationen authentifiziert werden. Aufrufe an Ihre API sind nur erfolgreich, wenn an den IAM-Benutzer eine IAM-Richtlinie angeschlossen ist, die den API-Aufrufer darstellt, eine IAM-Gruppe, die den Benutzer enthält, oder eine IAM-Rolle, die der Benutzer annimmt.
Nur das
AWS::Serverless::Api
-Ressourcentyp unterstützt IAM-Berechtigungen.Weitere Informationen finden Sie unterKontrollieren des Zugriffs auf eine API mit IAM-BerechtigungenimEntwicklerhandbuchaus. Ein Beispiel finden Sie unter Beispiel einer IAM-Berechtigung.
-
Amazon Cognito-Benutzerpools— Amazon Cognito-Benutzerpools sind Benutzerverzeichnisse in Amazon Cognito. Ein Client Ihrer API muss zuerst einen Benutzer im Benutzerpool anmelden und ein Identitäts- oder Zugriffstoken für den Benutzer erhalten. Dann ruft der Client Ihre API mit einem der zurückgegebenen Token auf. Der API-Aufruf wird nur erfolgreich ausgeführt, wenn das erforderliche Token gültig ist.
Die
AWS::Serverless::Api
-Ressourcentyp unterstützt Amazon Cognito Cognito-Benutzerpools. DieAWS::Serverless::HttpApi
-Ressourcentyp unterstützt die Verwendung von Amazon Cognito als JWT-Aussteller.Weitere Informationen finden Sie unter Control access to a REST API using Amazon cognito user pools as authorizer (Zugriff auf eine REST-API mit Amazon-Cognito-Benutzerpools als Autorisierer) im Entwicklerhandbuch von API Gateway. Ein Beispiel finden Sie unter Beispiel für Amazon Cognito Cognito-Benutzerpool.
-
API-Schlüssel— API-Schlüssel sind alphanumerische Zeichenfolgenwerte, mit denen Sie Anwendungsentwicklunden Zugriff auf Ihre API gewähren.
Nur das
AWS::Serverless::Api
Ressourcentyp unterstützt API-Schlüssel.Weitere Informationen zu API-Schlüsseln finden Sie unterErstellen und Verwenden von Nutzungsplänen mit API-SchlüsselnimEntwicklerhandbuchaus. Ein Beispiel für API-Schlüssel finden Sie unterBeispiel einer API-Schlüsselaus.
-
Ressourcenrichtlinien— Ressourcenrichtlinien sind JSON-Richtliniendokumente, die Sie an eine API Gateway anhängen können. Mithilfe von Ressourcenrichtlinien steuern Sie, ob ein bestimmter Prinzipal (normalerweise ein IAM-Benutzer oder eine Rolle) die API aufrufen kann.
Nur das
AWS::Serverless::Api
Ressourcentyp unterstützt Ressourcenrichtlinien als Mechanismus zur Steuerung des Zugriffs auf API-Gateway-APIs.Weitere Informationen über Ressourcenrichtlinien finden Sie unterZugriff auf eine API mit API Gateway-Ressourcenrichtlinien steuernimEntwicklerhandbuchaus. Ein Beispiel für Ressourcenrichtlinien finden Sie unterBeispiel einer Ressourcenrichtlinieaus.
-
OAuth 2.0/JWT-Genehmiger— Sie können JWTs als Teil vonOpenID Connect (OIDC)
undOAuth 2.0 -Frameworks zur Steuerung des Zugriffs auf Ihre APIs. API Gateway validiert die JWTs, die Clients mit API-Anfragen übermitteln, und erlaubt oder lehnt Anfragen basierend auf der Token-Validierung und optional Bereichen im Token ab. Nur das
AWS::Serverless::HttpApi
Ressourcentyp unterstützt OAuth 2.0/JWT-Autorizer.Weitere Informationen finden Sie unter Controlling access to HTTP APIs with JWT authorizers (Zugriffskontrolle auf HTTP-APIs mit JWT-Autorisierern) im Entwicklerhandbuch von API Gateway. Ein Beispiel finden Sie unter Beispiel für OAuth 2.0/JWT-Genehmiger.
Auswahl eines Mechanismus zur Steuerung des Zugriffs
Der Mechanismus, den Sie zum Steuern des Zugriffs auf Ihre API-Gateway-APIs verwenden, hängt von einigen Faktoren ab. Wenn Sie beispielsweise ein Greenfield-Projekt ohne Autorisierung oder Zugriffskontrolle eingerichtet haben, sind Amazon Cognito Cognito-Benutzerpools möglicherweise die beste Option. Dies liegt daran, dass Sie beim Einrichten von Benutzerpools auch automatisch sowohl die Authentifizierung als auch die Zugriffssteuerung einrichten.
Wenn Ihre Anwendung jedoch bereits eine Authentifizierung eingerichtet hat, ist die Verwendung von Lambda-Autorisierern möglicherweise die beste Option. Dies liegt daran, dass Sie Ihren vorhandenen Authentifizierungsdienst aufrufen und basierend auf der Antwort ein Richtliniendokument zurückgeben können. Wenn Ihre Anwendung eine benutzerdefinierte Authentifizierungs- oder Zugriffssteuerungslogik benötigt, die Benutzerpools nicht unterstützen, sind Lambda-Autorisierer möglicherweise die beste Option.
Wenn Sie ausgewählt haben, welcher Mechanismus verwendet werden soll, lesen Sie den entsprechenden Abschnitt unterBeispielefür die VerwendungAWS SAMum Ihre Anwendung so zu konfigurieren, dass sie diesen Mechanismus verwendet.
Anpassen von Fehlerantworten
Sie könnenAWS SAMum den Inhalt einiger API-Gateway-Fehlerantworten anzupassen. Nur dasAWS::Serverless::Api
Ressourcentyp unterstützt benutzerdefinierte API-Gateway-Antworten.
Weitere Informationen über API Gateway Gateway-Antworten finden Sie unterGateway-Antworten in API GatewayimEntwicklerhandbuchaus. Ein Beispiel für benutzerdefinierte Antworten finden Sie unterBeispiel für eine benutzerdefinierte Antwortaus.