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.
YAML
ApiKeyRequired:
Boolean
AuthorizationScopes:List
Authorizer:String
InvokeRole:String
OverrideApiAuth:Boolean
ResourcePolicy:ResourcePolicyStatement
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.
-
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.
-
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 einerAWS::Serverless::Api
Ressource verwenden, um Ihre API zu beschreiben, müssen SieOverrideApiAuth
with verwenden, um Ihren globalenAuthorizer
Autorisierer zu überschreiben. Weitere Informationen finden Sie unterOverrideApiAuth
.Gültige Werte:
AWS_IAM
NONE
, 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
dieAWS_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 dieDefinitionBody
Eigenschaft einerAWS::Serverless::Api
Ressource verwenden, um Ihre API zu beschreiben.Anmerkung
Wenn Sie
OverrideApiAuth
als angebentrue
, AWS SAM wird Ihr globaler Autorisierer mit allen fürApiKeyRequired
Authorizer
, oder angegebenen Werten überschrieben.ResourcePolicy
Daher muss bei der VerwendungOverrideApiAuth
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.
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