서버 인증 - AWS IoT Core

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

서버 인증

디바이스 또는 다른 클라이언트가 AWS IoT Core에 연결하려고 시도하면 AWS IoT Core 서버는 디바이스가 서버를 인증하는 데 사용하는 X.509 인증서를 보냅니다. 인증은 TLS 계층에서 X.509 인증서 체인의 검증을 통해 수행됩니다. 이 방식은 HTTPS URL을 방문할 때 브라우저에서 사용하는 것과 동일합니다. 자체 인증 기관의 인증서를 사용하려면 CA 인증서 관리 단원을 참조하십시오.

디바이스 또는 다른 클라이언트가 AWS IoT Core 엔드포인트에 대해 TLS 연결을 설정하면 AWS IoT Core는 디바이스가 AWS IoT Core와 통신하고 있으며 AWS IoT Core를 가장하는 다른 서버와 통신하고 있지 않음을 확인하는 데 사용하는 인증서 체인을 제공합니다. 제공되는 체인은 디바이스가 연결하는 엔드포인트의 유형과 클라이언트와 AWS IoT Core가 TLS 핸드셰이크 중에 협상한 암호 그룹의 조합에 따라 다릅니다.

엔드포인트 유형

AWS IoT Core 는 두 가지 데이터 끝점 유형을 지원합니다. iot:Dataiot:Data-ATS. iot:Data 끝점은 VeriSign 클래스 3 공용 기본 G5 루트 CA 인증서. iot:Data-ATS 끝점은 아마존 트러스트 서비스 캐나다.

ATS 엔드포인트에서 제공하는 인증서는 Starfield에서 교차 서명합니다. 일부 TLS 클라이언트 구현에는 신뢰 루트의 검증이 필요하며 클라이언트의 신뢰할 수 있는 스토어에 Starfield CA 인증서가 설치되어 있어야 합니다.

주의

전체 인증서(발급자 이름 등이 포함됨)를 해시하는 인증서 고정 방법은 사용하지 않는 것이 좋습니다. 이 방법을 사용하면 AWS에서 제공하는 ATS 인증서가 Starfield에서 교차 서명되고 발급자 이름이 다르므로 인증서 확인이 실패하기 때문입니다.

디바이스에 Symantec 또는 Verisign CA 인증서가 필요한 경우가 아니면 iot:Data-ATS 엔드포인트를 사용하십시오. Symantec 및 Verisign 인증서는 이제 사용되지 않으며 대부분의 웹 브라우저에서 더 이상 지원되지 않습니다.

describe-endpoint 명령을 사용하여 ATS 엔드포인트를 생성할 수 있습니다.

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

describe-endpoint 명령은 다음 형식으로 엔드포인트를 반환합니다.

account-specific-prefix.iot.your-region.amazonaws.com

describe-endpoint를 처음 호출하면 엔드포인트가 생성됩니다. 이후 describe-endpoint에 대한 모든 호출은 동일한 엔드포인트를 반환합니다.

이전 버전과의 호환성을 위해 AWS IoT Core는 Symantec 엔드포인트를 계속 지원합니다. 자세한 내용은 AWS IoT Core가 고객이 Symantec 인증 기관의 비신뢰 문제를 처리하는 데 도움이 되는 방법을 참조하십시오. ATS 엔드포인트에서 작동하는 디바이스는 동일한 계정의 Symantec 엔드포인트에서 작동하는 디바이스와 완전히 상호 운용할 수 있으며 어떠한 재등록도 필요하지 않습니다.

참고

AWS IoT Core 콘솔에서 iot:Data-ATS 엔드포인트를 보려면 설정을 선택합니다. 콘솔에는 iot:Data-ATS 엔드포인트만 표시됩니다. 기본적으로 describe-endpoint 명령은 이전 버전과의 호환성을 위해 iot:Data 엔드포인트를 표시합니다. iot:Data-ATS 엔드포인트를 보려면 앞의 예제와 같이 --endpointType 파라미터를 지정합니다.

Java용 AWS SDK로 IotDataPlaneClient 생성

기본적으로 Java용AWS SDK - 버전 2iot:Data 엔드포인트를 사용하여 IotDataPlaneClient를 생성합니다. iot:Data-ATS 엔드포인트를 사용하는 클라이언트를 생성하려면 다음을 수행해야 합니다.

  • DescribeEndpoint API를 사용하여 iot:Data-ATS 엔드포인트를 생성합니다.

  • IotDataPlaneClient를 생성할 때 해당 엔드포인트를 지정합니다.

다음 예제에서는 이 두 작업을 모두 수행합니다.

public void setup() throws Exception { IotClient client = IotClient.builder().credentialsProvider(CREDENTIALS_PROVIDER_CHAIN).region(Region.US_EAST_1).build(); String endpoint = client.describeEndpoint(r -> r.endpointType("iot:Data-ATS")).endpointAddress(); iot = IotDataPlaneClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .endpointOverride(URI.create("https://" + endpoint)) .region(Region.US_EAST_1) .build(); }

서버 인증을 위한 CA 인증서

사용 중인 데이터 엔드포인트의 유형과 협상한 암호 그룹에 따라, AWS IoT Core 서버 인증 인증서는 다음 루트 CA 인증서 중 하나에서 서명됩니다.

VeriSign 엔드포인트(레거시)

Amazon Trust Services 엔드포인트(기본 설정됨)

참고

이 링크를 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 링크 저장을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.

  • RSA 2048 비트 키: 아마존 루트 CA 1.

  • RSA 4096 비트 키: 아마존 루트 CA 2. 추후 사용 예약

  • ECC 256비트 키: 아마존 루트 CA 3.

  • ECC 384 비트 키: 아마존 루트 CA 4. 추후 사용 예약

이러한 인증서는 모두 Starfield 루트 CA 인증서에서 교차 서명됩니다. 2018년 5월 9일 아시아 태평양(뭄바이) 리전에서 AWS IoT Core 출시를 시작으로, 모든 새로운 AWS IoT Core 리전에서는 ATS 인증서만 서비스됩니다.

서버 인증 지침

디바이스에서 AWS IoT Core 서버 인증 인증서를 검증하는 기능에 영향을 미칠 수 있는 많은 변수가 있습니다. 예를 들어 디바이스의 메모리가 너무 한정적이어서 가능한 모든 루트 CA 인증서를 보유할 수 없거나, 디바이스가 비표준 인증서 검증 방법을 구현할 수 있습니다. 이러한 이유로 다음 지침을 따르는 것이 좋습니다.

  • ATS 엔드포인트를 사용하고 지원되는 모든 Amazon Root CA 인증서를 설치하는 것이 좋습니다.

  • 디바이스에 이러한 인증서를 모두 저장할 수 없고 디바이스에서 ECC 기반 검증을 사용하지 않는 경우 Amazon Root CA 3Amazon Root CA 4 ECC 인증서를 생략할 수 있습니다. 디바이스가 RSA 기반 인증서 검증을 구현하지 않는 경우 Amazon Root CA 1Amazon Root CA 2 RSA 인증서를 생략할 수 있습니다. 이 링크를 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 링크 저장을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.

  • ATS 엔드포인트에 연결할 때 서버 인증서 검증 문제가 발생하는 경우 관련 교차 서명된 Amazon Root CA 인증서를 신뢰할 수 있는 스토어에 추가해 보십시오. 이 링크를 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 링크 저장을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.

  • 서버 인증서 검증 문제가 발생하는 경우 디바이스가 루트 CA를 명시적으로 신뢰해야 할 수 있습니다. 신뢰할 수 있는 스토어에 Starfield Root CA 인증서를 추가해 보십시오.

  • 위의 단계를 실행한 후에도 문제가 계속 발생하면 AWS 개발자 지원 센터에 문의하십시오.

참고

CA 인증서에는 서버 인증서를 검증하는 데 사용할 수 없는 만료 날짜가 있습니다. 따라서 만료 날짜가 도래하기 전에 CA 인증서를 교체해야 하는 경우도 있습니다. 지속적 연결을 보장하고 최신 보안 모범 사례를 유지하려면 모든 디바이스 또는 클라이언트에서 루트 CA 인증서를 업데이트해야 합니다.

참고

디바이스 코드에서 AWS IoT Core에 연결하는 경우 연결하는 데 사용하는 API에 인증서를 전달합니다. 사용하는 API는 SDK에 따라 다릅니다. 자세한 내용은 AWS IoT Core 디바이스 SDK를 참조하십시오.