AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

AWS::ApiGateway::Authorizer

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

構文

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

JSON

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

YAML

Type: AWS::ApiGateway::Authorizer Properties: AuthType: String AuthorizerCredentials: String AuthorizerResultTtlInSeconds: Integer AuthorizerUri: String IdentitySource: String IdentityValidationExpression: String Name: String ProviderARNs: - String RestApiId: String Type: String

プロパティ

AuthType

機能に影響を与えずに OpenApi インポートおよびエクスポートで使用されるオプションの顧客定義のフィールド。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

AuthorizerCredentials

認証に必要な認証情報。API Gateway が引き受ける IAM ロールを指定するには、ロールの Amazon リソースネーム (ARN) を指定します。Lambda 関数でリソースベースのアクセス許可を使用するには、null を指定します。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

AuthorizerResultTtlInSeconds

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

必須: いいえ

タイプ: 整数

Update requires: No interruption

AuthorizerUri

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

必須: 条件付き

タイプ: 文字列

Update requires: No interruption

IdentitySource

受信リクエストの ID のソース。

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

Type プロパティに REQUEST を指定した場合は、method.request.parameter.name のフォームを使用して、指定したリクエストパラメータの 1 つ以上のマッピング式のカンマ区切り文字列を指定してください。サポートされているパラメータのタイプについては、API Gateway 開発者ガイドの「API Gateway コンソールを使用して Lambda オーソライザーを設定する」を参照してください。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

IdentityValidationExpression

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

必須: いいえ

タイプ: 文字列

Update requires: No interruption

Name

認証の名前。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

ProviderARNs

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

必須: いいえ

タイプ: 文字列のリスト

Update requires: No interruption

RestApiId

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

必須: はい

タイプ: 文字列

Update requires: Replacement

Type

オーソライザーのタイプ。有効な値を次に示します。

  • TOKEN: Lambda 関数を使用するカスタムオーソライザー。

  • COGNITO_USER_POOLS: Amazon Cognito ユーザープールを使用するオーソライザー。

  • REQUEST: 受信リクエストパラメータで Lambda 関数を使用するオーソライザー。

必須: はい

タイプ: 文字列

Update requires: No interruption

戻り値

参照番号

abcde1 など、オーソライザーの ID このリソースの論理 ID を組み込みの Ref 関数に渡すと、Ref が返ります。。

For more information about using the Ref function, see Ref.

オーソライザーを作成する

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

JSON

{ "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

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

以下の資料も参照してください。