2. ハンズオン準備

ハンズオンを始めるにあたり、事前の準備設定を行います。

2.1. ハンズオン用CloudFormationのスタック作成

ハンズオンで利用するIAMユーザを作成を自動化するために、CloudFormationのスタックを作成します。IAMユーザはデバイスの証明書を作成するための権限を与えるために作成します。 今回のハンズオンでは、セントラルゲートウェイ側でAWS IoTへの処理を行うため、スタッフ側で証明書生成の実行を行います。スタッフが代わりに実行するためスタッフに作成したIAMユーザのAPI Keyを 渡してください。本ユーザは、必ず、ハンズオン終了後に削除してください。 作成されるユーザは、署名要求ができる権限のみ付与しております。


マネージメントコンソールのサービス一覧から”Cloud Formation”をクリックします。

_images/2-cf-1.png

“Choose a template”から”Specify an Amazon S3 template URL”にチェックを入れ、以下のパスを入力し、[Next]をクリックします。

http://toshiake-iot-handson.s3.amazonaws.com/AWSIoT/cf/awsiothandson.template


_images/2-cf-2.png

“Stack Name”に”AWSIoTHandsonStack”と入力し、[Next]をクリックします。

_images/2-cf-3.png

“Options”で何も入力せずに[Next]をクリックします。

_images/2-cf-4.png

“Resource”の画面を下にスクロールし、”Capabilities”で”I acknowledge that this template...”にチェックを入れ、[Create]をクリックします。

_images/2-cf-5.png

Cloud Formationのスタックの一覧に作成したスタックが表示されるのを確認します。Statusは”CREATE_IN_PROGRESS”から”CREATE_COMPLETE”になるのを確認します。

_images/2-cf-6.png

_images/2-cf-7.png

画面下の”Output”タブをクリックし、AccessKeyとSecretKeyが表示されていることを確認し、こちらの内容をスタッフの支持に従って渡してください。

_images/2-cf-8.png

2.2. 【スタッフ用】サンプルコードの準備

証明書を取得するためのスクリプトの設定を行います。各デバイスごとのフォルダ{device-id}以下のcertsディレクトリに移動し、config.jsonの先ほどコピーしたCloudFormationのOutputのAccessKey/SecretKeyを入力します。

root:~# cd {device-id}/certs
root:~/{device-id}/certs# vi config.json

{
  "accessKeyId": "<your access key>",        ←<your access key>にAccessKeyを入力
  "secretAccessKey": "<your secret key>",    ←<your secret key>にSecretKeyを入力
  "region": "ap-northeast-1"
}

証明書作成のスクリプトを実行します。certsディレクトリにプライベートキー(privatekey.pem)とCSR(cert.csr)がある前提です。なければ、作成してください。CSRの内容を元に証明書を作成しています。出力されるcertificateIdの英数字文字列をデバイス保有者に渡してください。次章のAWS IoTの設定の中で証明書を特定するために利用します。

 root@edison:~/{device-id}/certs# node create_cert.js
 ~
 { certificateArn: 'arn:aws:iot:ap-northeast-1:xxxxxxxxxxxxxx:cert/<英数字文字列>',
certificateId: '<英数字文字列>',
~

証明書ファイル(cert.pem)がcertsディレクトリ内に存在することを確認します。

root@edison:~/{device-id}/certs# ls
cert.csr        config.json     node_modules    rootca.crt
cert.pem        create_cert.js  privatekey.pem