ApiFunctionAuth - 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.

ApiFunctionAuth

Konfiguriert die Autorisierung auf Ereignisebene für eine bestimmte API, einen bestimmten Pfad und eine Methode.

Syntax

Verwenden Sie die folgende Syntax, um diese Entität in Ihrer Vorlage AWS Serverless Application Model (AWS SAM) zu deklarieren.

Eigenschaften

ApiKeyRequired

Erfordert einen API-Schlüssel für diese API, diesen Pfad und diese Methode.

Typ: Boolesch

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

AuthorizationScopes

Die Autorisierungsbereiche, die für diese API, diesen Pfad und diese Methode gelten sollen.

Die von Ihnen angegebenen Bereiche haben Vorrang vor allen Bereichen, die von der DefaultAuthorizer Eigenschaft angewendet werden, sofern Sie sie angegeben haben.

Typ: Liste

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

Authorizer

Die Authorizer für eine bestimmte Funktion.

Wenn Sie für Ihre AWS::Serverless::Api Ressource einen globalen Autorisierer angegeben haben, können Sie den Autorisierer überschreiben, indem Sie auf setzenAuthorizer. NONE Ein Beispiel finden Sie unter Überschreiben Sie einen globalen Autorisierer für Ihre Amazon API Gateway Gateway-REST-API.

Anmerkung

Wenn Sie die DefinitionBody Eigenschaft einer AWS::Serverless::Api Ressource verwenden, um Ihre API zu beschreiben, müssen Sie OverrideApiAuth with verwenden, um Ihren globalen Authorizer Autorisierer zu überschreiben. Weitere Informationen finden Sie unter OverrideApiAuth.

Gültige Werte: AWS_IAMNONE, oder die logische ID für jeden in Ihrer AWS SAM Vorlage definierten Autorisierer.

Typ: Zeichenfolge

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

InvokeRole

Gibt an, welche für InvokeRole die AWS_IAM Autorisierung verwendet werden soll.

Typ: Zeichenfolge

Required: No

Standardwert: CALLER_CREDENTIALS

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

Zusätzliche Hinweise: CALLER_CREDENTIALS Mappings toarn:aws:iam::*:user/*, das die Anmeldeinformationen des Anrufers verwendet, um den Endpunkt aufzurufen.

OverrideApiAuth

Geben Sie true an, ob die globale Autorisierungskonfiguration Ihrer Ressource überschrieben werden soll. AWS::Serverless::Api Diese Eigenschaft ist nur erforderlich, wenn Sie einen globalen Autorisierer angeben und die DefinitionBody Eigenschaft einer AWS::Serverless::Api Ressource verwenden, um Ihre API zu beschreiben.

Anmerkung

Wenn Sie OverrideApiAuth als angebentrue, AWS SAM wird Ihr globaler Autorisierer mit allen für ApiKeyRequiredAuthorizer, oder angegebenen Werten überschrieben. ResourcePolicy Daher muss bei der Verwendung OverrideApiAuth mindestens eine dieser Eigenschaften ebenfalls angegeben werden. Ein Beispiel finden Sie unter Überschreiben Sie einen globalen Autorisierer, wenn DefinitionBody für AWS::Serverless::Api angegeben ist.

Typ: Boolesch

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

ResourcePolicy

Konfigurieren Sie die Ressourcenrichtlinie für diesen Pfad auf einer API.

Typ: ResourcePolicyStatement

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

Beispiele

Funktions-Auth

Das folgende Beispiel spezifiziert die Autorisierung auf Funktionsebene.

YAML

Auth: ApiKeyRequired: true Authorizer: NONE

Überschreiben Sie einen globalen Autorisierer für Ihre Amazon API Gateway Gateway-REST-API

Sie können einen globalen Autorisierer für Ihre AWS::Serverless::Api Ressource angeben. Im Folgenden finden Sie ein Beispiel für die Konfiguration eines globalen Standardautorisierers:

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth

Um den Standardautorisierer für Ihre AWS Lambda Funktion zu überschreiben, können Sie als angeben. Authorizer NONE Im Folgenden wird ein Beispiel gezeigt:

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: ... MyFn: Type: AWS::Serverless::Function Properties: ... Events: LambdaRequest: Type: Api Properties: RestApiId: !Ref MyApiWithLambdaRequestAuth Method: GET Auth: Authorizer: NONE

Überschreiben Sie einen globalen Autorisierer, wenn DefinitionBody für AWS::Serverless::Api angegeben ist

Wenn Sie die DefinitionBody Eigenschaft zur Beschreibung Ihrer AWS::Serverless::Api Ressource verwenden, funktioniert die vorherige Override-Methode nicht. Im Folgenden finden Sie ein Beispiel für die Verwendung der DefinitionBody Eigenschaft für eine AWS::Serverless::Api Ressource:

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... DefinitionBody: swagger: 2.0 ... paths: /lambda-request: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth

Verwenden Sie die OverrideApiAuth Eigenschaft, um den globalen Autorisierer zu überschreiben. Im Folgenden finden Sie ein Beispiel, das verwendet wird, OverrideApiAuth um den globalen Autorisierer mit dem für angegebenen Wert zu überschreiben: Authorizer

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... DefinitionBody: swagger: 2-0 ... paths: /lambda-request: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth MyAuthFn: Type: AWS::Serverless::Function ... MyFn: Type: AWS::Serverless::Function Properties: ... Events: LambdaRequest: Type: Api Properties: RestApiId: !Ref MyApiWithLambdaRequestAuth Method: GET Auth: Authorizer: NONE OverrideApiAuth: true Path: /lambda-token