

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

# チュートリアル: でのデバイスのプロビジョニング AWS IoT
<a name="shadow-provision-cloud"></a>

このセクションでは、チュートリアルで使用する AWS IoT Core リソースを作成します。

**Topics**
+ [ステップ 1: Device Shadow の AWS IoT ポリシーを作成する](#create-policy-shadow)
+ [ステップ 2: モノのリソースを作成し、ポリシーをモノにアタッチする](#create-thing-shadow)
+ [ステップ 3: 結果と次のステップを確認する](#resources-shadow-review)

## ステップ 1: Device Shadow の AWS IoT ポリシーを作成する
<a name="create-policy-shadow"></a>

X.509 証明書 AWS IoT Core AWS IoT は、デバイスが Device Shadow サービスで使用される MQTT 予約トピックへのサブスクライブや発行などの AWS IoT オペレーションを実行できるようにする証明書にアタッチされます。デバイスは、接続してメッセージを送信するときに証明書を提示します AWS IoT Core。

この手順では、サンプルプログラムの実行に必要な AWS IoT オペレーションをデバイスが実行できるようにするポリシーを作成します。タスクの実行に必要なアクセス許可のみを付与するポリシーを作成することをお勧めします。最初に AWS IoT ポリシーを作成し、後で作成するデバイス証明書にアタッチします。

**AWS IoT ポリシーを作成するには**

1. 左のメニューで、[**Secure**] (安全性)、[**Policies**] (ポリシー) の順に選択します。アカウントに既存のポリシーがある場合は、**[作成]** を選択します。それ以外の場合は、**[ポリシーがまだありません]** ページで **[ポリシーの作成]** を選択します。

1. [**ポリシーの作成**] ページで、以下の手順を実行します。

   1. **[名前]** フィールドに、ポリシーの名前 (**My\$1Device\$1Shadow\$1policy** など) を入力します。ポリシー名で個人を特定できる情報を使用しないでください。

   1. ポリシードキュメントでは、MQTT 予約トピックを発行およびサブスクライブするアクセス許可をデバイスに付与する接続、サブスクライブ、受信、および発行アクションについて説明します。

      以下のサンプルポリシーをコピーして、ポリシードキュメントに貼り付けます。`thingname` を、作成するモノの名前 ( など`My_light_bulb`)、 をサービスを使用している`region` AWS IoT リージョン、 をお客様の AWS アカウント 番号`account`に置き換えます。 AWS IoT ポリシーの詳細については、「」を参照してください[AWS IoT Core ポリシー](iot-policies.md)。  
****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "iot:Publish"
                  ],
                  "Resource": [
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/get",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/update"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "iot:Receive"
                  ],
                  "Resource": [
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/get/accepted",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/get/rejected",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/update/accepted",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/update/rejected",
                      "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingname/shadow/update/delta"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "iot:Subscribe"
                  ],
                  "Resource": [
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/get/accepted",
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/get/rejected",
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/update/accepted",
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/update/rejected",
                      "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingname/shadow/update/delta"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": "iot:Connect",
                  "Resource": "arn:aws:iot:us-east-1:123456789012:client/test-*"
              }
          ]
      }
      ```

## ステップ 2: モノのリソースを作成し、ポリシーをモノにアタッチする
<a name="create-thing-shadow"></a>

に接続されたデバイスは、 AWS IoT レジストリ内の*モノのリソース*で表す AWS IoT ことができます。*モノのリソース*は、このチュートリアルの電球など、特定のデバイスまたは論理エンティティを表します。

でモノを作成する方法については AWS IoT、「」で説明されている手順に従ってください[モノのオブジェクトを作成する](create-iot-resources.md#create-aws-thing)。そのチュートリアルの手順に従うときに注意すべき重要な点がいくつかあります。

1. **[単一のモノを作成する]** を選択し、**[名前]** フィールドに、以前にポリシーを作成したときに指定した `thingname` と同じモノの名前 (例: `My_light_bulb`) を入力します。

   モノを作成した後に名前を変更することはできません。`thingname` 以外の名前を付けた場合は、`thingname` という名前の新しいモノを作成し、古いモノを削除します。
**注記**  
モノの名前で個人を特定できる情報を使用しないでください。モノの名前は、暗号化されていない通信やレポートに表示されることがあります。

1. **[証明書が作成されました\$1]** ページの各証明書ファイルを見つけやすい場所にダウンロードすることをお勧めします。サンプルアプリケーションを実行するには、これらのファイルをインストールする必要があります。

   Raspberry Pi の `home` ディレクトリ内の `certs` サブディレクトリにファイルをダウンロードし、次の表に示されているように、各ファイルに簡素な名前を付けることをお勧めします。  
**証明書ファイル名**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/shadow-provision-cloud.html)

1. 証明書を有効にして接続を有効にしたら AWS IoT、**ポリシーをア**タッチを選択し、以前に作成したポリシー ( など**My\$1Device\$1Shadow\$1policy**) をモノにアタッチしていることを確認します。

   モノを作成したら、モノのリソースが AWS IoT コンソールのモノのリストに表示されます。

## ステップ 3: 結果と次のステップを確認する
<a name="resources-shadow-review"></a>

**このチュートリアルで学習した内容は次のとおりです。**
+ Raspberry Pi デバイスをセットアップおよび設定します。
+ デバイスが サービスとやり取り AWS IoT することを許可する AWS IoT ポリシードキュメントを作成します。
+ モノのリソースと関連する X.509 デバイス証明書を作成し、それにポリシードキュメントをアタッチします。

**次の手順**  
 AWS IoT デバイス SDK for Python をインストールし、`shadow.py`サンプルアプリケーションを実行し、Device Shadows を使用して状態を制御できるようになりました。このチュートリアルの実行方法の詳細については、[チュートリアル: Device SDK のインストールと Device Shadows のサンプルアプリケーションの実行](lightbulb-shadow-application.md) を参照してください。