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_IAMNONE、または AWS SAM テンプレートで定義されているオーソライザーの論理 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 を記述する場合にのみ必要です。

注記

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

タイプ: ブール

必須: いいえ

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 関数のデフォルトのオーソライザーをオーバーライドするには、AuthorizerNONE に指定します。以下に例を示します。

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

DefinitionBody for が指定されている場合にグローバルオーソライザーを上書き AWS::Serverless::Api する

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