翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ApiFunctionAuth
特定の API、パス、およびメソッドに対して、イベントレベルで認可を設定します。
構文
AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。
YAML
ApiKeyRequired:BooleanAuthorizationScopes:ListAuthorizer:StringInvokeRole:StringOverrideApiAuth:BooleanResourcePolicy:ResourcePolicyStatement
プロパティ
-
ApiKeyRequired -
この API、パス、およびメソッドの API キーが必要です。
型: ブール
必須: いいえ
CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 CloudFormation 同等のものはありません。
-
この API、パス、およびメソッドに適用する認可スコープです。
指定するスコープは、
DefaultAuthorizerプロパティが適用するスコープ (指定されている場合) を上書きします。タイプ: リスト
必須: いいえ
CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 CloudFormation 同等のものはありません。
-
特定の関数用の
Authorizerです。AWS::Serverless::Apiリソースにグローバルオーソライザーが指定されている場合は、AuthorizerをNONEに設定することでオーソライザーをオーバーライドできます。例については、Amazon API Gateway REST API のグローバルオーソライザーをオーバーライドするを参照してください。注記
AWS::Serverless::ApiリソースのDefinitionBodyプロパティを使用して API を記述する場合は、AuthorizerでOverrideApiAuthを使用してグローバルオーソライザーをオーバーライドする必要があります。詳細については「OverrideApiAuth」を参照してください。有効な値: テンプレートで定義されているオーソライザーの
AWS_IAMNONE論理 ID AWS SAM 。タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 CloudFormation 同等のものはありません。
-
InvokeRole -
AWS_IAM認可に使用するInvokeRoleを指定します。タイプ: 文字列
必須: いいえ
デフォルト:
CALLER_CREDENTIALSCloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 CloudFormation 同等のものはありません。
追加のメモ:
CALLER_CREDENTIALSはarn:aws:iam::にマップします。これは、発信者の認証情報を使用してエンドポイントを呼び出します。:<user>/ OverrideApiAuth-
trueリソースのグローバルオーソライザー設定をオーバーライドするには、AWS::Serverless::Apiを指定します。このプロパティは、グローバルオーソライザーを指定し、AWS::Serverless::ApiリソースのDefinitionBodyプロパティを使用して API を記述する場合にのみ必要です。注記
OverrideApiAuthとして を指定するとtrue、 AWS SAM は、、ApiKeyRequired、Authorizerまたは に指定された値でグローバルオーソライザーを上書きしますResourcePolicy。したがって、OverrideApiAuthを使用するときには、これらのプロパティを少なくとも 1 つ指定する必要もあります。例については、 AWS:: Serverless:: Apiの DefinitionBody が指定されている場合にグローバルオーソライザーをオーバーライドするを参照してください。型: ブール
必須: いいえ
CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。
-
ResourcePolicy -
この API のパスのためのリソースポリシーを設定します。
必須: いいえ
CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 CloudFormation 同等のものはありません。
例
Function-Auth
以下の例は、関数レベルで認可を指定します。
YAML
Auth: ApiKeyRequired: true Authorizer: NONE
Amazon API Gateway REST API のグローバルオーソライザーをオーバーライドする
AWS::Serverless::Api リソースにグローバルオーソライザーを指定できます。以下は、デフォルトのグローバルオーソライザーの設定例です。
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
AWS Lambda 関数のデフォルトのオーソライザーを上書きするには、 を Authorizerとして指定しますNONE。以下に例を示します。
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
AWS:: Serverless:: Apiの DefinitionBody が指定されている場合にグローバルオーソライザーをオーバーライドする
DefinitionBody プロパティを使用して AWS::Serverless::Api リソースを記述する場合、以前のオーバーライドメソッドは機能しません。以下は、AWS::Serverless::Api リソースの DefinitionBody プロパティを使用する例です。
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
グローバルオーソライザーをオーバーライドするには、OverrideApiAuth プロパティを使用します。以下は、OverrideApiAuth を使用してグローバルオーソライザーを 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