AWS CDK Cognito (v1)

1.204.0 · maintenance · verified Fri Apr 17

The `aws-cdk-aws-cognito` library provides AWS Cloud Development Kit (CDK) constructs for defining AWS Cognito resources programmatically. This specific package and version (1.204.0) are part of the AWS CDK v1 ecosystem, where construct libraries for individual AWS services were distributed as separate PyPI packages. AWS CDK generally follows a rapid release cadence, often with weekly or bi-weekly updates aligning with new AWS service features and bug fixes.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to define a basic AWS Cognito User Pool and a User Pool Client using `aws-cdk-aws-cognito` within an AWS CDK v1 application. It sets up email as a sign-in alias, requires email verification, and enforces a strong password policy. The User Pool ID and Client ID are exported as CloudFormation outputs.

import aws_cdk as cdk
from aws_cdk import aws_cognito as cognito
from constructs import Construct

class MyCognitoStack(cdk.Stack):
    def __init__(self, scope: Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        # Create an AWS Cognito User Pool
        user_pool = cognito.UserPool(self, "MyApplicationUserPool",
            user_pool_name="MyWebAppUsers",
            sign_in_aliases=cognito.SignInAliases(email=True),
            standard_attributes=cognito.StandardAttributes(
                email=cognito.StandardAttribute(required=True, mutable=True)
            ),
            auto_verify=cognito.AutoVerifiedAttrs.EMAIL,
            password_policy=cognito.UserPoolPasswordPolicy(
                min_length=8,
                require_lowercase=True,
                require_uppercase=True,
                require_digits=True,
                require_symbols=True
            )
        )

        # Create a User Pool Client for web applications
        user_pool_client = cognito.UserPoolClient(self, "MyWebAppClient",
            user_pool=user_pool,
            generate_secret=False, # Typically False for client-side applications
            supported_identity_providers=[
                cognito.UserPoolClientIdentityProvider.COGNITO
            ]
        )

        cdk.CfnOutput(self, "UserPoolIdOutput", value=user_pool.user_pool_id)
        cdk.CfnOutput(self, "UserPoolClientIdOutput", value=user_pool_client.user_pool_client_id)

# Instantiate the CDK App and Stack
app = cdk.App()
MyCognitoStack(app, "MyCognitoV1Stack")
app.synth()

view raw JSON →