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 クライアント証明書をサポートしています。
  • によって生成された X.509 証明書 AWS IoT

  • に登録された CA によって署名された X.509 証明書 AWS IoT。

  • AWS IoTに登録されていない CA によって署名された X.509 証明書。

このセクションでは、 AWS IoTで X.509 証明書を管理する方法について説明します。 AWS IoT コンソールまたは を使用して AWS CLI 、次の証明書オペレーションを実行できます。

これらのオペレーションを実行する AWS CLI コマンドの詳細については、「 AWS IoT CLI リファレンス」を参照してください。

X.509 クライアント証明書の使用

X.509 証明書は、クライアントとデバイスの接続を認証します AWS IoT。X.509 証明書には、他の識別および認証メカニズムに比べて、いくつかの利点があります。X.509 証明書では、非対称キーをデバイスで使用できます。例えば、プライベートキーをデバイス上の安全なストレージに書き込むと、デバイスから機密の暗号化情報が持ち出されることがないようにすることができます。X.509 証明書により、ユーザー名とパスワード、ベアラートークンなどの他のスキーマよりも、強力なクライアント認証が可能になります。これは、プライベートキーがデバイスから持ち出されることがないためです。

AWS IoT は、TLS プロトコルのクライアント認証モードを使用してクライアント証明書を認証します。TLS サポートは、多くのプログラミング言語とオペレーティングシステムに対応しており、データの暗号化に一般に使用されます。TLS クライアント認証では、 は X.509 クライアント証明書を AWS IoT リクエストし、証明書のステータスと を証明書のレジストリ AWS アカウント に対して検証します。次に、証明書に含まれるパブリックキーに対応するプライベートキーの所有権の証明をクライアントに要求します。 AWS IoT は、クライアントが Server Name Indication (SNI) 拡張機能を Transport Layer Security (TLS) プロトコルに送信する必要があります。SNI 拡張機能の設定の詳細については、「のトランスポートセキュリティ AWS IoT Core」を参照してください。

AWS IoT コアへの安全で一貫性のあるクライアント接続を容易にするには、X.509 クライアント証明書に次のものが必要です。

Amazon Root CA を使用するクライアント証明書を作成し、別の認証機関 (CA) によって署名された独自のクライアント証明書を使用できます。 AWS IoT コンソールを使用して Amazon ルート CA を使用する証明書を作成する方法の詳細については、「」を参照してくださいAWS IoT クライアント証明書を作成する。独自の X.509 証明書の使用の詳細については、「独自のクライアント証明書を作成する」を参照してください。

CA 証明書によって署名された証明書の有効期限が切れる日付と時刻は、証明書の作成時に設定されます。によって生成された X.509 証明書は、2049 年 12 月 31 日深夜 UTC に AWS IoT 期限切れになります (2049-12-31T23:59:59Z)。

AWS IoT Device Defender は、一般的な IoT セキュリティのベストプラクティスをサポートする AWS アカウント およびデバイスで監査を実行できます。これには、CA または Amazon Root CA によって署名された X.509 証明書の有効期限の管理が含まれます。証明書の有効期限の管理の詳細については、「デバイス証明書の有効期限切れ」および「CA 証明書の有効期限切れ」を参照してください。

公式 AWS IoT ブログでは、「 を使用して IoT デバイス証明書のローテーションを管理する方法」で、デバイス証明書のローテーション AWS IoTとセキュリティのベストプラクティスの管理について詳しく説明します。

マルチアカウント登録で複数の AWS アカウントで X.509 クライアント証明書を使用する

マルチアカウント登録により、同じリージョン内、または異なるリージョン内の AWS アカウント間で、デバイスの移動が可能になります。実稼働前のアカウントでデバイスを登録、テスト、設定した後、実稼働アカウントで同じデバイスとデバイス証明書を登録して使用することができます。クライアント証明書をデバイスに登録することも、登録されている CA なしでデバイス証明書を登録することもできます AWS IoT。詳細については、「登録していない CA によって署名したクライアント証明書を登録する (CLI)」を参照してください。

注記

マルチアカウント登録に使用される証明書は、iot:Data-ATSiot:Data (レガシー)、iot:Jobs、および iot:CredentialProvider エンドポイントタイプでサポートされています。 AWS IoT デバイスエンドポイントの詳細については、「」を参照してくださいAWS IoT デバイスデータとサービスエンドポイント

マルチアカウント登録を使用するデバイスは、Server Name Indication (SNI) 拡張を Transport Layer Security (TLS) プロトコルに送信し、接続時に host_nameフィールドに完全なエンドポイントアドレスを指定する必要があります AWS IoT。 は、 のエンドポイントアドレス AWS IoT を使用して接続を正しい AWS IoT アカウントにhost_nameルーティングします。host_name で有効なエンドポイントアドレスを送信しなかった既存デバイスは、引き続き動作しますが、この情報を必要とする機能を使用することはできません。SNI 拡張の詳細と、 host_name フィールドのエンドポイントアドレスを特定する方法については、「のトランスポートセキュリティ AWS IoT Core」を参照してください。

マルチアカウント登録を使用するには
  1. CA を指定してデバイス証明書を登録することができます。署名 CA を SNI_ONLY モードで複数のアカウントに登録し、その CA を使用して同じクライアント証明書を複数のアカウントに登録できます。詳細については、「SNI_ONLY モードでの CA 証明書の登録 (CLI) – 推奨」を参照してください。

  2. デバイス証明書は CA を指定せずに登録することができます。「登録していない CA によって署名したクライアント証明書を登録する (CLI)」を参照してください。CA の登録はオプションです。デバイス証明書に署名した CA を登録する必要はありません AWS IoT。

でサポートされている証明書署名アルゴリズム AWS IoT

AWS IoT では、次の証明書署名アルゴリズムがサポートされています。

  • SHA256WITHRSA

  • SHA384WITHRSA

  • SHA512WITHRSA

  • SHA256WITHRSAANDMGF1 (RSASSA-PSS)

  • SHA384WITHRSAANDMGF1 (RSASSA-PSS)

  • SHA512WITHRSAANDMGF1 (RSASSA-PSS)

  • DSA_WITH_SHA256

  • ECDSA-WITH-SHA256

  • ECDSA-WITH-SHA384

  • ECDSA-WITH-SHA512

証明書認証およびセキュリティの詳細については、「デバイス証明書のキー品質」を参照してください。

注記

証明書署名リクエスト (CSR) にはパブリックキーを含める必要があります。キーは、少なくとも 2,048 ビット長の RSA キー、または NIST P-256、NIST P-384、NIST P-521 カーブの ECC キーとすることができます。詳細については、「AWS IoT API リファレンスガイド」の「CreateCertificateFromCsr API」を参照してください。

でサポートされているキーアルゴリズム AWS IoT

次の表は、キーアルゴリズムのサポート方法を示しています。

[キーアルゴリズム] 証明書署名アルゴリズム TLS のバージョン サポート対象? はい/いいえ
キーサイズが 2048 ビット以上の RSA すべて TLS 1.2 TLS 1.3 あり
ECC NIST P-256/P-384/P-521 すべて TLS 1.2 TLS 1.3 あり
キーサイズが 2048 ビット以上の RSA-PSS すべて TLS 1.2 いいえ
キーサイズが 2048 ビット以上の RSA-PSS すべて TLS 1.3 あり

CreateCertificateFromCSR を使用して証明書を作成するには、サポートされているキーアルゴリズムを使用して CSR のパブリックキーを生成できます。RegisterCertificate または RegisterCertificateWithoutCA を使用して独自の証明書を登録するには、サポートされているキーアルゴリズムを使用して証明書のパブリックキーを生成できます。

詳細については、「セキュリティポリシー」を参照してください。