Quero resolver os erros que recebo ao configurar domínios personalizados no Amazon Cognito.
Breve descrição
Ao configurar nomes de domínio personalizados no Amazon Cognito, é possível receber uma das seguintes mensagens de erro:
- “Custom domain is not a valid subdomain: Was not able to resolve the root domain, please ensure an A record exists for the root domain.“ (“O domínio personalizado não é um subdomínio válido: não foi possível resolver o domínio raiz. Verifique se existe um registro A para o domínio raiz.”)
- “Domain already associated with another user pool.” (“Domínio já associado a outro grupo de usuários.”)
- “One or more of the CNAMEs you provided are already associated with a different resource.” (“Um ou mais dos CNAMEs que você forneceu já estão associados a um recurso diferente.”)
- “The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain.” (“O certificado SSL especificado não existe, não está na região us-east-1, não é válido ou não inclui uma cadeia de certificados válida.”)
- “The domain name contains an invalid character. Domain names can only contain lower-case letters, numbers, and hyphens. Please enter a different name that follows this format: ^a-z0-9?$” (“O nome do domínio contém um caractere inválido. Os nomes de domínio só podem conter letras minúsculas, números e hifens. Insira um nome diferente que siga este formato: ^a-z0-9? $”)
Resolução
O domínio personalizado não é um subdomínio válido
Para evitar mudanças acidentais na infraestrutura, o Amazon Cognito não oferece suporte a domínios de nível superior para domínios personalizados. Para criar um domínio personalizado do Amazon Cognito, o domínio principal deve ter um registro DNS A.
O domínio principal pode ser a raiz do domínio ou um domínio secundário que está um nível acima na hierarquia do domínio. Por exemplo, se seu domínio personalizado for auth.xyz.yourdomain.com, o Amazon Cognito deverá resolver xyz.yourdomain.com para um endereço IP. Além disso, para configurar xyz.yourdomain.com como um domínio personalizado, configure um registro A para yourdomain.com.
Você deve criar um registro A para o domínio principal na sua configuração de DNS. Quando o domínio principal é resolvido para um registro A válido, o Amazon Cognito não realiza verificações adicionais. Se o domínio principal não apontar para um endereço IP real, coloque um endereço IP fictício na sua configuração de DNS, como “8.8.8.8”.
Para garantir que seu provedor de DNS tenha propagado as alterações feitas na configuração de DNS, execute um dos comandos a seguir.
Observação: os comandos de exemplo são para um ambiente Linux.
Para usar auth.xyz.yourdomain.com como domínio personalizado, execute o seguinte comando:
dig A xyz.yourdomain.com +short
Para usar xyz.yourdomain.com como domínio personalizado, execute o seguinte comando:
dig A yourdomain.com +short
Se a alteração na configuração do DNS se propagar, o comando anterior retornará o endereço IP que você configurou. Se a pesquisa de DNS não retornar o endereço IP configurado, aguarde até que a alteração seja propagada.
Depois de criar o domínio personalizado no Amazon Cognito, remova o mapa de registro A do domínio principal.
O domínio já está associado a outro grupo de usuários
Os nomes de domínio personalizados devem ser exclusivos em todas as contas da AWS e em todas as regiões da AWS. Se você usar um nome de domínio personalizado para um grupo de usuários, não poderá usar o mesmo nome de domínio para nenhum outro grupo de usuários. Para usar o nome de domínio para outro grupo de usuários, exclua o domínio personalizado associado ao primeiro grupo de usuários.
Feito isso, leva algum tempo para dissociar totalmente o domínio personalizado do grupo de usuários. Se você configurar o nome de domínio com outro grupo de usuários imediatamente após a exclusão, poderá receber a mensagem de erro de associação de domínio.
Um dos CNAMEs que você forneceu já está associado a um recurso diferente
Depois que o Amazon Cognito cria um domínio personalizado, ele usa o mesmo nome de domínio personalizado para criar uma distribuição do Amazon CloudFront gerenciada pela AWS. É possível usar um nome de domínio com apenas uma distribuição do CloudFront. Se você usa um nome de domínio como domínio alternativo no CloudFront, não pode usar o nome de domínio atual para criar um personalizado. Se você tentar criar um domínio personalizado que já esteja associado a uma distribuição do CloudFront, a mensagem de erro de associação CNAME será exibida.
Para resolver esse problema, use um nome de domínio diferente para o domínio personalizado do Amazon Cognito. Ou, ao usar o domínio como um domínio personalizado do Amazon Cognito, não use o nome de domínio com outra distribuição do CloudFront.
O certificado SSL especificado não existe
Quando você cria o domínio personalizado, o Amazon Cognito cria internamente uma distribuição do CloudFront. O CloudFront oferece suporte a certificados ACM somente na região us-east-1. Para criar um domínio personalizado do Amazon Cognito, você deve ter um certificado do AWS Certificate Manager (ACM) na região us-east-1 da AWS.
Ao configurar o domínio personalizado, certifique-se de que o certificado selecionado não tenha expirado.
Se você importar um certificado para o ACM, certifique-se de que a autoridade de certificação pública emita o certificado. O certificado também deve ter a cadeia de certificados correta. Para mais informações, consulte Importar certificados para o AWS Certificate Manager e Requisitos para usar certificados SSL/TLS com o CloudFront.
Se uma avaliação de política do AWS Key Management Service (AWS KMS) resultar em uma declaração de negação explícita, você poderá receber uma mensagem de erro do certificado SSL. Quando determinadas ações do AWS KMS são explicitamente negadas para o usuário ou o perfil do IAM que cria o domínio personalizado do Amazon Cognito, você recebe a mensagem de erro do certificado SSL. O problema ocorre mais comumente nas ações kms:DescribeKey, kms:CreateGrant ou kms:* do AWS KMS.
O nome do domínio contém um caractere inválido
O nome de domínio não pode conter nada além de letras minúsculas, números e hifens. Não é possível usar um hífen no primeiro ou no último caractere. A extensão máxima do nome de domínio é de 63 caracteres.
Informações relacionadas
Usar o próprio domínio para login gerenciado