aws-コグニート-アピガテウェイ-ラムダ - AWS ソリューション構造

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

aws-コグニート-アピガテウェイ-ラムダ

すべてのクラスは積極的に開発されており、将来のバージョンでは下位互換性がない変更または削除の対象となります。これらは、セマンティックバージョン管理モデル。つまり、これらのパッケージを使用するかもしれませんが、このパッケージの新しいバージョンにアップグレードするときにソースコードを更新する必要があるかもしれません。

注意: 正しく機能するためには、プロジェクト内の AWS ソリューション構築パッケージと AWS CDK パッケージが同じバージョンである必要があります。

言語 パッケージ
Python
aws_solutions_constructs.aws_cognito_apigateway_lambda
活字体
@aws-solutions-constructs/aws-cognito-apigateway-lambda
Java
software.amazon.awsconstructs.services.cognitoapigatewaylambda

Overview

この AWS ソリューション構築物は、Amazon API Gateway ラムダでバックアップされた REST API を保護する Amazon Cognito を実装します。

TypeScript の最小限のデプロイ可能なパターン定義は次のとおりです。

import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cognito-apigateway-lambda'; new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { runtime: lambda.Runtime.NODEJS_14_X, // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' } });

APIでリソースとメソッドを定義している場合(例:proxy = false) を呼び出す必要があります。addAuthorizers()API が完全に定義された後にメソッドを呼び出します。これにより、API のすべてのメソッドが保護されます。

TypeScript tの例を次に示します。

import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cognito-apigateway-lambda'; const construct = new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), runtime: lambda.Runtime.NODEJS_12_X, handler: 'index.handler' }, apiGatewayProps: { proxy: false } }); const resource = construct.apiGateway.root.addResource('foobar'); resource.addMethod('POST'); // Mandatory to call this method to Apply the Cognito Authorizers on all API methods construct.addAuthorizers();

Initializer

new CognitoToApiGatewayToLambda(scope: Construct, id: string, props: CognitoToApiGatewayToLambdaProps);

パラメータ

パターン構成プロパティ

名前 タイプ 説明
ExistingLambdaObj? lambda.Function Lambda Functionオブジェクトの既存のインスタンス。これとlambdaFunctionPropsはエラーを発生させます。
LambdaFunctionProps? lambda.FunctionProps Lambda 関数のデフォルトプロパティを上書きするオプションのユーザー指定のプロパティ。場合は、無視されます。existingLambdaObjが提供される。
ApigateWayProps? api.LambdaRestApiProps API Gateway のデフォルトの小道具をオーバーライドするオプションのユーザーが提供した小道具を
CogniTouserPoolProps? cognito.UserPoolProps Cognito ユーザープールのデフォルトのプロップを上書きするオプションのユーザー提供の小道具
CognitouserPoolClientProps? cognito.UserPoolClientProps Cognito ユーザープールクライアントの既定のプロップを上書きするオプションのユーザー提供の小道具
LogGroupProps? logs.LogGroupProps CloudWatch Logs ロググループのデフォルトの小道具を上書きする、オプションのユーザー提供の小道具です。

パターンプロパティ

名前 タイプ 説明
apigateway api.RestApi パターンによって作成された API Gateway REST API のインスタンスを返します。
LambdaFunction lambda.Function パターンによって作成された Lambda 関数のインスタンスを返します。
UserPool cognito.UserPool パターンによって作成された Cognito ユーザープールのインスタンスを返します。
ユーザーPoolClient cognito.UserPoolClient パターンによって作成された Cognito ユーザープールクライアントのインスタンスを返します。
APIGatewayクラウドウォッチロール iam.Role API Gateway REST API から CloudWatch へのアクセスロギングを有効にするパターンによって作成された IAM ロールのインスタンスを返します。
APIGateWayLogGroup logs.LogGroup API Gateway REST API アクセスログが送信されるパターンによって作成されたロググループのインスタンスを返します。
APIGatewayAuthorizer api.CfnAuthorizer パターンによって作成された API Gateway 認証のインスタンスを返します。

デフォルト設定

オーバーライドなしでこのパターンをすぐに実装すると、次のデフォルトが設定されます。

Amazon Cognito

  • UserPools のパスワードポリシーを設定する

  • ユーザープールに高度なセキュリティモードを適用する

Amazon API Gateway

  • エッジ最適化 API エンドポイントのデプロイ

  • API Gateway での CloudWatch によるロギングを有効にする

  • API Gateway の最小権限アクセス IAM ロールを設定する

  • すべての API メソッドのデフォルトの authorizationType を IAM に設定する

  • X-Ray トレースを有効にする

AWS Lambda 関数

  • Lambda 関数の制限付き特権アクセス IAM ロールを設定する

  • NodeJS Lambda 関数のキープアライブを使用して接続を再利用できるようにする

  • X-Ray トレースを有効にする

  • 環境変数の設定:

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(ノード10.x以上の機能の場合)

Architecture

GitHub

このパターンのコードを表示するには、問題を作成/表示し、プル要求などを行います。
@aws-solutions-constructions/aws-cognito-apigateway-lambda