接続関連の問題の診断 - AWS IoT Core

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

接続関連の問題の診断

このトピックの改善にご協力ください

への接続に成功するには、 AWS IoT 以下が必要です。

  • 有効な接続

  • 有効かつアクティブな証明書

  • 必要な接続とオペレーションを許可するポリシー

Connection

正しいエンドポイントを見つけるにはどうすればよいですか?
  • endpointAddress によって返される aws iot describe-endpoint --endpoint-type iot:Data-ATS

    または

  • domainName によって返される aws iot describe-domain-configuration –-domain-configuration-name "domain_configuration_name"

正しい Server Name Indication (SNI) 値を見つけるにはどうすればよいですか?

正しい SNI 値は、describe-endpoint によって返される endpointAddress、または describe-domain-configuration コマンドによって返される domainName です。これは、前のステップのエンドポイントと同じアドレスです。デバイスをに接続すると AWS IoT Core、クライアントはサーバー名表示 (SNI) 拡張を送信できます。これは必須ではありませんが、強く推奨します。マルチアカウント登録カスタムドメインVPC エンドポイントなどの機能を使用するには、SNI 拡張機能を使用する必要があります。詳細については、の「トランスポートセキュリティ」を参照してください。 AWS IoT

持続する接続性の問題を解決するにはどうすればよいですか?

AWS Device Advisor を使用してトラブルシューティングを行うことができます。Device Advisor の事前構築されたテストにより、デバイスソフトウェアを TLSMQTTAWS IoT デバイスシャドウ、および AWS IoT Jobs の使用に関するベストプラクティスに照らして検証できます。

ここに既存の Device Advisor コンテンツを参照してください。

認証

AWS IoT エンドポイントに接続するにはデバイスを認証する必要がありますX.509 クライアント証明書認証に使用するデバイスの場合、 AWS IoT 証明書はに登録され、有効になっている必要があります。

AWS IoT デバイスはどのようにエンドポイントを認証しますか?

AWS IoT CA 証明書をクライアントのトラストストアに追加します。AWS IoT Coreのサーバー認証のドキュメントを参照して、リンクから適切な CA 証明書をダウンロードします。

AWS IoTデバイスが接続すると何がチェックされますか?

デバイスが AWS IoTに接続しようとすると、次のようになります。

  1. AWS IoT 証明書とサーバー名表示 (SNI) 値が有効かどうかをチェックします。

  2. AWS IoT AWS IoT 使用した証明書がアカウントに登録され、有効化されていることを確認します。

  3. デバイスがメッセージの購読や公開などのアクションを実行しようとすると AWS IoT、接続に使用した証明書に添付されているポリシーがチェックされ、デバイスにそのアクションを実行する権限があるかどうかが確認されます。

正しく設定された証明書を検証するにはどうすればよいですか?

OpenSSL の s_client コマンドを使用して、 AWS IoT エンドポイントへの接続をテストします。

openssl s_client -connect custom_endpoint.iot.aws-region.amazonaws.com:8443 -CAfile CA.pem -cert cert.pem -key privateKey.pem

openssl s_client の使用の詳細については、OpenSSL s_client ドキュメントを参照してください。

証明書のステータスを確認するにはどうすればよいですか?
  • 証明書を一覧表示する

    証明書 ID がわからない場合は、aws iot list-certificates コマンドを使用してすべての証明書のステータスを確認できます。

  • 証明書の詳細を表示する

    証明書の ID がわかっている場合、このコマンドは証明書に関するより詳細な情報を表示します。

    aws iot describe-certificate --certificate-id "certificateId"
  • AWS IoT コンソールで証明書を確認します。

    AWS IoT コンソールの左側のメニューで、[Secure] (安全性) を選択し、[Certificates] (証明書) を選択します。

    接続に使用している証明書をリストから選択して、その詳細ページを開きます。

    証明書の詳細ページで、現在のステータスを確認できます。

    証明書のステータスは、詳細ページの右上にある [Actions] (アクション) メニューを使用して変更できます。

認証

AWS IoT リソースは、AWS IoT Core ポリシーそれらのリソースにアクションを実行させる権限を与えるために使用されます。アクションを許可するには、 AWS IoT 指定されたリソースに、そのアクションを実行する権限を付与するポリシードキュメントが添付されている必要があります。

ブローカーから PUBNACK または SUBNACK レスポンスを受信しました。何をすればよいですか?

呼び出しに使用している証明書にポリシーが添付されていることを確認してください AWS IoT。すべてのパブリッシュ/サブスクライブオペレーションはデフォルトで拒否されます。

添付されたポリシーが、実行しようとしている[action](アクション)を承認していることを確認してください。

アタッチされたポリシーが、承認されたアクションを実行しようとしているリソースを承認していることを確認してください。

ログに AUTHORIZATION_FAILURE エントリがあります。

呼び出しに使用している証明書にポリシーが添付されていることを確認してください AWS IoT。すべてのパブリッシュ/サブスクライブオペレーションはデフォルトで拒否されます。

添付されたポリシーが、実行しようとしている[action](アクション)を承認していることを確認してください。

アタッチされたポリシーが、承認されたアクションを実行しようとしているリソースを承認していることを確認してください。

ポリシーで承認される内容を確認するにはどうすればよいですか?

AWS IoT コンソールの左側のメニューで、[Secure] (安全性) を選択し、[Certificates] (証明書) を選択します。

接続に使用している証明書をリストから選択して、その詳細ページを開きます。

証明書の詳細ページで、現在のステータスを確認できます。

証明書の詳細ページの左側のメニューで、[Policies] (ポリシー) を選択して、証明書にアタッチされているポリシーを表示します。

目的のポリシーを選択して、その詳細ページを表示します。

ポリシーの詳細ページで、ポリシーの[Policy document] (ポリシードキュメント) を確認して、何が許可されているかを確認します。

ポリシードキュメントを変更するには、[Edit policy document] (ポリシードキュメントの編集) を選択します。

セキュリティと ID

AWS IoT カスタムドメイン設定用のサーバー証明書を提供する場合、証明書には最大 4 つのドメイン名が含まれます。

詳細については、「AWS IoT Core エンドポイントとクォータ」を参照してください。