aws-cognito-apigateway-lambda
Reference Documentation: | https://docs.aws.amazon.com/solutions/latest/constructs/ |
Language | Package |
---|---|
|
|
|
|
|
|
Overview
This AWS Solutions Construct implements an Amazon Cognito securing an Amazon API Gateway Lambda backed REST APIs pattern.
Here is a minimal deployable pattern definition:
If you are defining resources and methods on your API (e.g. proxy = false), then you must call addAuthorizers() after the API is fully defined to ensure every method is protected. Here is an example:
Pattern Construct Props
Name | Type | Description |
---|---|---|
existingLambdaObj? |
Existing instance of Lambda Function object, providing both this and
|
|
lambdaFunctionProps? |
User provided props to override the default props for the Lambda function. |
|
apiGatewayProps? |
Optional user provided props to override the default props for API Gateway |
|
cognitoUserPoolProps? |
Optional user provided props to override the default props for Cognito User Pool |
|
cognitoUserPoolClientProps? |
Optional user provided props to override the default props for Cognito User Pool Client |
|
logGroupProps? |
User provided props to override the default props for for the CloudWatchLogs LogGroup. |
Pattern Properties
Name | Type | Description |
---|---|---|
userPool |
Returns an instance of cognito.UserPool created by the construct |
|
userPoolClient |
Returns an instance of cognito.UserPoolClient created by the construct |
|
apiGateway |
Returns an instance of api.RestApi created by the construct |
|
apiGatewayCloudWatchRole? |
Returns an instance of the iam.Role created by the construct for API Gateway for CloudWatch access. |
|
apiGatewayLogGroup |
Returns an instance of the LogGroup created by the construct for API Gateway access logging to CloudWatch. |
|
apiGatewayAuthorizer |
Returns an instance of the api.CfnAuthorizer created by the construct for API Gateway methods authorization. |
|
lambdaFunction |
Returns an instance of lambda.Function created by the construct |
Default settings
Out of the box implementation of the Construct without any override will set the following defaults:
Amazon Cognito
-
Set password policy for User Pools
-
Enforce the advanced security mode for User Pools
Amazon API Gateway
-
Deploy an edge-optimized API endpoint
-
Enable CloudWatch logging for API Gateway
-
Configure least privilege access IAM role for API Gateway
-
Set the default authorizationType for all API methods to Cognito User Pool
-
Enable X-Ray Tracing
AWS Lambda Function
-
Configure limited privilege access IAM role for Lambda function
-
Enable reusing connections with Keep-Alive for NodeJs Lambda function
-
Enable X-Ray Tracing
-
Set Environment Variables
-
AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)
-
Architecture

Github
Go to the Github repo