接続関連の問題の診断 - 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"

正しいサーバー名表示 (SNI) 値を見つけるにはどうすればよいですか?

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

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

AWS Device Advisor を使用してトラブルシューティングを行うことができます。Device Advisor の事前構築されたテストは、、TLSMQTTAWS IoT Device Shadow 、および 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、「 s_client ドキュメントを開くSSL」を参照してください。

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

    証明書 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 エンドポイントとクォータ」を参照してください。