クライアントが AWS IoT ジャストインタイム登録 (JITR) に接続するときにクライアント証明書を登録する - AWS IoT Core

クライアントが AWS IoT ジャストインタイム登録 (JITR) に接続するときにクライアント証明書を登録する

CA 証明書を設定して、クライアントが初めて AWS IoT に接続したときに、署名したクライアント証明書が AWS IoT に自動的に登録されるようにできます。

クライアントが AWS IoT に初めて接続するときにクライアント証明書を登録するには、CA 証明書の自動登録を有効にし、必要な証明書を提供するようにクライアントによる最初の接続を構成する必要があります。

自動登録をサポートするための CA 証明書の設定 (コンソール)

AWS IoT コンソールを使用してクライアント証明書の自動登録をサポートするように CA 証明書を設定するには
  1. AWS マネジメントコンソールにサインインし、AWS IoT コンソールを開きます。

  2. 左のナビゲーションペインで、[安全性]、[CA] の順に選択します。

  3. 認証局のリストで、自動登録を有効にする認証局を探し、省略記号アイコンを使用してオプションメニューを開きます。

  4. オプションメニューで、[自動登録を有効にする] を選択します。

注記

自動登録ステータスは、認証局の一覧に表示されません。認証局の自動登録ステータスを表示するには、認証局の [詳細] ページを開く必要があります。

自動登録をサポートするための CA 証明書の設定 (CLI)

すでに CA 証明書を AWS IoT に登録している場合は、update-ca-certificate コマンドを使用して CA 証明書の autoRegistrationStatusENABLE に設定します。

aws iot update-ca-certificate \ --certificate-id caCertificateId \ --new-auto-registration-status ENABLE

CA 証明書を登録するときに autoRegistrationStatus を有効にする場合は、register-ca-certificate コマンドを使用します。

aws iot register-ca-certificate \ --allow-auto-registration \ --ca-certificate file://root_CA_cert_filename.pem \ --verification-cert file://verification_cert_filename.pem

CA 証明書のステータスを表示するには、describe-ca-certificate コマンドを使用します。

自動登録のためのクライアントによる最初の接続の設定します

クライアントが AWS IoT に初めて接続しようとするとき、Transport Layer Security (TLS)のハンドシェイク中に、CA 証明書で署名されたクライアント証明書がクライアントに存在する必要があります。

クライアントが AWS IoT に接続するときに、「AWS IoT クライアント証明書を作成する」または「独自のクライアント証明書を作成する」で作成したクライアント証明書を使用します。AWS IoT は CA 証明書を登録済み CA 証明書として認識し、クライアント証明書を登録して、そのステータスを PENDING_ACTIVATION に設定します。これは、クライアント証明書が自動的に登録され、アクティベーションの待機中という事です。クライアント証明書が ACTIVE 状態になると、AWS IoT への接続に使用できるようになります。クライアント証明書の有効化については、「クライアント証明書を有効または無効する」を参照してください。

注記

デバイスのプロビジョニングは、デバイスの AWS IoT Core への最初の接続時に信頼チェーン全体を送信する必要なく、AWS IoT Core ジャストインタイム登録 (JITR) 機能を使って行う事が可能です。CA 証明書の提示はオプションですが、[Server Name Indication (SNI)](サーバーネームインディケーション (SNI)) エクステンションを接続する時にそれらを送信するために、そのデバイスが必要です。

AWS IoT の証明書の自動登録時、またはクライアントが PENDING_ACTIVATION 状態の証明書を提示する時に、AWS IoT は以下の MQTT トピックにメッセージを発行します。

$aws/events/certificates/registered/caCertificateId

ここで、caCertificateId は、クライアント証明書を発行した CA 認定の ID です。

このトピックに発行されたメッセージには、以下の構造があります。

{ "certificateId": "certificateId", "caCertificateId": "caCertificateId", "timestamp": timestamp, "certificateStatus": "PENDING_ACTIVATION", "awsAccountId": "awsAccountId", "certificateRegistrationTimestamp": "certificateRegistrationTimestamp" }

このトピックをリッスンし、いくつかのアクションを実行するルールを作成できます。クライアント証明書が証明書失効リスト (CRL) に含まれていないことを確認し、証明書を有効にし、ポリシーを作成して、証明書にアタッチする、Lambda ルールを作成することをお勧めします。ポリシーによって、クライアントがアクセスできるリソースが決まります。$aws/events/certificates/registered/caCertificateID トピックでリッスンして該当アクションを実行する Lambda ルールの作成方法については、「Just-in-Time Registration of Client Certificates on AWS IoT」を参照してください。

エラーや例外がクライアント証明書の自動登録中に発生した場合、AWS IoT はイベントまたはメッセージを CloudWatch Logs のログに送信します。アカウントのログ設定の詳細については、Amazon CloudWatch のドキュメントを参照してください。