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 リファレンス

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) 拡張子Transport Layer Security (TLS) プロトコルに追加します。SNI 拡張機能の設定の詳細については、「AWS IoT でのトランスポートセキュリティ」を参照してください 。

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

CA 証明書によって署名された証明書の有効期限が切れる日付と時刻は、証明書の作成時に設定されます。AWS IoT によって生成された X.509 証明書は、2049 年 12 月 31 日の午前 0 時 (UTC) (2049-12-31T 23:59:59:59 Z) に有効期限が切れます。AWS IoT コンソールを使用して Amazon ルート CA を使用する証明書を作成する方法の詳細については、「」を参照してください。AWS IoT クライアント証明書を作成する

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

マルチアカウント登録により、同じリージョンまたは異なるリージョン内の AWS アカウント間でデバイスを移動できます。これにより、実稼働前のアカウントでデバイスを登録、テスト、設定し、実稼働アカウントで同じデバイス証明書とデバイス証明書を登録して使用することができます。また、CA を使用せずにデバイス(デバイス証明書)にクライアント証明書を登録するAWS IoT に登録されています。

注記

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

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

マルチアカウント登録を使用するには

  1. デバイス証明書に署名した CA は AWS IoT に登録しないでください。

  2. デバイス証明書は CA を指定せずに登録します。「CA (CLI) を登録せずにクライアント証明書を登録する」を参照してください。

  3. 正しいhost_nameデバイスが AWS IoT に接続されるときに TLS に送信されます。「AWS IoT でのトランスポートセキュリティ」を参照してください。

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

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

  • SHA256WITHRSA

  • SHA384WITHRSA

  • SHA512WITHRSA

  • DSA_WITH_SHA256

  • ECDSA-WITH-SHA256

  • ECDSA-WITH-SHA384

  • ECDSA-WITH-SHA512