사용자 지정 도메인 생성 및 구성 - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용자 지정 도메인 생성 및 구성

도메인 구성을 사용하면 AWS IoT Core에 연결할 사용자 지정 FQDN(정규화된 도메인 이름)을 지정할 수 있습니다. 사용자 지정 도메인을 사용하면 브랜딩 목적으로 자체 도메인이나 회사 도메인을 고객에게 공개할 수 있고, 새 브로커를 가리키도록 자체 도메인을 쉽게 변경할 수 있으며, 동일한 AWS 계정도메인 내에서 다른 도메인을 사용하는 고객에게 서비스를 제공하기 위해 멀티 테넌시를 지원할 수 있으며, 인증서 서명에 사용된 루트 인증 기관 (CA), 서명 알고리즘, 인증서 체인 깊이, 등 자체 서버 인증서 세부 정보를 관리할 수 있는 등 다양한 이점이 있습니다. 인증서의 수명 주기.

사용자 지정 도메인으로 도메인 구성을 설정하는 워크플로우는 다음 세 단계로 구성됩니다.

인증서 관리자에 서버 AWS 인증서 등록

사용자 지정 도메인으로 도메인 구성을 생성하기 전에 AWS Certificate Manager (ACM)에 서버 인증서 체인을 등록해야 합니다. 다음 세 가지 유형의 서버 인증서를 사용할 수 있습니다.

참고

AWS IoT Core Mozilla의 신뢰할 수 있는 CA 번들에 포함된 인증서는 공용 CA에서 서명한 것으로 간주합니다.

인증서 요구 사항

인증서를 가져오기 위한 사전 조건에서 인증서를 ACM으로 가져오기 위한 요구 사항을 확인하세요. 이러한 요구 사항 외에도 AWS IoT Core 는 다음과 같은 요구 사항을 추가합니다.

  • 리프 인증서에는 값이 ServerAuth (TLS 웹 서버 인증) 인 확장 키 사용 x509 v3 확장자가 포함되어야 합니다. ACM에서 인증서를 요청하면 이 확장이 자동으로 추가됩니다.

  • 최대 인증서 체인 깊이는 5개의 인증서입니다.

  • 최대 인증서 체인 크기는 16KB입니다.

  • 지원되는 암호화 알고리즘 및 키 크기에는 RSA 2048비트 (RSA_2048) 및 ECDSA 256비트 (EC_Prime256v1) 가 포함됩니다.

여러 도메인에 인증서 한 개 사용

하나의 인증서를 사용하여 여러 하위 도메인을 처리하려는 경우 CN(일반 이름) 또는 SAN(주체 대체 이름) 필드에 와일드카드 도메인을 사용합니다. 예를 들어, *.iot.example.com을 사용하여 dev.iot.example.com, qa.iot.example.com 및 prod.iot.example.com을 처리합니다. 각 FQDN에는 자체 도메인 구성이 필요하지만 둘 이상의 도메인 구성에서 동일한 와일드카드 값을 사용할 수 있습니다. CN 또는 SAN은 사용자 지정 도메인으로 사용할 FQDN을 처리해야 합니다. SAN이 있는 경우 CN은 무시되고 SAN은 사용자 정의 도메인으로 사용하려는 FQDN을 포함해야 합니다. 이러한 처리는 정확히 일치 또는 와일드카드 일치를 통해 가능할 수 있습니다. 와일드카드 인증서가 검증되고 계정에 등록되면 해당 지역의 다른 계정은 인증서와 겹치는 사용자 지정 도메인을 만들 수 없습니다.

다음 단원에서는 각 유형의 인증서를 가져오는 방법에 대해 설명합니다. 모든 인증서 리소스에는 도메인 구성을 생성할 때 사용하는 ACM에 등록된 Amazon 리소스 이름(ARN)이 필요합니다.

ACM에서 생성된 공인 인증서

API를 사용하여 사용자 지정 RequestCertificate도메인용 공개 인증서를 생성할 수 있습니다. 이 방법으로 인증서를 생성하면 ACM에서 사용자 지정 도메인의 소유권을 확인합니다. 자세한 내용은 AWS Certificate Manager 사용 설명서공인 인증서 요청을 참조하세요.

퍼블릭 CA에서 서명한 외부 인증서

공용 CA (Mozilla의 신뢰할 수 있는 CA 번들에 포함된 CA) 에서 서명한 서버 인증서가 이미 있는 경우 API를 사용하여 인증서 체인을 ACM으로 직접 가져올 수 있습니다. ImportCertificate 이 작업 및 필수 구성 요소 및 인증서 형식 요구 사항에 대한 자세한 내용은 인증서 가져오기를 참조하세요.

프라이빗 CA에서 서명한 외부 인증서

프라이빗 CA에서 서명하거나 자체 서명된 서버 인증서가 이미 있는 경우 해당 인증서를 사용하여 도메인 구성을 생성할 수 있지만 도메인 소유권을 확인하기 위해서 ACM에서 추가 공인 인증서를 생성하기도 해야 합니다. 이렇게 하려면 API를 사용하여 ACM에 서버 인증서 체인을 등록하십시오. ImportCertificate 이 작업 및 필수 구성 요소 및 인증서 형식 요구 사항에 대한 자세한 내용은 인증서 가져오기를 참조하세요.

검증 인증서 생성

인증서를 ACM으로 가져온 후 API를 사용하여 사용자 지정 도메인용 공개 인증서를 생성하십시오. RequestCertificate 이 방법으로 인증서를 생성하면 ACM에서 사용자 지정 도메인의 소유권을 확인합니다. 자세한 내용은 공인 인증서 요청을 참조하세요. 도메인 구성을 생성할 때 이 공인 인증서를 검증 인증서로 사용합니다.

도메인 구성 생성

API를 사용하여 사용자 지정 도메인에 구성 가능한 엔드포인트를 생성합니다. CreateDomainConfiguration 사용자 지정 도메인의 도메인 구성은 다음으로 구성됩니다.

  • domainConfigurationName

    도메인 구성을 식별하는 사용자 정의 이름입니다. IoT:로 시작하는 도메인 구성 이름은 기본 엔드포인트용으로 예약되어 있으므로 사용할 수 없습니다. 또한 이 값은 사용자 AWS 리전고유의 값이어야 합니다.

  • domainName

    디바이스를 연결하는 데 사용하는 FQDN입니다. AWS IoT Core AWS IoT Core 서버 이름 표시 (SNI) TLS 확장을 활용하여 도메인 구성을 적용합니다. 디바이스는 연결할 때 이 확장을 사용하고 도메인 구성에 지정된 도메인 이름과 동일한 서버 이름을 전달해야 합니다.

  • serverCertificateArns

    ACM에 등록한 서버 인증서 체인의 ARN. AWS IoT Core 현재 서버 인증서 1개만 지원합니다.

  • validationCertificateArn

    사용자 지정 도메인의 소유권을 확인하기 위해 ACM에서 생성한 퍼블릭 인증서의 ARN입니다. 공개적으로 서명되거나 ACM에서 생성된 서버 인증서를 사용하는 경우에는 이 인수가 필요하지 않습니다.

  • defaultAuthorizerName (optional)

    엔드포인트에서 사용할 사용자 지정 권한 부여자의 이름입니다.

  • allowAuthorizerOverride

    요청의 HTTP 헤더에 다른 권한 부여자를 지정하여 디바이스가 기본 권한 부여자를 재정의할 수 있는지 여부를 지정하는 부울 값입니다. defaultAuthorizerName에 값이 지정된 경우 이 값이 필요합니다.

  • serviceType

    AWS IoT Core 현재는 DATA 서비스 유형만 지원합니다. DATA지정하면 엔드포인트 유형이 인 엔드포인트를 AWS IoT 반환합니다iot:Data-ATS.

  • TlsConfig (선택 사항)

    도메인의 TLS 구성을 지정하는 객체입니다. 자세한 정보는 도메인 구성에서 TLS 설정 구성을 참조하세요.

  • serverCertificateConfig (선택 사항)

    도메인의 서버 인증서 구성을 지정하는 객체입니다. 자세한 정보는 OCSP 스테이플링을 위한 서버 인증서 구성을 참조하세요.

다음 AWS CLI 명령은 iot.example.com에 대한 도메인 구성을 생성합니다.

aws iot create-domain-configuration --domain-configuration-name "myDomainConfigurationName" --service-type "DATA" --domain-name "iot.example.com" --server-certificate-arns serverCertARN --validation-certificate-arn validationCertArn
참고

도메인 구성을 생성한 후 사용자 지정 서버 인증서를 제공할 때까지 최대 60분이 걸릴 수 있습니다 AWS IoT Core .

자세한 정보는 도메인 구성 관리을 참조하세요.

DNS 레코드 생성

서버 인증서 체인을 등록하고 도메인 구성을 생성한 후 사용자 지정 도메인이 AWS IoT 도메인을 가리키도록 DNS 레코드를 생성합니다. 이 레코드는 유형의 AWS IoT 엔드포인트를 가리켜야 iot:Data-ATS 합니다. DescribeEndpointAPI를 사용하여 엔드포인트를 얻을 수 있습니다.

다음 AWS CLI 명령은 엔드포인트를 가져오는 방법을 보여줍니다.

aws iot describe-endpoint --endpoint-type iot:Data-ATS

iot:Data-ATS엔드포인트를 확보한 후 사용자 지정 도메인에서 이 AWS IoT 엔드포인트에 대한 CNAME 레코드를 생성하십시오. 동일한 도메인에 사용자 지정 도메인을 여러 개 생성하는 AWS 계정경우 동일한 iot:Data-ATS 엔드포인트에 별칭을 지정하십시오.

문제 해결

장치를 사용자 지정 도메인에 연결하는 데 문제가 있는 경우 해당 AWS IoT Core 도메인이 서버 인증서를 수락하고 적용했는지 확인하십시오. AWS IoT Core 콘솔이나 를 사용하여 인증서를 AWS IoT Core 수락했는지 확인할 수 AWS CLI있습니다.

AWS IoT Core 콘솔을 사용하려면 설정 페이지로 이동하여 도메인 구성 이름을 선택합니다. 서버 인증서 세부 정보 섹션에서 상태 및 상태 세부 정보를 확인합니다. 인증서가 유효하지 않은 경우 ACM에서 이전 섹션에 나열된 인증서 요구 사항에 부합하는 인증서로 바꿉니다. 인증서의 ARN이 동일한 경우 인증서를 선택하여 AWS IoT Core 자동으로 적용합니다.

를 사용하여 인증서 상태를 확인하려면 DescribeDomainConfigurationAPI를 호출하고 도메인 구성 이름을 지정하십시오. AWS CLI

참고

인증서가 유효하지 않은 경우 AWS IoT Core 마지막으로 유효한 인증서를 계속 제공합니다.

다음 openssl 명령을 사용하여 엔드포인트에서 제공되는 인증서를 확인할 수 있습니다.

openssl s_client -connect custom-domain-name:8883 -showcerts -servername custom-domain-name