メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::ApiGateway::Authorizer

AWS::ApiGateway::Authorizer リソースは、認証が有効になったメソッド用に Amazon API Gateway (API Gateway) がアクティブ化する認証レイヤーを作成します。API Gateway は、クライアントがそれらのメソッドを呼び出すと認証をアクティブ化します。

構文

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

JSON

Copy
{ "Type" : "AWS::ApiGateway::Authorizer", "Properties" : { "AuthorizerCredentials" : String, "AuthorizerResultTtlInSeconds" : Integer, "AuthorizerUri" : String, "IdentitySource" : String, "IdentityValidationExpression" : String, "Name" : String, "ProviderARNs" : [ String, ... ], "RestApiId" : String, "Type" : String } }

YAML

Copy
Type: "AWS::ApiGateway::Authorizer" Properties: AuthorizerCredentials: String AuthorizerResultTtlInSeconds: Integer AuthorizerUri: String IdentitySource: String IdentityValidationExpression: String Name: String ProviderARNs: - 文字列 RestApiId: String Type: String

プロパティ

AuthorizerCredentials

認証に必要な認証情報。API Gateway が引き受ける AWS Identity and Access Management (IAM) ロールを指定するには、ロールの Amazon リソースネーム (ARN) を指定します。AWS Lambda (Lambda) 関数でリソースベースの権限を使用するには、null を指定します。

Required: No

Type: String

更新に伴う要件: 中断はありません。

AuthorizerResultTtlInSeconds

API Gateway が認証結果をキャッシュする時間を指定する有効期限 (TTL) (秒) です。0 より大きい値を指定した場合、API Gateway は認証レスポンスをキャッシュします。デフォルトでは、API Gateway はこのプロパティを 300 に設定します。最大値は 3600、つまり 1 時間です。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

AuthorizerUri

認証の Uniform Resource Identifier (URI)。認証の Type プロパティに TOKEN を指定した場合、Lambda 関数の URI を指定します。形式は、arn:aws:apigateway:region:lambda:path/path です。パスの形式は通常 /2015-03-31/functions/LambdaFunctionARN/invocations です。

Required: Conditional。Lambda 関数に対してのみこのプロパティを指定します。

Type: String

更新に伴う要件: 中断はありません。

IdentitySource

受信リクエストの ID のソース。認証の Type プロパティに TOKEN を指定した場合、マッピング式を指定します。カスタムヘッダーのマッピング式の形式は、method.request.header.name です。name は、クライアントがそのリクエストの一部として送信するカスタム認証ヘッダーの名前です。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

IdentityValidationExpression

入力のアイデンティティの検証表現。認証の Type プロパティに TOKEN を指定した場合、正規表現を指定します。API Gateway は、この式を使用して受信クライアントトークンの一致を調べ、トークンが一致した場合は続行します。トークンが一致しない場合、API Gateway は、401 (リクエスト未承認) エラーコードで応答します。

Required: No

Type: String

更新に伴う要件: 中断はありません。

Name

認証の名前。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

ProviderARNs

この認証と関連付るユーザープールの Amazon Cognito Amazon リソースネーム (ARN) のリスト。詳細については、API Gateway 開発者ガイド の「Amazon Cognito ユーザープールの使用」を参照してください。

Required: No

Type: List of String values

更新に伴う要件: 中断はありません。

RestApiId

API Gateway が認証を作成する RestApi リソースの ID。

Required: Yes

Type: String

更新に伴う要件: 置換

Type

認証のタイプ。

  • Lambda 関数を使用するカスタム認証には、TOKEN を使用します。

  • Amazon Cognito ユーザープールを使用する認証には、COGNITO_USER_POOLS を使用します。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref により abcde1 のような認証 ID が返されます。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

次の例では、AWS Lambda 関数であるカスタム認証を作成します。

JSON

Copy
"Authorizer": { "Type": "AWS::ApiGateway::Authorizer", "Properties": { "AuthorizerCredentials": { "Fn::GetAtt": ["LambdaInvocationRole", "Arn"] }, "AuthorizerResultTtlInSeconds": "300", "AuthorizerUri" : {"Fn::Join" : ["", [ "arn:aws:apigateway:", {"Ref" : "AWS::Region"}, ":lambda:path/2015-03-31/functions/", {"Fn::GetAtt" : ["LambdaAuthorizer", "Arn"]}, "/invocations" ]]}, "Type": "TOKEN", "IdentitySource": "method.request.header.Auth", "Name": "DefaultAuthorizer", "RestApiId": { "Ref": "RestApi" } } }

YAML

Copy
Authorizer: Type: "AWS::ApiGateway::Authorizer" Properties: AuthorizerCredentials: Fn::GetAtt: - "LambdaInvocationRole" - "Arn" AuthorizerResultTtlInSeconds: "300" AuthorizerUri: Fn::Join: - "" - - "arn:aws:apigateway:" - Ref: "AWS::Region" - ":lambda:path/2015-03-31/functions/" - Fn::GetAtt: - "LambdaAuthorizer" - "Arn" - "/invocations" Type: "TOKEN" IdentitySource: "method.request.header.Auth" Name: "DefaultAuthorizer" RestApiId: Ref: "RestApi"

このページの内容: