Direkt zum Inhalt

Wie behebe ich Fehler, wenn ich eine benutzerdefinierte Domain in Amazon Cognito erstelle?

Lesedauer: 5 Minute
0

Ich möchte Fehler beheben, die bei der Konfiguration benutzerdefinierter Domains in Amazon Cognito auftreten.

Kurzbeschreibung

Wenn du benutzerdefinierte Domainnamen in Amazon Cognito konfigurierst, erhältst du möglicherweise eine der folgenden Fehlermeldungen:

  • „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.“
  • „Domain already associated with another user pool.“
  • „One or more of the CNAMEs you provided are already associated with a different resource.“
  • „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.“
  • „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?$“

Lösung

Die benutzerdefinierte Domain ist keine gültige Subdomain

Um versehentliche Änderungen der Infrastruktur zu vermeiden, unterstützt Amazon Cognito keine Top-Level-Domains für benutzerdefinierte Domains. Um eine benutzerdefinierte Amazon Cognito-Domain zu erstellen, muss die übergeordnete Domain einen DNS A-Datensatz haben.

Die übergeordnete Domain kann entweder das Stammverzeichnis der Domain sein oder eine untergeordnete Domain, die in der Domainhierarchie eine Stufe höher liegt. Wenn deine benutzerdefinierte Domain zum Beispiel auth.xyz.yourdomain.com ist, dann muss Amazon Cognito xyz.yourdomain.com in eine IP-Adresse auflösen. Um xyz.yourdomain.com als benutzerdefinierte Domain zu konfigurieren, konfiguriere außerdem einen A-Datensatz für yourdomain.com.

Du musst einen A-Datensatz für die übergeordnete Domain in deiner DNS-Konfiguration erstellen. Wenn die übergeordnete Domain in einen gültigen A-Datensatz aufgelöst wird, führt Amazon Cognito keine weiteren Überprüfungen durch. Wenn die übergeordnete Domain nicht auf eine echte IP-Adresse verweist, gib in deiner DNS-Konfiguration eine Dummy-IP-Adresse an, z. B. „8.8.8.8“.

Um sicherzustellen, dass dein DNS-Anbieter die Änderungen, die du an deiner DNS-Konfiguration vorgenommen hast, weitergegeben hat, führe einen der folgenden Befehle aus.

Hinweis: Die Beispielbefehle sind für eine Linux-Umgebung gedacht.

Um auth.xyz.yourdomain.com als benutzerdefinierte Domain zu verwenden, führe den folgenden Befehl aus:

dig A xyz.yourdomain.com +short

Um xyz.yourdomain.com als benutzerdefinierte Domain zu verwenden, führe den folgenden Befehl aus:

dig A yourdomain.com +short

Wenn die Änderung der DNS-Konfiguration übernommen wird, gibt der vorherige Befehl die von dir konfigurierte IP-Adresse zurück. Wenn die DNS-Abfrage nicht die konfigurierte IP-Adresse ergibt, warte, bis sich die Änderung verbreitet hat.

Nachdem du die benutzerdefinierte Domain in Amazon Cognito erstellt hast, entferne die A-Datensatz-Zuordnung der übergeordneten Domain.

Die Domain ist bereits mit einem anderen Benutzerpool verbunden

Benutzerdefinierte Domainnamen müssen in allen AWS-Konten und in allen AWS-Regionen eindeutig sein. Wenn du einen benutzerdefinierten Domainnamen für einen Benutzerpool verwendest, kannst du denselben Domainnamen nicht für einen anderen Benutzerpool verwenden. Um den Domainnamen für einen anderen Benutzerpool zu verwenden, lösche die benutzerdefinierte Domain, die mit dem ersten Benutzerpool verknüpft ist.

Nachdem du eine benutzerdefinierte Domain gelöscht hast, dauert es eine Weile, bis die benutzerdefinierte Domain vollständig vom Benutzerpool getrennt ist. Wenn du den Domainnamen sofort nach dem Löschen mit einem anderen Benutzerpool konfigurierst, kann es sein, dass du die Fehlermeldung „domain association“ erhältst.

Einer der von dir angegebenen CNAMEs ist bereits mit einer anderen Ressource verknüpft

Nachdem Amazon Cognito eine benutzerdefinierte Domain erstellt hat, verwendet Amazon Cognito denselben benutzerdefinierten Domainnamen, um eine von AWS verwaltete Amazon CloudFront-Verteilung zu erstellen. Du kannst einen Domainnamen mit nur einer CloudFront-Verteilung verwenden. Wenn du einen Domainnamen als alternative Domain in CloudFront verwendest, kannst du den vorhandenen Domainnamen nicht zum Erstellen einer benutzerdefinierten Domain verwenden. Wenn du versuchst, eine benutzerdefinierte Domain zu erstellen, die bereits mit einer CloudFront-Distribution verknüpft ist, wird die Fehlermeldung CNAME-Zuordnung angezeigt.

Um dieses Problem zu beheben, verwende einen anderen Domainnamen für die benutzerdefinierte Amazon Cognito-Domain. Alternativ kannst du die Domain auch als benutzerdefinierte Amazon Cognito-Domain verwenden und den Domainnamen nicht mit einer anderen CloudFront-Distribution verwenden.

Das angegebene SSL-Zertifikat existiert nicht

Wenn du die benutzerdefinierte Domain erstellst, erstellt Amazon Cognito intern eine CloudFront-Verteilung. CloudFront unterstützt ACM-Zertifikate nur in der Region us-east-1. Um eine benutzerdefinierte Amazon Cognito-Domain zu erstellen, musst du über ein AWS Certificate Manager (ACM)-Zertifikat in der AWS-Region us-east-1 verfügen. 

Vergewissere dich bei der Konfiguration der benutzerdefinierten Domain, dass das von dir gewählte Zertifikat noch nicht abgelaufen ist.

Wenn du ein Zertifikat in ACM importierst, vergewissere dich, dass eine öffentliche Zertifizierungsstelle das Zertifikat ausstellt. Das Zertifikat muss außerdem die richtige Zertifikatskette aufweisen. Weitere Informationen findest du unter Importieren von Zertifikaten in AWS Certificate Manager und Anforderungen für die Verwendung von SSL/TLS-Zertifikaten mit CloudFront.

Wenn eine AWS Key Management Service (AWS KMS)-Richtlinienauswertung zu einer expliziten Ablehnungsanweisung führt, erhältst du möglicherweise eine SSL-Zertifikatsfehlermeldung. Wenn bestimmte AWS KMS-Aktionen für den IAM-Benutzer oder die Rolle, die die benutzerdefinierte Amazon Cognito-Domain erstellt, explizit verweigert werden, erhältst du die Fehlermeldung „SSL certification“. Das Problem tritt am häufigsten bei den AWS KMS-Aktionen kms:DescribeKey, kms:CreateGrant oder kms:* auf.

Der Domainname enthält ein ungültiges Zeichen

Ein Domainname darf nur aus Kleinbuchstaben, Zahlen und Bindestrichen bestehen. Du kannst keinen Bindestrich für das erste oder letzte Zeichen verwenden. Die maximale Länge des gesamten Domainnamens beträgt 63 Zeichen.

Ähnliche Informationen

Verwendung deiner eigenen Domain für die verwaltete Anmeldung

AWS OFFICIALAktualisiert vor einem Jahr