서버 인증 - AWS IoT Core

서버 인증

디바이스 또는 다른 클라이언트가 AWS IoT Core에 연결하려고 시도하면 AWS IoT Core 서버는 디바이스가 서버를 인증하는 데 사용하는 X.509 인증서를 전송합니다. 인증은 X.509 인증서 체인 검증을 통해 TLS 계층에서 이루어집니다. 이는 HTTPS URL을 방문할 때 브라우저에서 사용하는 것과 동일한 방법입니다. 자체 인증 기관의 인증서를 사용하려면 단원을 참조하세요CA 인증서 관리

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

엔드포인트 유형

AWS IoT Core는 iot:Data-ATS를 지원합니다. iot:Data-ATS 엔드포인트는 Amazon Trust Services CA에서 서명한 서버 인증서를 제공합니다.

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

주의

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

중요

iot:Data-ATS 엔드포인트를 사용합니다. Symantec 및 Verisign 인증서는 이제 사용되지 않으며 AWS IoT Core에서 더 이상 지원되지 않습니다.

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 콘솔에서 iot:Data-ATS 엔드포인트를 보려면 설정을 선택합니다. 콘솔에는 iot:Data-ATS 엔드포인트만 표시됩니다.

AWS SDK for Java로 IotDataPlaneClient 생성

iot:Data-ATS 엔드포인트를 사용하는 IotDataPlaneClient를 생성하려면 다음을 수행해야 합니다.

  • 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 인증서 중 하나에서 서명됩니다.

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

참고

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

  • RSA 2048비트 키: Amazon Root CA 1.

  • RSA 4096비트 키: Amazon Root CA 2. 추후 사용 예약.

  • ECC 256비트 키: Amazon Root CA 3.

  • ECC 384비트 키: Amazon Root CA 4. 추후 사용 예약.

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

VeriSign 엔드포인트(레거시)

서버 인증 지침

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

참고

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

참고

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