

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

# で Raspberry Pi をプロビジョニングする AWS IoT
<a name="iot-dc-install-provision"></a>

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

## Raspberry Pi に microSD カードをインストールします。
<a name="iot-dc-install-dc-restore"></a>

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

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

**Raspberry Pi に microSD カードをインストールするには**

1. Raspberry Pi の電源を切断した状態で、microSD カードを Raspberry Pi に挿入します。

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

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

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

   1. 次のコマンドを使用して、 AWS アプリの設定を実行します。

      ```
      aws configure
      ```

   1. プロンプトが表示されたら、 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](#iot-dc-install-dc-provision)。

## でデバイスをプロビジョニングする AWS IoT Core
<a name="iot-dc-install-dc-provision"></a>

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

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

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

**Topics**
+ [デバイス証明書ファイルを作成およびダウンロードする](#iot-dc-install-dc-provision-certs)
+ [AWS IoT リソースの作成](#iot-dc-install-dc-provision-resources)

### デバイス証明書ファイルを作成およびダウンロードする
<a name="iot-dc-install-dc-provision-certs"></a>

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

**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"
       }
   }
   ```

1. 次のコマンドを入力して、証明書ディレクトリとそのファイルに対するアクセス許可を設定します。

   ```
   chmod 745 ~
   chmod 700 ~/certs/testconn
   chmod 644 ~/certs/testconn/*
   chmod 600 ~/certs/testconn/private.pem.key
   ```

1. 次のコマンドを実行して、証明書のディレクトリおよびファイルに対するアクセス許可を確認します。

   ```
   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 リソースの作成](#iot-dc-install-dc-provision-resources) に進むことができます。

### AWS IoT リソースの作成
<a name="iot-dc-install-dc-provision-resources"></a>

この手順では、デバイスが 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"
   }
   ```

1. このコマンドを入力して、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"
   }
   ```

1. ターミナルウィンドウで、次の操作を行います。

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

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

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "iot:Publish",
                      "iot:Subscribe",
                      "iot:Receive",
                      "iot:Connect"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```
**注記**  
このポリシードキュメントでは、すべてのリソースに対する接続、受信、発行、およびサブスクリプションを許可するという広範なアクセス許可が付与されます。通常、ポリシーは、特定のアクションを実行するアクセス許可を特定のリソースのみに付与します。ただし、最初のデバイス接続テストでは、このテスト中のアクセス問題の可能性を最小限に抑えるために、この過度に一般的で広範なアクセス許可を付与するポリシーが使用されます。以降のチュートリアルでは、より狭い範囲のポリシードキュメントを使用して、ポリシー設計のより良いプラクティスを示します。

   1. テキストエディタのファイルを **\$1/policies/dev\$1cli\$1test\$1thing\$1policy.json** として保存します。

1. 前のステップのポリシードキュメントを使用して 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"
   }
   ```

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

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

   成功した場合、このコマンドは何も返しません。

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

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

   成功した場合、このコマンドは何も返しません。

でデバイスを正常にプロビジョニングしたら AWS IoT、 に進む準備が整います[接続をテストするように AWS IoT Device Client を設定する](iot-dc-install-configure.md)。