ApiFunctionAuth - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ApiFunctionAuth

特定の API、パス、およびメソッドに対して、イベントレベルで認証を設定します。

構文

AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

プロパティ

ApiKeyRequired

この API、パス、およびメソッドの API キーが必要です。

タイプ: ブール

必須: いいえ

AWS CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 AWS CloudFormation 同等のプロパティはありません。

AuthorizationScopes

この API、パス、およびメソッドに適用する認証スコープです。

指定するスコープは、DefaultAuthorizer プロパティが適用するスコープ (指定されている場合) を上書きします。

タイプ: リスト

必須: いいえ

AWS CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 AWS CloudFormation 同等のプロパティはありません。

Authorizer

特定の関数用の Authorizer です。

AWS::Serverless::Api リソースにグローバルオーソライザーが指定されている場合は、AuthorizerNONE に設定することでオーソライザーをオーバーライドできます。例については、Amazon API Gateway REST API のグローバルオーソライザーをオーバーライドするを参照してください。

注記

AWS::Serverless::Api リソースの DefinitionBody プロパティを使用して API を記述する場合は、AuthorizerOverrideApiAuth を使用してグローバルオーソライザーをオーバーライドする必要があります。詳細については、「OverrideApiAuth」を参照してください。

有効な値: AWS SAM テンプレートで定義されているオーソライザーのAWS_IAMNONE論理 ID。

タイプ: 文字列

必須: いいえ

AWS CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 AWS CloudFormation 同等のプロパティはありません。

InvokeRole

InvokeRole 認証に使用する AWS_IAM を指定します。

タイプ: 文字列

必須: いいえ

デフォルト: CALLER_CREDENTIALS

AWS CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 AWS CloudFormation 同等のプロパティはありません。

追加のメモ: CALLER_CREDENTIALSarn:aws:iam::*:user/* にマップします。これは、発信者の認証情報を使用してエンドポイントを呼び出します。

OverrideApiAuth

true リソースのグローバルオーソライザー設定をオーバーライドするには、AWS::Serverless::Api を指定します。このプロパティは、グローバルオーソライザーを指定し、AWS::Serverless::Api リソースの DefinitionBody プロパティを使用して API を記述する場合にのみ必要です。

注記

OverrideApiAuth として を指定するとtrue、、ApiKeyRequiredAuthorizerまたは に指定された値でグローバルオーソライザーが上書き AWS SAM されますResourcePolicy。したがって、OverrideApiAuth を使用するときには、これらのプロパティを少なくとも 1 つ指定する必要もあります。例については、 for が指定されているときにグローバルオーソライザー AWS::Serverless::Api を上書き DefinitionBody するを参照してください。

タイプ: ブール

必須: いいえ

AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のプロパティはありません。

ResourcePolicy

この API のパスのためのリソースポリシーを設定します。

タイプ: ResourcePolicyStatement

必須: いいえ

AWS CloudFormation 互換性: このプロパティは に AWS SAM 固有であり、 AWS 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

for が指定されているときにグローバルオーソライザー 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