デバイスをAWS IoT Coreに接続する前にやるべきこと
AWSを用いたIoTシステムにおいて、真っ先に候補に上がるサービスがAWS IoT Coreです。
デバイスをAWS IoT Coreに接続する際、接続先のエンドポイントを確認したり、モノを登録して証明書を取得したり、といった準備が必要です。
具体的な手順はAWSのドキュメントにも記載があります。
しかし、図が少ない、ページが複数に分かれている、機械翻訳が怪しいといった点で、これからAWS IoT Coreを使い始める人には少しオススメしづらいです。
そういった状況を踏まえ、本記事ではAWS IoT Coreを初めて使う方向けに、デバイスを接続するためにやるべき手順をまとめます。
【注意】本記事では解説しないこと
本記事では次の内容については触れません。ご注意ください。
- X.509そのものの説明や理論
- 「IAM ユーザー、グループ、ロール」や「Amazon Cognito ID」といった「X.509」以外のクライアント認証方法
- AWS IoT Coreへユーザー自身が用意した証明書を持ち込んで利用する方法
- AWS IoT Core フリートプロビジョニングを利用したプロビジョニング方法
エンドポイントを確認する
まず、デバイスにとっての接続先となる、「エンドポイント」を確認しましょう。
AWS マネジメントコンソールにサインインします。
サインインしたら画面上部の「検索」と書かれた箇所に「iot core」と入力することで、AWS IoT Coreのコンソール画面に移動します。
画面左側のメニューの下から3番目にある「設定」をクリックすると、画面中央に「エンドポイント」が表示されます。
ここに記載されている文字列をコピーしておきましょう。
証明書を作成する
AWS IoT Core ポリシーを作成する
次の手順として、デバイスを認証するために必要な「証明書」を作成していきます。しかし、「証明書」を作成する際には「AWS IoT Core ポリシー」を選択する必要があり、これはあらかじめ作成しておく方がスムーズに作業を進められます。
「AWS IoT Core ポリシー」とは、その証明書を持つクライアントにどういったアクションを許可するかを記載したJSONドキュメントです。JSONドキュメントを直接編集することもできますし、画面操作から作成することもできます。本記事では画面操作から作成する方法を解説します。
AWS IoT Coreのコンソール画面左側のメニューにて、「セキュリティ」→「ポリシー」をクリックします。すると画面右上に「ポリシーを作成」というボタンが表示されるのでこれをクリックします。
フォームが表示されたら、「ポリシー名」を入力します。
続いて、このポリシーで許可するアクションを入力します。「ポリシー効果」「ポリシーアクション」「ポリシーリソース」をそれぞれ入力します。画像は、接続およびパブリッシュ(AWS IoT Coreへのデータ送信)を全て許可する例です。入力したら「作成」をクリックしましょう。
モノを作成する
いよいよ「証明書」を作成します。証明書は単体でも作成は可能ですが、AWS IoT Coreでは「モノ」を作成することで証明書だけでなくモノのプロパティ(名前やタイプ)・グループも併せて設定できます。こちらの方が便利なので、モノを作成していきます。
AWS IoT Coreのコンソール画面左側のメニューにて、「すべてのデバイス」→「モノ」をクリックします。すると画面右上に「モノを作成」というボタンが表示されるのでこれをクリックします。
「作成するモノの数」を指定する画面が表示されます。今回は1つのモノを作成するので「1つのモノを作成」をクリックし「次へ」をクリックします。
「モノのプロパティを指定」と書かれたフォームが表示されます。「モノの名前」に任意の名前を入力しましょう。
そのまま画面をスクロールして「次へ」をクリックします。
続いて証明書の作成方法を選択します。今回は「新しい証明書を自動生成 (推奨)」をクリックし、「次へ」をクリックしましょう。
この証明書にアタッチするポリシーを選択します。先ほど作成したポリシーを選択し、「モノを作成」をクリックしましょう。
「証明書とキーをダウンロード」というモーダルが表示されます。「デバイス証明書」「キーファイル」「ルートCA証明書」が後々必要となるのでそれぞれダウンロードしておきましょう。
証明書を削除する
作った証明書を破棄する際は以下の手順で操作ください。
証明書はモノ・ポリシーから切り離された状態でないと削除できないため、操作が複雑です。注意してください。
モノにアタッチされた証明書を削除する
AWS IoT Coreのコンソール画面左側のメニューにて、「すべてのデバイス」→「モノ」をクリックします。削除したいモノのリンクをクリックします。
「証明書」タブを開き、表示される証明書を選択します。証明書が複数存在する場合は、証明書の数だけ以降の操作を繰り返してください。
表示されるポリシーを選択し、「ポリシーをデタッチ」をクリックします。ポリシーが複数存在する場合は、ポリシーの数だけ操作を繰り返してください。
モーダルが表示されるので「デタッチ」をクリックします。
ポリシーを全てデタッチしたら、次に「モノ」タブを開き、表示されるモノを選択し、「モノからのデタッチ」をクリックします。モノが複数存在する場合は、モノの数だけ操作を繰り返してください。
モーダルが表示されるので「デタッチ」をクリックします。
画面上部に戻り「アクション」→「無効化」をクリックします。
モーダルが表示されるので「無効化」をクリックします。
次に「アクション」→「削除」をクリックします。
モーダルが表示されるので「削除」と入力して、「削除」をクリックします。
モノを削除する
AWS IoT Coreのコンソール画面左側のメニューにて、「すべてのデバイス」→「モノ」をクリックします。削除したいモノを選択して「削除」をクリックします。
モーダルが表示されるのでモノの名前を入力して「削除」をクリックします。
ポリシーを削除する
ポリシーも不要であれば削除しておきましょう。
AWS IoT Coreのコンソール画面左側のメニューにて、「セキュリティ」→「ポリシー」をクリックします。削除したいポリシーを選択して「削除」をクリックします。
モーダルが表示されるのでポリシーの名前を入力して「削除」をクリックします。
まとめ
以上がエンドポイントの確認および証明書の作成手順です。これらの情報をデバイスに渡すことで、デバイスから接続やデータの送信が行えるようになります。
画面遷移が多く最初は混乱しがちですが、慣れると自然に行えるようになるので、必要に応じてこの記事を見返しながら覚えていってください。
Discussion