Steuern API Sie den Zugriff mit Ihrer AWS SAM Vorlage - AWS Serverless Application Model

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 API Sie den Zugriff mit Ihrer AWS SAM Vorlage

Durch die Steuerung des Zugriffs auf Ihr API Gateway wird APIs sichergestellt, dass Ihre serverlose Anwendung sicher ist und nur mit der von Ihnen aktivierten Autorisierung darauf zugegriffen werden kann. Sie können die Autorisierung in Ihrer AWS SAM Vorlage aktivieren, um zu kontrollieren, wer auf Ihr API Gateway APIs zugreifen kann.

AWS SAM unterstützt mehrere Mechanismen zur Steuerung des Zugriffs auf Ihr API GatewayAPIs. Die unterstützten Mechanismen unterscheiden AWS::Serverless::HttpApi sich je nach AWS::Serverless::Api Ressourcentyp.

In der folgenden Tabelle sind die Mechanismen zusammengefasst, die von den einzelnen Ressourcentypen unterstützt werden.

Mechanismen zur Zugriffskontrolle AWS::Serverless::HttpApi AWS::Serverless::Api
Lambda-Autorisierer
IAMBerechtigungen
Amazon-Cognito-Benutzerpools ✓ *
APISchlüssel
Ressourcenrichtlinien
OAuth2.0/ Autorisierer JWT

* Sie können Amazon Cognito als JSON Web-Token (JWT) -Aussteller mit dem AWS::Serverless::HttpApi Ressourcentyp verwenden.

  • Lambda-Autorisierer — Ein Lambda-Autorisierer (früher bekannt als benutzerdefinierter Autorisierer) ist eine Lambda-Funktion, die Sie bereitstellen, um den Zugriff auf Ihre zu kontrollieren. API Wenn Ihr aufgerufen API wird, wird diese Lambda-Funktion mit einem Anforderungskontext oder einem Autorisierungstoken aufgerufen, das die Client-Anwendung bereitstellt. Die Lambda-Funktion gibt an, ob der Aufrufer berechtigt ist, den angeforderten Vorgang auszuführen.

    AWS::Serverless::HttpApiSowohl der Ressourcentyp als auch der AWS::Serverless::Api Ressourcentyp unterstützen Lambda-Autorisierer.

    Weitere Informationen zu Lambda-Autorisierern mit finden Sie unter Arbeiten mit AWS::Serverless::HttpApiAWS Lambda Autorisierern für HTTP APIs im Gateway Developer Guide. API Weitere Informationen zu Lambda-Autorisierern mit AWS::Serverless::Api finden Sie unter Verwenden von API Gateway-Lambda-Autorisierern im Gateway Developer Guide. API

    Beispiele für Lambda-Autorisierer für beide Ressourcentypen finden Sie unter. Beispiele für Lambda-Autorisierer für AWS SAM

  • IAMBerechtigungen — Sie können steuern, wer Ihre API using AWS Identity and Access Management () -Berechtigungen aufrufen kann. IAM Benutzer, die Sie anrufen, API müssen mit IAM Anmeldeinformationen authentifiziert werden. Aufrufe an Sie API sind nur erfolgreich, wenn dem IAM Benutzer, der den API Anrufer repräsentiert, eine IAM Richtlinie zugeordnet ist, eine IAM Gruppe, die den Benutzer enthält, oder eine IAM Rolle, die der Benutzer annimmt.

    Nur der AWS::Serverless::Api Ressourcentyp unterstützt IAM Berechtigungen.

    Weitere Informationen finden Sie unter Steuern des Zugriffs auf und API mit IAM Berechtigungen im APIGateway Developer Guide. Ein Beispiel finden Sie unter IAMBeispiel für eine Erlaubnis AWS SAM.

  • Amazon Cognito-Benutzerpools — Amazon Cognito Cognito-Benutzerpools sind Benutzerverzeichnisse in Amazon Cognito. Ein Kunde von Ihnen API muss zuerst einen Benutzer beim Benutzerpool anmelden und ein Identitäts- oder Zugriffstoken für den Benutzer erhalten. Dann ruft der Client Sie API mit einem der zurückgegebenen Token an. Der API Aufruf ist nur erfolgreich, wenn das erforderliche Token gültig ist.

    Der AWS::Serverless::Api Ressourcentyp unterstützt Amazon Cognito Cognito-Benutzerpools. Der AWS::Serverless::HttpApi Ressourcentyp unterstützt die Verwendung von Amazon Cognito als JWT Emittent.

    Weitere Informationen finden Sie unter Steuern des Zugriffs auf Benutzerpools, die Amazon Cognito als Autorisierer REST API verwenden, im APIGateway Developer Guide. Ein Beispiel finden Sie unter Beispiel für einen Amazon Cognito Cognito-Benutzerpool für AWS SAM.

  • APISchlüssel — API Schlüssel sind alphanumerische Zeichenkettenwerte, die Sie an Kunden von Anwendungsentwicklern verteilen, um Zugriff auf Ihre Schlüssel zu gewähren. API

    APISchlüssel werden nur vom AWS::Serverless::Api Ressourcentyp unterstützt.

    Weitere Informationen zu API Schlüsseln finden Sie unter Nutzungspläne mit API Schlüsseln erstellen und verwenden im APIGateway Developer Guide. Ein Beispiel für API Schlüssel finden Sie unterAPIwichtiges Beispiel für AWS SAM.

  • Ressourcenrichtlinien — Ressourcenrichtlinien sind JSON Richtliniendokumente, die Sie an ein API Gateway anhängen könnenAPI. Verwenden Sie Ressourcenrichtlinien, um zu steuern, ob ein bestimmter Prinzipal (normalerweise ein IAM Benutzer oder eine Rolle) den API aufrufen kann.

    Nur der AWS::Serverless::Api Ressourcentyp unterstützt Ressourcenrichtlinien als Mechanismus zur Steuerung des Zugriffs auf das API GatewayAPIs.

    Weitere Informationen zu Ressourcenrichtlinien finden Sie unter Steuern des Zugriffs auf und API mit API Gateway-Ressourcenrichtlinien im APIGateway Developer Guide. Ein Beispiel für Ressourcenrichtlinien finden Sie unterBeispiel für eine Ressourcenrichtlinie für AWS SAM.

  • OAuth2.0/ JWT Autorisierer — Sie können es JWTs als Teil der OpenID Connect (OIDC) - und OAuth2.0-Frameworks verwenden, um den Zugriff auf Ihre zu kontrollieren. APIs APIGateway validiert die AnfragenJWTs, die Kunden mit API Anfragen einreichen, und erlaubt oder verweigert Anfragen auf der Grundlage der Token-Validierung und optional der Gültigkeitsbereiche im Token.

    Nur der AWS::Serverless::HttpApi Ressourcentyp unterstützt OAuth 2.0/ Authorizer. JWT

    Weitere Informationen finden Sie unter Steuern des Zugriffs HTTP APIs mit JWT Autorisierern im Gateway Developer Guide. API Ein Beispiel finden Sie unter OAuth2.0/ JWT Authorizer-Beispiel für AWS SAM.

Auswahl eines Mechanismus zur Zugriffskontrolle

Der Mechanismus, den Sie für die Steuerung des Zugriffs auf Ihr API Gateway verwenden, APIs hängt von einigen Faktoren ab. Wenn Sie beispielsweise ein Projekt auf der grünen Wiese haben, für das weder Autorisierung noch Zugriffskontrolle eingerichtet sind, sind Amazon Cognito Cognito-Benutzerpools möglicherweise die beste Option. Das liegt daran, dass Sie bei der Einrichtung von Benutzerpools auch automatisch sowohl die Authentifizierung als auch die Zugriffskontrolle einrichten.

Wenn für Ihre Anwendung jedoch bereits eine Authentifizierung eingerichtet ist, ist die Verwendung von Lambda-Autorisierern möglicherweise die beste Option. Dies liegt daran, dass Sie Ihren bestehenden Authentifizierungsdienst anrufen und auf der Grundlage der Antwort ein Richtliniendokument zurücksenden können. Wenn Ihre Anwendung eine benutzerdefinierte Authentifizierungs- oder Zugriffskontrolllogik erfordert, die Benutzerpools nicht unterstützen, sind Lambda-Autorisierer möglicherweise die beste Option.

Wenn Sie den zu verwendenden Mechanismus ausgewählt haben, finden Sie im entsprechenden Abschnitt unter Informationen AWS SAM zur Konfiguration Ihrer Anwendung Beispiele für die Verwendung dieses Mechanismus.

Anpassen von Fehlerantworten

Sie können AWS SAM damit den Inhalt einiger API Gateway-Fehlerantworten anpassen. Nur der AWS::Serverless::Api Ressourcentyp unterstützt benutzerdefinierte API Gateway-Antworten.

Weitere Informationen zu API Gateway-Antworten finden Sie unter Gateway-Antworten in API Gateway im APIGateway Developer Guide. Ein Beispiel für maßgeschneiderte Antworten finden Sie unterBeispiel für eine benutzerdefinierte Antwort für AWS SAM.

Beispiele