AWS::Cognito::UserPoolDomain - AWS CloudFormation

AWS::Cognito::UserPoolDomain

The AWS::Cognito::UserPoolDomain resource creates a new domain for a user pool.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::Cognito::UserPoolDomain", "Properties" : { "CustomDomainConfig" : CustomDomainConfigType, "Domain" : String, "UserPoolId" : String } }

YAML

Type: AWS::Cognito::UserPoolDomain Properties: CustomDomainConfig: CustomDomainConfigType Domain: String UserPoolId: String

Properties

CustomDomainConfig

The configuration for a custom domain that hosts the sign-up and sign-in pages for your application. Use this object to specify an SSL certificate that is managed by ACM.

When you create a custom domain, the passkey RP ID defaults to the custom domain. If you had a prefix domain active, this will cause passkey integration for your prefix domain to stop working due to a mismatch in RP ID. To keep the prefix domain passkey integration working, you can explicitly set RP ID to the prefix domain. Update the RP ID in a SetUserPoolMfaConfig request.

Required: No

Type: CustomDomainConfigType

Update requires: No interruption

Domain

The domain name for the custom domain that hosts the sign-up and sign-in pages for your application. One example might be auth.example.com.

This string can include only lowercase letters, numbers, and hyphens. Don't use a hyphen for the first or last character. Use periods to separate subdomain names.

Required: Yes

Type: String

Pattern: ^[a-z0-9](?:[a-z0-9\-]{0,61}[a-z0-9])?$

Minimum: 1

Maximum: 63

Update requires: Replacement

UserPoolId

The ID of the user pool that is associated with the custom domain whose certificate you're updating.

Required: Yes

Type: String

Pattern: [\w-]+_[0-9a-zA-Z]+

Minimum: 1

Maximum: 55

Update requires: Replacement

Return values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns physicalResourceId, which is “Domain". For example:

{ "Ref": "your-test-domain" }

For the Amazon Cognito user pool domain your-test-domain, Ref returns the name of the user pool domain.

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

Fn::GetAtt

The Fn::GetAtt intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the Fn::GetAtt intrinsic function, see Fn::GetAtt.

CloudFrontDistribution

The Amazon CloudFront endpoint that you use as the target of the alias that you set up with your Domain Name Service (DNS) provider.

Id

The resource ID.

Examples

Creating a new custom domain for a user pool

The following example creates a custom domain, "my-test-user-pool-domain", in the referenced user pool.

JSON

{ "UserPoolDomain":{ "Type":"AWS::Cognito::UserPoolDomain", "Properties":{ "UserPoolId":{ "Ref":"UserPool" }, "Domain":"my-test-user-pool-domain.myapplication.com", "CustomDomainConfig":{ "CertificateArn":{ "Ref":"CertificateArn" } } } } }

YAML

UserPoolDomain: Type: AWS::Cognito::UserPoolDomain Properties: UserPoolId: !Ref UserPool Domain: "my-test-user-pool-domain.myapplication.com" CustomDomainConfig: CertificateArn: !Ref CertificateArn

Creating a new default domain for a user pool

The following example creates a new default domain, "my-test-user-pool-domain", in the referenced user pool.

JSON

{ "UserPoolDomain":{ "Type":"AWS::Cognito::UserPoolDomain", "Properties":{ "UserPoolId":{ "Ref":"UserPool" }, "Domain":"my-test-user-pool-domain" } } }

YAML

UserPoolDomain: Type: AWS::Cognito::UserPoolDomain Properties: UserPoolId: !Ref UserPool Domain: "my-test-user-pool-domain"