我想解決在 Amazon Cognito 中設定自訂網域時遇到的錯誤。
簡短說明
在 Amazon Cognito 中設定自訂網域時,您可能會收到以下其中一個錯誤訊息:
- 「自訂網域不是有效的子網域: 無法解析根網域,請確保根網域存在 A 記錄。」
- 「網域已與另一個使用者集區相關聯。」
- 「您提供的一個或多個 CNAME 已與其他資源關聯。」
- 「指定的 SSL 憑證不存在、不在 us-east-1 區域中、無效或不包含有效的憑證鏈。」
- 「網域名稱包含無效的字元。網域名稱只能包含小寫字母、數字和連字號。請輸入符合以下格式的其他名稱:^a-z0-9?$"
解決方法
自訂網域不是有效的子網域
為了防止意外變更基礎架構,Amazon Cognito 不支援自訂網域的頂層網域。若要建立 Amazon Cognito 自訂網域,父網域必須具有 DNS A 記錄。
父級可能是網域的根,也可能是網域階層中上一層的子網域。例如,如果您的自訂網域是 auth.xyz.yourdomain.com,則 Amazon Cognito 必須將 xyz.yourdomain.com 解析為 IP 位址。另外,要將 xyz.yourdomain.com 設定為自訂網域,請為 yourdomain.com 設定 A 記錄。
您必須在 DNS 設定中為父網域建立 A 記錄。當父網域解析為有效的 A 記錄時,Amazon Cognito 不會執行額外的驗證。如果父網域沒有指向真實的 IP 位址,請在 DNS 設定中輸入一個虛擬 IP 位址,例如「8.8.8.8」。
若要確保您的 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 分發。您只能將一個網域名稱與一個 CloudFront 分發一起使用。如果您在 CloudFront 中使用網域名稱作為備用網域,則不能使用現有網域來建立自訂網域。如果您嘗試建立已與 CloudFront 分發關聯的自訂網域,則會出現 CNAME 關聯錯誤訊息。
若要解決此問題,請對 Amazon Cognito 自訂網域使用不同的網域名稱。或者,當您將該網域用作 Amazon Cognito 自訂網域時,請不要將該網域與其他 CloudFront 分發一起使用。
指定的 SSL 憑證不存在
當您建立自訂網域時,Amazon Cognito 會在內部建立 CloudFront 分發。CloudFront 僅在** us-east-1** 區域支援 ACM 憑證。若要建立 Amazon Cognito 自訂網域,您必須在 us-east-1 AWS 區域擁有 AWS Certificate Manager (ACM) 憑證。
設定自訂網域時,請確保您選擇的憑證未過期。
如果您將憑證匯入 ACM,請確保公共憑證授權單位核發該憑證。該憑證還必須具有正確的憑證鏈。如需詳細資訊,請參閱將憑證匯入 AWS Certificate Manager 和將 SSL/TLS 憑證與 CloudFront 結合使用的請求。
如果 AWS Key Management Service (KMS) 政策評估導致明確拒絕陳述式,那麼您可能會收到 SSL 憑證錯誤訊息。當建立 Amazon Cognito 自訂網域的 IAM 使用者或角色明確拒絕特定 AWS KMS 動作時,您會收到 SSL 憑證錯誤訊息。此問題最常發生在 kms:DescribeKey、kms:CreateGrant 或 kms:* AWS KMS 動作。
網域名稱包含無效字元
網域不能包含小寫字母、數字和連字號之外的任何內容。不能使用連字元作為第一個字元或最後一個字元。整個網域的最大長度為 63 個字元。
相關資訊
使用您自己的網域進行受管登入