Amazon Cognito でカスタムドメインを作成する際に発生するエラーをトラブルシューティングする方法を教えてください。

所要時間2分
0

Amazon Cognito でカスタムドメインを設定する際に発生するエラーを解決したいです。

簡単な説明

Amazon Cognito でカスタムドメイン名を設定すると、次のいずれかのエラーメッセージが表示される場合があります。

  • 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. (ルートドメインを解決できませんでした。ルートドメインの A レコードが存在することを確認してください。)
  • Domain already associated with another user pool. (ドメインは既に別のユーザープールに関連付けられています。)
  • One or more of the CNAMEs you provided are already associated with a different resource. (指定した 1 つ以上の CNAME は、既に別のリソースに関連付けられています。)
  • 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. (指定された SSL 証明書は存在しないか、us-east-1 リージョンに配置されていないか、有効でないか、有効な証明書チェーンを含んでいません。)
  • 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?$ (次の形式に準拠した、別の名前を入力してください: ^a-z0-9?$ )

解決策

カスタムドメインは有効なサブドメインではありません

インフラストラクチャの意図しない変更を防ぐために、Amazon Cognito はカスタムドメインのトップレベルドメインをサポートしていません。Amazon Cognito カスタムドメインを作成するには、親ドメインに DNS A レコードが必要です。

親ドメインには、ドメインのルートまたは、ドメイン階層の 1 つ上の子ドメインを使用できます。たとえば、カスタムドメインが auth.xyz.yourdomain.com の場合、Amazon Cognito は xyz.yourdomain.com を IP アドレスに解決する必要があります。また、xyz.yourdomain.com をカスタムドメインとして設定するには、yourdomain.com の A レコードを設定します。

DNS 設定で親ドメインの A レコードを作成する必要があります。親ドメインが有効な A レコードに解決された場合は、Amazon Cognito は追加の検証を実行しません。親ドメインが実際の IP アドレスを指していない場合は、8.8.8.8 などのダミー IP アドレスを DNS 設定に追加します。

DNS プロバイダーが DNS 構成に加えた変更を反映したことを確認するには、次のコマンドのいずれかを実行します。

注: コマンド例は、Linux 環境を対象としています。

auth.xyz.yourdomain.com をカスタムドメインとして使用するには、次のコマンドを実行します。

dig A xyz.yourdomain.com +short

xyz.yourdomain.com をカスタムドメインとして使用するには、次のコマンドを実行します。

dig A yourdomain.com +short

DNS 設定の変更が反映されている場合は、上記のコマンドは設定した IP アドレスを返します。DNS ルックアップの結果、設定した IP アドレスが返されない場合は、変更が反映されるまで待ってください。

Amazon Cognito でカスタムドメインを作成した後、親ドメインの A レコードマップを削除します。

ドメインは既に別のユーザープールに関連付けられています

カスタムドメイン名は、すべての AWS アカウントとすべての AWS リージョンで一意である必要があります。ユーザープールにカスタムドメイン名を使用する場合、他のユーザープールに同じドメイン名を使用することはできません。別のユーザープールでそのドメイン名を使用する場合は、最初のユーザープールに関連付けられているカスタムドメインを削除します。

カスタムドメインを削除した後、そのカスタムドメインとユーザープールの関連が完全に解除されるまでには時間を要します。削除した直後に別のユーザープールでドメイン名を設定した場合は、ドメイン関連付けに関するエラーメッセージが表示される場合があります。

指定した CNAME のいずれかは、既に別のリソースに関連付けられています

Amazon Cognito がカスタムドメインを作成した後、Amazon Cognito は同じカスタムドメイン名を使用して AWS マネージド Amazon CloudFront ディストリビューションを作成します。ドメイン名は、1 つの CloudFront ディストリビューションでのみ使用できます。CloudFront でドメイン名を代替ドメインとして使用する場合、既存のドメイン名を使用してカスタムドメインを作成することはできません。CloudFront ディストリビューションに既に関連付けられているカスタムドメインを作成しようとした場合は、CNAME の関連付けに関するエラーメッセージが表示されます。

この問題を解決するには、Amazon Cognito カスタムドメインに別のドメイン名を使用してください。または、ドメインを Amazon Cognito のカスタムドメインとして使用する場合、そのドメイン名を別の CloudFront ディストリビューションでは使用しないでください。

指定された SSL 証明書は存在しません

カスタムドメインを作成すると、Amazon Cognito は内部で CloudFront ディストリビューションを作成します。CloudFront は us-east-1 リージョンでのみ、ACM 証明書をサポートします。Amazon Cognito のカスタムドメインを作成するには、AWS Certificate Manager (ACM) 証明書を us-east-1 AWS リージョンに配置する必要があります。

カスタムドメインの設定時には、選択した証明書の有効期限が切れていないことを確認してください。

ACM に証明書をインポートする場合は、その証明書は公的認証局が発行したものである必要があります。証明書には、正しい証明書チェーンも必要です。詳細については、「証明書を AWS Certificate Manager にインポートする」および「CloudFront で SSL/TLS 証明書を使用するための要件」を参照してください。

AWS Key Management Service (AWS KMS) ポリシー評価の結果、明示的な deny ステートメントが作成された場合、SSL 証明書に関するエラーメッセージが表示される場合があります。Amazon Cognito カスタムドメインを作成する IAM ユーザーまたはロールにおいて、特定の AWS KMS アクションが明示的に拒否されている場合、SSL 証明書エラーメッセージが表示されます。この問題は、AWS KMS アクション kms:DescribeKeykms:CreateGrant、または kms:* で最も多く発生します。

ドメイン名に無効な文字が含まれています

ドメイン名には、小文字、数字、ハイフン以外は使用できません。最初または最後の文字にハイフンを使用することはできません。ドメイン名全体の最大長は 63 文字です。

関連情報

マネージドログインに独自ドメインを使用する

AWS公式
AWS公式更新しました 22日前
コメントはありません

関連するコンテンツ