create_user_pool
¶
create_user_pool(
pool_name: UserPoolNameType,
*,
config_overrides: Optional[CognitoIdentityProviderClientConfig] = None,
policies: Optional[UserPoolPolicyType] = None,
deletion_protection: Optional[DeletionProtectionType] = None,
lambda_config: Optional[LambdaConfigType] = None,
auto_verified_attributes: Optional[VerifiedAttributesListType] = None,
alias_attributes: Optional[AliasAttributesListType] = None,
username_attributes: Optional[UsernameAttributesListType] = None,
sms_verification_message: Optional[SmsVerificationMessageType] = None,
email_verification_message: Optional[EmailVerificationMessageType] = None,
email_verification_subject: Optional[EmailVerificationSubjectType] = None,
verification_message_template: Optional[VerificationMessageTemplateType] = None,
sms_authentication_message: Optional[SmsVerificationMessageType] = None,
mfa_configuration: Optional[UserPoolMfaType] = None,
user_attribute_update_settings: Optional[UserAttributeUpdateSettingsType] = None,
device_configuration: Optional[DeviceConfigurationType] = None,
email_configuration: Optional[EmailConfigurationType] = None,
sms_configuration: Optional[SmsConfigurationType] = None,
user_pool_tags: Optional[UserPoolTagsType] = None,
admin_create_user_config: Optional[AdminCreateUserConfigType] = None,
schema: Optional[SchemaAttributesListType] = None,
user_pool_add_ons: Optional[UserPoolAddOnsType] = None,
username_configuration: Optional[UsernameConfigurationType] = None,
account_recovery_setting: Optional[AccountRecoverySettingType] = None,
user_pool_tier: Optional[UserPoolTierType] = None,
key_configuration: Optional[KeyConfigurationType] = None,
issuer_configuration: Optional[IssuerConfigurationType] = None,
acr_configuration: Optional[AcrConfigurationType] = None,
) -> CreateUserPoolResponse
Creates a new Amazon Cognito user pool. This operation sets basic and advanced configuration options.
If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.
This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.
If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.
Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.
Learn more
Parameters:
-
pool_name(UserPoolNameType) –A friendly name for your user pool.
-
policies(Optional[UserPoolPolicyType], default:None) –The password policy and sign-in policy in the user pool. The password policy sets options like password complexity requirements and password history. The sign-in policy sets the options available to applications in choice-based authentication.
-
deletion_protection(Optional[DeletionProtectionType], default:None) –When active,
DeletionProtectionprevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature.When you try to delete a protected user pool in a
DeleteUserPoolAPI request, Amazon Cognito returns anInvalidParameterExceptionerror. To delete a protected user pool, send a newDeleteUserPoolrequest after you deactivate deletion protection in anUpdateUserPoolAPI request. -
lambda_config(Optional[LambdaConfigType], default:None) –A collection of user pool Lambda triggers. Amazon Cognito invokes triggers at several possible stages of authentication operations. Triggers can modify the outcome of the operations that invoked them.
-
auto_verified_attributes(Optional[VerifiedAttributesListType], default:None) –The attributes that you want your user pool to automatically verify. For more information, see Verifying contact information at sign-up.
-
alias_attributes(Optional[AliasAttributesListType], default:None) –Attributes supported as an alias for this user pool. For more information about alias attributes, see Customizing sign-in attributes.
-
username_attributes(Optional[UsernameAttributesListType], default:None) –Specifies whether a user can use an email address or phone number as a username when they sign up. For more information, see Customizing sign-in attributes.
-
sms_verification_message(Optional[SmsVerificationMessageType], default:None) –This parameter is no longer used.
-
email_verification_message(Optional[EmailVerificationMessageType], default:None) –This parameter is no longer used.
-
email_verification_subject(Optional[EmailVerificationSubjectType], default:None) –This parameter is no longer used.
-
verification_message_template(Optional[VerificationMessageTemplateType], default:None) –The template for the verification message that your user pool delivers to users who set an email address or phone number attribute.
Set the email message type that corresponds to your
DefaultEmailOptionselection. ForCONFIRM_WITH_LINK, specify anEmailMessageByLinkand leaveEmailMessageblank. ForCONFIRM_WITH_CODE, specify anEmailMessageand leaveEmailMessageByLinkblank. When you supply both parameters with either choice, Amazon Cognito returns an error. -
sms_authentication_message(Optional[SmsVerificationMessageType], default:None) –The contents of the SMS message that your user pool sends to users in SMS OTP and MFA authentication.
-
mfa_configuration(Optional[UserPoolMfaType], default:None) –Sets multi-factor authentication (MFA) to be on, off, or optional. When
ON, all users must set up MFA before they can sign in. WhenOPTIONAL, your application must make a client-side determination of whether a user wants to register an MFA device. For user pools with adaptive authentication with threat protection, chooseOPTIONAL.When
MfaConfigurationisOPTIONAL, managed login doesn't automatically prompt users to set up MFA. Amazon Cognito generates MFA prompts in API responses and in managed login for users who have chosen and configured a preferred MFA factor.The
CreateUserPooloperation supports only SMS MFA configuration. If you setMfaConfigurationto either of these values, include anSmsConfigurationin the same request:-
ON– Requires MFA for all users -
OPTIONAL– Makes MFA optional for each user
If you omit
SmsConfiguration, the operation returns anInvalidParameterException. To configure TOTP or email MFA, use the SetUserPoolMfaConfig operation. You can also useSetUserPoolMfaConfigto add MFA factors later. -
-
user_attribute_update_settings(Optional[UserAttributeUpdateSettingsType], default:None) –The settings for updates to user attributes. These settings include the property
AttributesRequireVerificationBeforeUpdate, a user-pool setting that tells Amazon Cognito how to handle changes to the value of your users' email address and phone number attributes. For more information, see Verifying updates to email addresses and phone numbers. -
device_configuration(Optional[DeviceConfigurationType], default:None) –The device-remembering configuration for a user pool. Device remembering or device tracking is a "Remember me on this device" option for user pools that perform authentication with the device key of a trusted device in the back end, instead of a user-provided MFA code. For more information about device authentication, see Working with user devices in your user pool. A null value indicates that you have deactivated device remembering in your user pool.
When you provide a value for any
DeviceConfigurationfield, you activate the Amazon Cognito device-remembering feature. For more information, see Working with devices. -
email_configuration(Optional[EmailConfigurationType], default:None) –The email configuration of your user pool. The email configuration type sets your preferred sending method, Amazon Web Services Region, and sender for messages from your user pool.
-
sms_configuration(Optional[SmsConfigurationType], default:None) –The settings for your Amazon Cognito user pool to send SMS messages with Amazon Simple Notification Service. To send SMS messages with Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and Access Management (IAM) role in your Amazon Web Services account. For more information see SMS message settings.
-
user_pool_tags(Optional[UserPoolTagsType], default:None) –The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria.
-
admin_create_user_config(Optional[AdminCreateUserConfigType], default:None) –The configuration for administrative creation of users. Includes the template for the invitation message for new users, the duration of temporary passwords, and permitting self-service sign-up.
-
schema(Optional[SchemaAttributesListType], default:None) –An array of attributes for the new user pool. You can add custom attributes and modify the properties of default attributes. The specifications in this parameter set the required attributes in your user pool. For more information, see Working with user attributes.
-
user_pool_add_ons(Optional[UserPoolAddOnsType], default:None) –Contains settings for activation of threat protection, including the operating mode and additional authentication types. To log user security information but take no action, set to
AUDIT. To configure automatic security responses to potentially unwanted traffic to your user pool, set toENFORCED.For more information, see Adding advanced security to a user pool. To activate this setting, your user pool must be on the Plus tier.
-
username_configuration(Optional[UsernameConfigurationType], default:None) –Sets the case sensitivity option for sign-in usernames. When
CaseSensitiveisfalse(case insensitive), users can sign in with any combination of capital and lowercase letters. For example,username,USERNAME, orUserName, or for email,[email protected]or[email protected]. For most use cases, set case sensitivity tofalseas a best practice. When usernames and email addresses are case insensitive, Amazon Cognito treats any variation in case as the same user, and prevents a case variation from being assigned to the same attribute for a different user.When
CaseSensitiveistrue(case sensitive), Amazon Cognito interpretsUSERNAMEandUserNameas distinct users.This configuration is immutable after you set it.
-
account_recovery_setting(Optional[AccountRecoverySettingType], default:None) –The available verified method a user can use to recover their password when they call
ForgotPassword. You can use this setting to define a preferred method when a user has more than one method available. With this setting, SMS doesn't qualify for a valid password recovery mechanism if the user also has SMS multi-factor authentication (MFA) activated. Email MFA is also disqualifying for account recovery with email. In the absence of this setting, Amazon Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.As a best practice, configure both
verified_emailandverified_phone_number, with one having a higher priority than the other. -
user_pool_tier(Optional[UserPoolTierType], default:None) –The user pool feature plan, or tier. This parameter determines the eligibility of the user pool for features like managed login, access-token customization, and threat protection. Defaults to
ESSENTIALS. -
key_configuration(Optional[KeyConfigurationType], default:None) –The key configuration for the user pool. Specifies the key type and KMS key ARN for encryption.
-
issuer_configuration(Optional[IssuerConfigurationType], default:None) –The issuer configuration for the user pool. Specifies the issuer type for token generation.
-
acr_configuration(Optional[AcrConfigurationType], default:None) –The custom names for the authentication context class reference (ACR) levels in your user pool. Amazon Cognito defines four fixed ACR levels that represent increasing authentication assurance. The combination of authentication factors that satisfies each level is fixed and you can't change it. With this configuration, you customize only the URI name that Amazon Cognito reports for each level in the
acrtoken claim.You can override a subset of the levels. By default, the levels are named
urn:cognito:loa:1throughurn:cognito:loa:4, and Amazon Cognito applies the default name to any level that you don't specify. Each name must be unique across all four levels, including any default names that apply to levels you don't override. A name can contain any character that is valid in a URL or a URN.Configuring custom ACR level names requires the Essentials or Plus feature plan. To activate this setting, your user pool must be in the Essentials tier or higher.
Raises:
-
FeatureUnavailableInTierException–This exception is thrown when a feature that you attempted to use or configure isn't included in your user pool's current feature plan. This can occur when:
-
You configure a feature that your feature plan doesn't support.
-
You make a request that uses a feature that requires a higher feature plan.
To resolve this issue, upgrade your user pool to a feature plan that includes the feature.
-
-
InternalErrorException–This exception is thrown when Amazon Cognito encounters an internal error.
-
InvalidEmailRoleAccessPolicyException–This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400.
-
InvalidParameterException–This exception is thrown when the Amazon Cognito service encounters an invalid parameter.
-
InvalidSmsRoleAccessPolicyException–This exception is returned when the role provided for SMS configuration doesn't have permission to publish using Amazon SNS.
-
InvalidSmsRoleTrustRelationshipException–This exception is thrown when the trust relationship is not valid for the role provided for SMS configuration. This can happen if you don't trust
cognito-idp.amazonaws.comor the external ID provided in the role does not match what is provided in the SMS configuration for the user pool. -
LimitExceededException–This exception is thrown when a user exceeds the limit for a requested Amazon Web Services resource.
-
NotAuthorizedException–This exception is thrown when a user isn't authorized.
-
TierChangeNotAllowedException–This exception is thrown when you've attempted to change your feature plan but the operation isn't permitted.
-
TooManyRequestsException–This exception is thrown when the user has made too many requests for a given operation.
-
UserPoolTaggingException–This exception is thrown when a user pool tag can't be set or updated.
-
UnknownServiceError–The service returned an error code this client does not model.
Examples:
Example user pool with email and username sign-in The following example creates a user pool with all configurable properties set to an example value. The resulting user pool allows sign-in with username or email address, has optional MFA, and has a Lambda function assigned to each possible trigger.
>>> client.create_user_pool(account_recovery_setting={'RecoveryMechanisms': [{'Name': 'verified_email', 'Priority': 1}]}, admin_create_user_config={'AllowAdminCreateUserOnly': False, 'InviteMessageTemplate': {'EmailMessage': 'Your username is {username} and temporary password is {####}.', 'EmailSubject': 'Your sign-in information', 'SMSMessage': 'Your username is {username} and temporary password is {####}.'}}, alias_attributes=['email'], auto_verified_attributes=['email'], device_configuration={'ChallengeRequiredOnNewDevice': True, 'DeviceOnlyRememberedOnUserPrompt': True}, deletion_protection='ACTIVE', email_configuration={'ConfigurationSet': 'my-test-ses-configuration-set', 'EmailSendingAccount': 'DEVELOPER', 'From': '[email protected]', 'ReplyToEmailAddress': '[email protected]', 'SourceArn': 'arn:aws:ses:us-east-1:123456789012:identity/[email protected]'}, email_verification_message='Your verification code is {####}.', email_verification_subject='Verify your email address', lambda_config={'KMSKeyID': 'arn:aws:kms:us-east-1:123456789012:key/a6c4f8e2-0c45-47db-925f-87854bc9e357', 'CustomEmailSender': {'LambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'LambdaVersion': 'V1_0'}, 'CustomSMSSender': {'LambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'LambdaVersion': 'V1_0'}, 'CustomMessage': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'DefineAuthChallenge': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'InboundFederation': {'LambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'LambdaVersion': 'V1_0'}, 'PostAuthentication': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'PostConfirmation': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'PreAuthentication': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'PreSignUp': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'PreTokenGeneration': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'UserMigration': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction', 'VerifyAuthChallengeResponse': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction'}, mfa_configuration='OPTIONAL', policies={'PasswordPolicy': {'MinimumLength': 6, 'RequireLowercase': True, 'RequireNumbers': True, 'RequireSymbols': True, 'RequireUppercase': True, 'TemporaryPasswordValidityDays': 7}}, pool_name='my-test-user-pool', schema=[{'AttributeDataType': 'Number', 'DeveloperOnlyAttribute': True, 'Mutable': True, 'Name': 'mydev', 'NumberAttributeConstraints': {'MaxValue': '99', 'MinValue': '1'}, 'Required': False, 'StringAttributeConstraints': {'MaxLength': '99', 'MinLength': '1'}}], sms_authentication_message='Your verification code is {####}.', sms_configuration={'ExternalId': 'my-role-external-id', 'SnsCallerArn': 'arn:aws:iam::123456789012:role/service-role/test-cognito-SMS-Role'}, sms_verification_message='Your verification code is {####}.', user_attribute_update_settings={'AttributesRequireVerificationBeforeUpdate': ['email']}, username_configuration={'CaseSensitive': True}, user_pool_add_ons={'AdvancedSecurityMode': 'OFF'}, user_pool_tags={'my-test-tag-key': 'my-test-tag-key'}, verification_message_template={'DefaultEmailOption': 'CONFIRM_WITH_CODE', 'EmailMessage': 'Your confirmation code is {####}', 'EmailMessageByLink': 'Choose this link to {##verify your email##}', 'EmailSubject': 'Here is your confirmation code', 'EmailSubjectByLink': 'Here is your confirmation link', 'SmsMessage': 'Your confirmation code is {####}'})
Source code in docs_src/capo_cognito_identity_provider/_services/cognito_identity_provider.py
3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 | |