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