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."
- “도메인이 이미 다른 사용자 풀과 연결되어 있습니다.“
- “제공한 CNAME 중 하나 이상이 이미 다른 리소스와 연결되어 있습니다.”
- "지정한 SSL 인증서가 존재하지 않거나, us-east-1 리전에 있지 않거나 유효한 인증서 체인을 포함하지 않습니다."
- “도메인 이름에 잘못된 문자가 있습니다. 도메인 이름에는 소문자, 숫자 및 하이픈만 사용할 수 있습니다. 다음 형식을 따르는 다른 이름을 입력하십시오. ^a-z0-9?$"
해결 방법
맞춤 도메인이 유효한 하위 도메인 오류가 아닙니다.
인프라의 우발적 변경을 방지하기 위해 Amazon Cognito는 사용자 지정 도메인에 최상위 도메인(TLD)을 지원하지 않습니다. Amazon Cognito 사용자 지정 도메인을 생성하려면 상위 도메인에 도메인 이름 시스템(DNS) A 레코드가 있어야 합니다.
상위 도메인은 도메인의 루트일 수도 있고 도메인 계층 구조에서 한 단계 위에 있는 하위 도메인일 수도 있습니다. 예를 들어 사용자 지정 도메인이 auth.xyz.yourdomain.com인 경우, Amazon Cognito는 xyz.****yourdomain.com을 IP 주소로 확인해야 합니다. 마찬가지로 xyz.yourdomain.com을 사용자 지정 도메인으로 구성하려면 yourdomain.com에 대한 A 레코드를 구성합니다.
DNS 구성에서 상위 도메인에 대한 A 레코드를 만들어야 합니다. Amazon Cognito는 상위 도메인이 유효한 A 레코드로 확인되는 경우 추가 검증을 수행하지 않습니다. 상위 도메인이 실제 IP 주소를 가리키지 않는 경우, DNS 구성에 ‘8.8.8.8’과 같은 더미 IP 주소를 넣는 것을 고려하세요.
DNS 구성에 대한 변경 사항을 DNS 제공업체가 전파하는 데 시간이 걸릴 수 있습니다. DNS 제공업체가 변경 사항을 전파했는지 확인하려면 다음 명령 중 하나를 실행하세요.
auth.xyz.yourdomain.com을 사용자 지정 도메인으로 사용:
$ dig A xyz.yourdomain.com +short
또는
xyz.yourdomain.com을 사용자 지정 도메인으로 사용:
$ dig A yourdomain.com +short
참고: 위의 예제 명령은 Linux 환경에서 사용하기 위한 것입니다.
DNS 구성 변경이 전파되면 위의 명령은 사용자가 구성한 IP 주소를 반환합니다. DNS 조회가 구성된 IP 주소를 반환하지 않는 경우 변경 사항이 전파될 때까지 기다립니다. 전파되기 전까지는 ‘custom domain is not a valid subdomain’ 오류가 계속 표시됩니다.
Amazon Cognito에서 사용자 지정 도메인을 생성한 후에는 이전에 구성한 상위 도메인 A 레코드 매핑을 제거할 수 있습니다.
도메인이 이미 다른 사용자 풀과 연결됨 오류
사용자 지정 도메인 이름은 모든 AWS 리전의 모든 AWS 계정에서 고유해야 합니다. 사용자 풀에 사용자 지정 도메인 이름을 사용하면 다른 사용자 풀에 동일한 도메인 이름을 사용할 수 없습니다. 다른 사용자 풀에 도메인 이름을 사용하려면 첫 번째 사용자 풀과 연결된 사용자 지정 도메인을 삭제해야 합니다.
사용자 지정 도메인을 삭제한 후에는 사용자 풀에서 사용자 지정 도메인을 완전히 분리하는 데 시간이 걸립니다. 삭제 후 바로 다른 사용자 풀로 도메인 이름을 구성하려고 하면 도메인 연결 오류가 발생할 수 있습니다. 도메인 연결 오류가 표시되면 새 사용자 풀로 도메인 이름을 설정하기 전에 15분~20분 정도 기다립니다.
제공한 CNAME 중 하나 이상이 이미 다른 리소스와 연결되어 있음 오류
Amazon Cognito는 사용자 지정 도메인을 생성한 후 동일한 사용자 지정 도메인 이름을 사용하여 AWS 관리형 Amazon CloudFront 배포를 생성합니다. 각 도메인 이름은 하나의 CloudFront 배포에만 사용할 수 있습니다. CloudFront에서 한 도메인 이름을 대체 도메인으로 사용하는 경우 기존 도메인 이름을 사용하여 사용자 지정 도메인을 생성할 수 없습니다. CloudFront 배포와 이미 연결된 사용자 지정 도메인을 생성하려고 하면 CNAME 연결 오류가 발생합니다.
다음 두 가지 방법 중 하나로 이 오류를 해결할 수 있습니다.
- Amazon Cognito 사용자 지정 도메인에 다른 도메인 이름을 사용합니다.
- 한 도메인을 Amazon Cognito 사용자 지정 도메인으로 사용할 때 다른 CloudFront 배포에서 같은 도메인 이름을 사용하지 마세요.
지정한 SSL 인증서가 존재하지 않음 오류
- Amazon Cognito 사용자 지정 도메인을 생성하려면 us-east-1 AWS 리전의 AWS Certificate Manager(ACM) 인증서가 필요합니다. 사용자 지정 도메인을 생성하면 Amazon Cognito가 내부적으로 CloudFront 배포를 생성합니다. CloudFront는 us-east-1 리전에서만 ACM 인증서를 지원합니다.
- 사용자 지정 도메인을 구성할 때 선택한 인증서가 만료되지 않았는지 확인하세요.
- 인증서를 ACM으로 가져올 경우 공인 인증 기관(CA)에서 발급한 인증서인지 확인해야 합니다. 또한 인증서에는 올바른 인증서 체인이 있어야 합니다. 자세한 내용은 AWS Certificate Manager로 인증서 가져오기를 참조하세요.
- 인증서의 크기는 2,048비트 이하여야 합니다. 인증서는 암호로 보호되어서는 안 됩니다.
- AWS Key Management Service(AWS KMS) 정책 평가 결과 명시적인 거부 문이 나오면 SSL 인증서 오류가 발생할 수 있습니다. 이 오류는 Amazon Cognito 사용자 지정 도메인을 생성하는 IAM 사용자 또는 역할에 대해 특정 AWS KMS 작업이 명시적으로 거부될 때 발생합니다. 이 오류는 kms:DescribeKey, kms:CreateGrant 또는 kms:* 등의 AWS KMS 작업이 명시적으로 거부되는 경우 가장 흔하게 발생합니다.
도메인 이름에 잘못된 문자가 포함되어 있음 오류
도메인 이름에 소문자, 숫자, 하이픈 이외의 항목이 포함된 경우 해당 도메인 이름은 허용되지 않습니다. 첫 번째 또는 마지막 문자에는 하이픈을 사용할 수 없습니다. 점을 포함한 전체 도메인 이름의 최대 길이는 63자입니다.
관련 정보
호스팅된 UI에 자체 도메인 사용