AWS IoT Coreとの連携¶
お客様で用意していただいたAWS IoT Coreのインスタンスに、sakura.ioがクライアント(Publisher/Subscriber)として接続しにいくことでモジュールとのデータ送受信を可能にします。
AWS IoT 連携サービスの作成¶
連携サービスの追加を行いたいプロジェクトの 詳細
ボタンをクリックします。
プロジェクトの詳細ページ内の 連携サービス
をクリックします。連携サービス一覧表示に切り替わるので、右端の 連携サービス追加
をクリックします。
連携サービスの選択画面で AWS IoT
をクリックします。
以下の項目を入力し、 作成
ボタンをクリックします。
項目 | 入力内容 |
---|---|
名前 | 任意 |
ホスト名 | AWS IoT Core側のホスト名 => カスタムエンドポイントの取得 |
ポート番号 | 8883を入力 |
PublishするTopicのプレフィックス | sakura.ioがメッセージをPublishするトピックを指定 |
SubscribeするTopic | sakura.ioがメッセージをSubscribeするトピックを指定 |
TLS | AWS IoT Coreのコンソール上で取得したルート証明書、クライアント証明書、クライアント秘密鍵を入力 => 証明書の作成 |
注意事項
AWS IoT連携サービスではTLSの設定は必須です。 利用するルート証明書、クライアント証明書、クライアント秘密鍵は別途AWS IoT Coreのコンソールで取得してください。 また、Amazon Trust Serviceが署名した証明書を使用する場合には、
Amazon ルート CA 1
のルート証明書を使用してください。 詳しくは以下のリンクを参照してください。Publishは
指定したトピック/モジュールID
というトピックに行われます。PublishおよびSubscribeはQoS Lv0で行われます。
Publish先トピックとSubscribe先トピックの重複は許可されません。
- 許可されない例:Publishプレフィックス
sakura/hoge/
、Subscribeトピックsakura/hoge/
- 許可されない例:Publishプレフィックス
Subscribe先トピック名にワイルドカードはご利用いただけません。
- 許可されない例:Subscribeトピック
sakura/hoge/#
- 許可されない例:Subscribeトピック
AWS IoT 連携サービスの設定変更¶
作成後の AWS IoT の連携サービス名称や各種パラメータは変更が可能です。
各プロジェクト内の AWS IoT 連携サービスをクリックします。
連携サービスの詳細画面が表示されるので、修正したい項目を入力し、 保存
ボタンをクリックします。
AWS IoT Coreの設定について¶
連携サービスの作成前にAWS IoT Coreのコンソールを用いて モノ
に関する設定を行う必要があります。
以下では連携サービス作成画面で入力を求められる項目ごとに解説を行います。
ポリシーの作成¶
モノに割り当てる証明書を作成する前に、モノに割り当てるためのポリシーを作成しておきます。
ポリシーについては、以下を参考にして適切に設定してください。
注釈
- アクション:
iot:*
- リソース ARN:
*
- 効果:
許可
にチェック
カスタムエンドポイントの取得¶
カスタムエンドポイントはAWS IoT連携サービスの接続先ホスト名として使用します。
AWS IoT Coreのコンソール内 「設定 / Setting」の項目から下記のように参照出来ます。
証明書の作成¶
「1-Click 証明書作成 / One-click certificate creation」を用いて証明書を作成できます。
「有効化 / Activate」で証明書を有効にします。
証明書を有効にしたら、証明書とプライベートキーのダウンロードを行います。
上記図中①で示したダウンロードリンクをクリックし、証明書( ******-certificate.pem.crt
)とプライベートキー( ******-private.pem.key
)をダウンロードします。
パブリックキーをダウンロードする必要はありません。
次に、ルート証明書をダウンロードします。
AWS IoT連携サービスで使用するルート証明書は VeriSign-Class 3-Public-Primary-Certification-Authority-G5.pem
または AmazonRootCA1.pem
のどちらかであり、AWS IoT Coreコンソール上で証明書を作成した時期によりどちらを使用するか異なります。
詳しくは AWS IoT Core がお客様に提供する Symantec の認証局無効化の対応方法 | Amazon Web Services ブログ を参照してください。
なお、Amazon Trust Serviceが署名した証明書を使用する場合には、 Amazon ルート CA 1
のルート証明書を使用してください。
sakura.io コントロールパネルでの連携サービス作成時に、以下の通りにダウンロードしたファイルの内容をコピーして貼り付けてください。
注釈
VeriSign-Class 3-Public-Primary-Certification-Authority-G5.pem
またはAmazonRootCA1.pem
は、「ルート証明書(PEM 形式)」のフォームにペーストします。******-certificate.pem.crt
は、「クライアント証明書(PEM 形式)」のフォームにペーストします。******-private.pem.key
は、「クライアント秘密鍵(PEM形式)」のフォームにペーストします。
ポリシーのアタッチ¶
ポリシーの作成 で事前に作成しておいたポリシーをモノにアタッチします。
アタッチしておかないと、sakura.io側から接続した際に接続拒否されてしまい、sakura.ioコントロールパネルで表示される接続ステータスが error
となります。
errorとなってしまった場合、ポリシーを適切に割り当てた後、AWS IoT連携サービスの名称を変更するなど再設定を行うと再接続することができます。
メッセージの疎通を確認¶
上記で設定した AWS IoT Core / sakura.io の連携サービスの設定から疎通を確認します。
- サンプルとして下記のようなトピックを設定した連携サービスを用意します。
項目 | 設定内容 |
---|---|
Publishするトピック | sample/pub |
Subscriptするトピック | sample/sub |
- お客様の sakura.io 通信モジュールからメッセージを送信します。
注釈
- AWS IoT Core 側にトピックを設定したタイミングからメッセージが確認が可能なので、1メッセージずつ送信するのでなく、ループ処理などで常にメッセージを送信し続けるとより確認が容易です。
- AWS IoT Core のテストを開きます。
4. 「トピックへサブスクライブする」から
トピックのサブスクリプションに先程設定した sample/pub
の末尾に、ワイルドカードの /#
を結合した
sample/pub/#
を入力して「トピックへのサブスクライブ」をクリックします。
5. 通信モジュールから送信されたメッセージが
「sample/pub/{通信モジュールのID}
」というトピックへパブリッシュされていることが確認できます。