ステップ 2: AWS IoT で Raspberry Pi をプロビジョニングする - AWS IoT Core

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

ステップ 2: AWS IoT で Raspberry Pi をプロビジョニングする

このセクションの手順は、AWS CLI と AWS IoT Device Client がインストールされ、保存された microSD イメージから開始し、AWS IoT リソースと Raspberry Pi をプロビジョニングするデバイス証明書を AWS IoT に作成します。

Raspberry Pi に microSD カードをインストールします。

この手順では、このラーニングパスのチュートリアルを続けることができるように、必要なソフトウェアがロードおよび設定された microSD カードを Raspberry Pi にインストールし、AWS アカウント を設定します。

このラーニングパスの演習とチュートリアルに必要なソフトウェアが格納されている (オプション) microSD カードイメージを保存する で作成した microSD カードを使用します。

Raspberry Pi に microSD カードをインストールするには
  1. Raspberry Pi の電源を切断した状態で、microSD カードを Raspberry Pi に挿入します。

  2. Raspberry Pi の電源を入れます。

  3. 約 1 分後、ローカルホストコンピュータで、ターミナルウィンドウセッションを再起動し、Raspberry Pi にログインします。

  4. ローカルホストコンピュータのターミナルウィンドウで、[Access Key ID] (アクセスキー ID) と [Secret Access Key] (シークレットアクセスキー) を使用して、Raspberry Pi の認証情報に次の操作を行います。

    1. 次のコマンドで AWS 設定アプリケーションを実行します。

      aws configure
    2. プロンプトが表示されたら、AWS アカウント 認証情報と設定情報を次のように入力します。

      AWS Access Key ID [****************YXYX]: your Access Key ID AWS Secret Access Key [****************YXYX]: your Secret Access Key Default region name [us-west-2]: your AWS リージョン code Default output format [json]: json

AWS アカウント 認証情報を復元したら、AWS IoT Core でデバイスをプロビジョニングする に進む準備が整います。

AWS IoT Core でデバイスをプロビジョニングする

このセクションの手順では、Raspberry Pi をプロビジョニングする AWS IoT リソースを AWS IoT に作成します。これらのリソースを作成する際には、さまざまな情報を記録するように求められます。この情報は、次に行う手順の AWS IoT Device Client の設定に使用します。

Raspberry Pi が AWS IoT で機能するためには、プロビジョニングする必要があります。プロビジョニングは、Raspberry Pi を IoT デバイスとしてサポートするために必要な AWS IoT リソースを作成および設定するプロセスです。

Raspberry Pi の電源を入れて再起動したら、ローカルホストコンピュータのターミナルウィンドウを Raspberry Pi に接続し、以下の手順を完了します。

デバイス証明書ファイルを作成およびダウンロードする

この手順では、このデモのデバイス証明書ファイルが作成されます。

Raspberry Pi のデバイス証明書ファイルを作成してダウンロードするには
  1. ローカルホストコンピュータのターミナルウィンドウで、次のコマンドを入力して、デバイスのデバイス証明書ファイルを作成します。

    mkdir ~/certs/testconn aws iot create-keys-and-certificate \ --set-as-active \ --certificate-pem-outfile "~/certs/testconn/device.pem.crt" \ --public-key-outfile "~/certs/testconn/public.pem.key" \ --private-key-outfile "~/certs/testconn/private.pem.key"

    このコマンドでは次のようなレスポンスが返されます。後で使用できるように、certificateArn の値を記録しておきます。

    { "certificateArn": "arn:aws:iot:us-west-2:57EXAMPLE833:cert/76e7e4edb3e52f52334be2f387a06145b2aa4c7fcd810f3aea2d92abc227d269", "certificateId": "76e7e4edb3e52f5233EXAMPLE7a06145b2aa4c7fcd810f3aea2d92abc227d269", "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCCAkGgAwIBAgI_SHORTENED_FOR_EXAMPLE_Lgn4jfgtS\n-----END CERTIFICATE-----\n", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BA_SHORTENED_FOR_EXAMPLE_ImwIDAQAB\n-----END PUBLIC KEY-----\n", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQE_SHORTENED_FOR_EXAMPLE_T9RoDiukY\n-----END RSA PRIVATE KEY-----\n" } }
  2. 次のコマンドを入力して、証明書ディレクトリとそのファイルに対するアクセス許可を設定します。

    chmod 745 ~ chmod 700 ~/certs/testconn chmod 644 ~/certs/testconn/* chmod 600 ~/certs/testconn/private.pem.key
  3. 次のコマンドを実行して、証明書のディレクトリおよびファイルに対するアクセス許可を確認します。

    ls -l ~/certs/testconn

    コマンドの出力は、ファイルの日付と時刻が異なることを除いて、ここで表示されるものと同じである必要があります。

    -rw-r--r-- 1 pi pi 1220 Oct 28 13:02 device.pem.crt -rw------- 1 pi pi 1675 Oct 28 13:02 private.pem.key -rw-r--r-- 1 pi pi 451 Oct 28 13:02 public.pem.key

この時点で、デバイス証明書ファイルが Raspberry Pi にインストールされており、AWS IoT リソースの作成 に進むことができます。

AWS IoT リソースの作成

この手順では、AWS IoT でデバイスをプロビジョニングするために、デバイスが AWS IoT 機能とサービスにアクセスするのに必要なリソースを作成します。

AWS IoT でデバイスをプロビジョニングするには
  1. ローカルホストコンピュータのターミナルウィンドウで、次のコマンドを入力して、AWS アカウント のデバイスデータエンドポイントのアドレスを取得します。

    aws iot describe-endpoint --endpoint-type IoT:Data-ATS

    これまでの手順で入力したコマンドでは次のようなレスポンスが返されます。後で使用できるように、endpointAddress の値を記録しておきます。

    { "endpointAddress": "a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com" }
  2. 次のコマンドを入力して、Raspberry Pi 用の AWS IoT のモノのリソースを作成します。

    aws iot create-thing --thing-name "DevCliTestThing"

    AWS IoT のモノのリソースが作成された場合、コマンドは次のようなレスポンスを返します。

    { "thingName": "DevCliTestThing", "thingArn": "arn:aws:iot:us-west-2:57EXAMPLE833:thing/DevCliTestThing", "thingId": "8ea78707-32c3-4f8a-9232-14bEXAMPLEfd" }
  3. ターミナルウィンドウで、次の操作を行います。

    1. nano などのテキストエディタを開きます。

    2. この JSON ポリシードキュメントをコピーして、開いているテキストエディタに貼り付けます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect" ], "Resource": [ "*" ] } ] }
      注記

      このポリシードキュメントでは、すべてのリソースに対する接続、受信、発行、およびサブスクリプションを許可するという広範なアクセス許可が付与されます。通常、ポリシーは、特定のアクションを実行するアクセス許可を特定のリソースのみに付与します。ただし、最初のデバイス接続テストでは、このテスト中のアクセス問題の可能性を最小限に抑えるために、この過度に一般的で広範なアクセス許可を付与するポリシーが使用されます。以降のチュートリアルでは、より狭い範囲のポリシードキュメントを使用して、ポリシー設計のより良いプラクティスを示します。

    3. テキストエディタのファイルを ~/policies/dev_cli_test_thing_policy.json として保存します。

  4. 次のコマンドを実行して、前の手順のポリシードキュメントを使用して AWS IoT ポリシーを作成します。

    aws iot create-policy \ --policy-name "DevCliTestThingPolicy" \ --policy-document "file://~/policies/dev_cli_test_thing_policy.json"

    ポリシーが作成されると、コマンドは次のようなレスポンスを返します。

    { "policyName": "DevCliTestThingPolicy", "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/DevCliTestThingPolicy", "policyDocument": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"iot:Publish\",\n \"iot:Subscribe\",\n \"iot:Receive\",\n \"iot:Connect\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n", "policyVersionId": "1" }
  5. 次のコマンドを実行して、ポリシーをデバイス証明書にアタッチします。certificateArn を以前に保存した certificateArn の値に置き換えます。

    aws iot attach-policy \ --policy-name "DevCliTestThingPolicy" \ --target "certificateArn"

    成功すると、このコマンドは何も返しません。

  6. 次のコマンドを実行して、デバイス証明書を AWS IoT のモノのリソースにアタッチします。certificateArn を以前に保存した certificateArn の値に置き換えます。

    aws iot attach-thing-principal \ --thing-name "DevCliTestThing" \ --principal "certificateArn"

    成功すると、このコマンドは何も返しません。

AWS IoT でデバイスを正常にプロビジョニングすると、ステップ 3: AWS IoT Device Client を設定して接続をテストする に進む準備が整います。