サーバー認証 - AWS IoT コア

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

サーバー認証

デバイスまたは他のクライアントが 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. と通信していることを確認するために使用する証明書チェーンを提示します。表示されるチェーンは、デバイスが接続しているエンドポイントのタイプと、TLS ハンドシェイク中にクライアントと ネゴシエートした暗号スイートAWS IoT Coreの組み合わせによって異なります。

エンドポイントタイプ

AWS IoT Core は、iot:Dataiot:Data-ATS の 2 つの異なるデータエンドポイントタイプをサポートしています。iot:Data エンドポイントは、 クラス 3 パブリックプライマリ G5 ルート CA 証明書VeriSignによって署名された証明書を提供します。iot:Data-ATS エンドポイントは、Amazon Trust Services CA によって署名されたサーバー証明書を提供します。

ATS エンドポイントによって提示された証明書は、Starfield によってクロス署名されています。一部の TLS クライアント実装では、信頼のルートを検証する必要があり、Starfield CA 証明書がクライアントの信頼ストアにインストールされている必要があります。

警告

証明書全体(発行者名など)をハッシュする証明書固定方法を使用することはお勧めしません。これは、提供する 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 エンドポイントで動作しているデバイスと完全に相互運用性を備えているため、どのような再登録も必要ありません。

注記

iot:Data-ATS コンソールに AWS IoT Core エンドポイントを表示するには、[設定.] を選択します。コンソールには iot:Data-ATS エンドポイントのみが表示されます。デフォルトでは、describe-endpoint コマンドは下位互換性のために iot:Data エンドポイントを表示します。iot:Data-ATS エンドポイントを表示するには、前の例のように --endpointType パラメータを指定します。

IotDataPlaneClient SDK for Java を使用した AWS の作成

デフォルトでは、 SDK for Java - バージョン 2AWS は、 エンドポイントを使用して IotDataPlaneClient を作成します。iot:Dataiot:Data-ATS エンドポイントを使用するクライアントを作成するには、以下を実行する必要があります。

次の例では、これらのオペレーションの両方を実行します。

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 エンドポイント (推奨)

注記

場合によって、これらのリンクを右クリックし、[Save link as...] を選択して、これらの証明書をファイルとして保存する必要があります。

  • 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 証明書.によってクロス署名されています。アジアパシフィック (ムンバイ) リージョンの AWS IoT Core の 2018 年 5 月 9 日の立ち上げにより開始されたすべての新しい AWS IoT Core リージョンは、ATS 証明書のみを提供します。

サーバー認証のガイドライン

AWS IoT Core サーバー認証証明書を検証するデバイスの機能に影響を与える可能性のある多くの変数があります。たとえば、デバイスのメモリ制限が大きすぎてルート CA 証明書をすべて保持できない場合や、デバイスが証明書検証の標準以外の方法を実装している場合があります。これらの理由から、次のガイドラインに従うことをお勧めします。

注記

CA 証明書には有効期限があり、その後、サーバー証明書の検証には使用できません。有効期限が切れる前に CA 証明書を交換する必要がある場合があります。すべてのデバイスまたはクライアントにインストールされているルート CA 証明書をアップデートして、進行中の接続を安全にし、セキュリティベストプラクティスを最新の状態に保つ必要があります。

注記

デバイスコードで AWS IoT Core に接続するときは、接続に使用している API に証明書を渡します。使用する API は SDK によって異なります。詳細については、「AWS IoT Core デバイス SDKs」を参照してください。