X.509 클라이언트 인증서 - AWS IoT Core

X.509 클라이언트 인증서

X.509 인증서는 클라이언트 및 디바이스 연결을 인증하는 기능을 AWS IoT에 제공합니다. 클라이언트가 AWS IoT와 통신할 수 있으려면 클라이언트 인증서를 AWS IoT에 등록해야 합니다. 동일한 AWS 리전의 여러 AWS 계정에 클라이언트 인증서를 등록하면 동일한 리전의 AWS 계정 사이에 디바이스를 쉽게 이동할 수 있습니다. 자세한 내용은 다중 계정 등록이 있는 여러 AWS 계정에서 X.509 클라이언트 인증서 사용를 참조하세요.

인증서 취소를 포함하여 세부적인 클라이언트 관리 작업이 가능하도록 각 디바이스 또는 클라이언트에 고유한 인증서를 부여하는 것이 좋습니다. 인증서 만료 시 원활한 작동을 보장하기 위해 디바이스 및 클라이언트가 인증서 교체 및 대체를 지원해야 합니다.

X.509 인증서를 사용하여 몇 개 이상의 디바이스를 지원하는 방법에 대한 자세한 내용은 디바이스 프로비저닝 단원을 참조하여 AWS IoT이(가) 지원하는 다양한 인증서 관리 및 프로비저닝 옵션을 검토하세요.

AWS IoT는 다음 유형의 X.509 클라이언트 인증서를 지원합니다.
  • AWS IoT에서 생성되는 X.509 인증서

  • AWS IoT에 등록된 CA에서 서명한 X.509 인증서입니다.

  • AWS IoT에 등록되지 않은 CA에서 서명한 X.509 인증서입니다.

이 섹션에서는 AWS IoT에서 X.509 인증서를 관리하는 방법에 대해 설명합니다. 또는 AWS IoT 콘솔 또는 AWS CLI를 사용하여 다음 인증서 작업을 수행할 수 있습니다.

이러한 작업을 수행하는 데 사용되는 AWS CLI 명령에 대한 자세한 내용은 AWS IoT CLI Reference를 참조하세요.

X.509 클라이언트 인증서 사용

X.509 인증서는 AWS IoT에 대한 클라이언트 및 디바이스 연결을 인증합니다. X.509 인증서는 식별 및 인증 메커니즘보다 유용한 여러 가지 장점을 제공합니다. X.509 인증서가 있으면 디바이스에서 비대칭 키를 사용할 수 있습니다. 예를 들어 중요한 암호화 구성 요소가 디바이스를 벗어나지 않도록 프라이빗 키를 디바이스의 안전한 스토리지에 저장할 수 있습니다. 프라이빗 키가 디바이스를 전혀 벗어나지 않으므로 X.509 인증서는 사용자 이름 및 암호 또는 보유자 토큰과 같은 다른 체계보다 강력한 클라이언트 인증을 제공합니다.

AWS IoT는 TLS 프로토콜의 클라이언트 인증 모드를 사용하여 클라이언트 인증서를 인증합니다. TLS 지원은 다수의 프로그래밍 언어 및 운영 체제에서 제공되며 데이터 암호화에 흔히 사용됩니다. TLS 클라이언트 인증에서 AWS IoT은(는) X.509 클라이언트 인증서를 요청하고 인증서의 레지스트리와 비교하여 인증서의 상태 및 AWS 계정을(를) 검증합니다. 그런 다음 인증서에 포함된 퍼블릭 키에 해당하는 프라이빗 키의 소유권 증명을 위해 클라이언트에 도전합니다. AWS IoT를 사용하려면 클라이언트가 SNI(서버 이름 표시) 확장을 전송 계층 보안(TLS) 프로토콜로 전송해야 합니다. SNI 확장 구성에 대한 자세한 내용은 단원을 참조하세요AWS IoT의 전송 보안

신뢰할 수 있는 인증 기관(CA)에 대해 X.509 인증서를 확인할 수 있습니다. Amazon Root CA를 사용하는 클라이언트 인증서를 생성하고 다른 CA에서 서명한 자체 클라이언트 인증서를 사용할 수 있습니다. 자체 X.509 인증서 사용에 대한 자세한 내용은 자체 클라이언트 인증서 생성 단원을 참조하세요.

CA 인증서에서 서명한 인증서의 만료 날짜 및 시간은 인증서 생성 시 설정됩니다. AWS IoT에서 생성되는 X.509 인증서는 UTC 기준 2049년 12월 31일 자정(2049-12-31T23:59:59Z)에 만료됩니다. AWS IoT 콘솔을 사용하여 Amazon Root CA를 사용하는 인증서를 생성하는 방법에 대한 자세한 내용은 AWS IoT 클라이언트 인증서 생성 단원을 참조하세요.

다중 계정 등록이 있는 여러 AWS 계정에서 X.509 클라이언트 인증서 사용

다중 계정 등록을 통해 동일한 리전 및 다른 리전의 AWS 계정 사이에 디바이스를 이동할 수 있습니다. 프리 프로덕션 계정에 디바이스를 등록, 테스트 및 구성한 다음 프로덕션 계정에 동일한 디바이스 및 디바이스 인증서를 등록하고 사용할 수 있습니다. 또한 AWS IoT에 등록된 CA 없이 디바이스에 클라이언트 인증서 또는 디바이스 인증서를 등록할 수 있습니다. 자세한 정보는 등록되지 않은 CA로 서명된 클라이언트 인증서 등록(CLI)을 참조하세요.

참고

다중 계정 등록에 사용되는 인증서는 iot:Data-ATS, iot:Data(레거시), iot:Jobsiot:CredentialProvider 엔드포인트 유형으로 지원됩니다. AWS IoT 디바이스 엔드포인트에 대한 자세한 내용은 AWS IoT 디바이스 데이터 및 서비스 엔드포인트 단원을 참조하세요.

다중 계정 등록을 사용하는 디바이스는 서버 이름 표시(SNI) 확장을 전송 계층 보안(TLS) 프로토콜로 전송하고 AWS IoT에 연결할 때 host_name 필드에 전체 엔드포인트 주소를 제공합니다. AWS IoT는 host_name의 엔드포인트 주소를 사용하여 연결을 올바른 AWS IoT 계정으로 라우팅합니다. host_name에서 유효한 엔드포인트 주소를 전송하지 않는 기존 디바이스도 계속 작동하기는 하지만 이 정보가 필요한 기능은 사용할 수 없습니다. SNI 확장에 대한 자세한 내용과 host_name 필드의 엔드포인트 주소를 식별하는 방법은 AWS IoT의 전송 보안 단원을 참조하세요.

다중 계정 등록을 사용하려면
  1. CA로 디바이스 인증서를 등록할 수 있습니다. SNI_ONLY 모드에서 여러 계정에 서명 CA를 등록하고 해당 CA를 사용하여 여러 계정에 동일한 클라이언트 인증서를 등록할 수 있습니다. 자세한 내용은 SNI_ONLY 모드에서 CA 인증서 등록(CLI) 섹션을 참조하세요.

  2. CA 없이 디바이스 인증서를 등록할 수 있습니다. 등록되지 않은 CA로 서명된 클라이언트 인증서 등록(CLI) 섹션을 참조하세요. CA 등록은 선택 사항입니다. AWS IoT에서 디바이스 인증서에 서명한 CA는 등록할 필요가 없습니다.

AWS IoT에서 지원하는 인증서 서명 알고리즘

AWS IoT는 다음의 인증서 서명 알고리즘을 지원합니다.

  • SHA256WITHRSA

  • SHA384WITHRSA

  • SHA512WITHRSA

  • DSA_WITH_SHA256

  • ECDSA-WITH-SHA256

  • ECDSA-WITH-SHA384

  • ECDSA-WITH-SHA512

인증서 인증 및 보안에 대한 자세한 내용은 디바이스 인증서 키 품질 섹션을 참조하세요.

참고

인증서 서명 요청(CSR)에는 길이가 2,048비트 이상인 RSA 키가 되거나 NIST P-256 또는 NIST P-384 곡선의 ECC 키가 되는 퍼블릭 키가 포함되어야 합니다. 자세한 내용은 AWS IoT API 참조 가이드CreateCertificateFromCsr을 참조하세요.