SORACOM 経由で AWS IoT Core を利用できることを確認するために、AWS IoT Core のドメイン設定とルールを作成します。
AWS IoT Core のデフォルトのデータエンドポイントを確認する
AWS IoT Core のデフォルトのデータエンドポイント (iot:Data-ATS) のドメインを確認します。
体験する機能によって設定は異なります。参照元ページの指示に従って操作してください。
ドメイン設定を作成する手順については、AWS IoT Core のドメイン設定を作成する を参照してください。
AWS IoT コンソール にアクセスし、 → の順にクリックして、「iot:Data-ATS」の行の (デフォルトのデータエンドポイント) をメモします。
はじめて AWS IoT Core を使う場合、AWS マネジメントコンソール画面中央の
をクリックしてください。メニュー画面に移動します。
AWS IoT Core のドメイン設定を作成する
体験する機能によって設定は異なります。参照元ページの指示に従って操作してください。
AWS IoT コンソール にアクセスして、 → の順にクリックします。
ドメイン設定画面が表示されます。
はじめて AWS IoT Core を使う場合、AWS マネジメントコンソール画面中央の
をクリックしてください。メニュー画面に移動します。をクリックします。
以下の項目を設定します。
項目 説明 ドメイン設定の名前を入力します。 「IoTSecurityPolicy_TLS13_1_2_2022_10」(デフォルト) を選択します。
Funnel が対応する TLS バージョンは 1.2 です
では、TLS 1.2 に対応するセキュリティポリシーを選択してください。たとえば、「IoTSecurityPolicy_TLS13_1_2_2022_10」は TLS 1.2 に対応しています。
以下の項目を設定します。
項目 説明 「デフォルト」を選択します。 「カスタムオーソライザーなし」を選択します。 で「有効にする」を選択して、 をクリックします。
ドメイン設定画面に戻ります。
をクリックします。
をメモします。
ドメイン名は、これ以降、${device_data_endpoint} と表記します。例:
<ランダムな文字列>.iot.ap-northeast-1.amazonaws.com
以下のようなエンドポイントは、非推奨とされています。利用しないでください。
data.iot.[リージョン名].amazonaws.com
Funnel から AWS IoT へデータを送信する場合は、上記のドメイン名 (
<ランダムな文字列>.iot.ap-northeast-1.amazonaws.com
) を利用してください。詳細は、AWS IoT Core がお客様に提供する Symantec の認証局無効化の対応方法 | Amazon Web Services ブログ を参照してください。
AWS IoT Core にモノ (Things) を作成する
AWS IoT Core でデバイスを管理するために、AWS IoT Core にモノ (Things) を作成します。
AWS IoT コンソール にアクセスし、 → → の順にクリックして、 をクリックします。
を選択し、 をクリックします。
を入力し、 をクリックします。
次に、作成するモノが AWS IoT に接続するための証明書を作成します。
を選択し、 をクリックします。
「証明書にポリシーをアタッチ - オプション」画面が表示されます。通常はこの画面でポリシーを選択し、証明書にポリシーを割り当てます。ここではポリシーは未作成のため、ポリシーをアタッチしないで進みます。
ポリシーを選択せずに、
をクリックします。モノと証明書が作成され、「証明書とキーをダウンロード」画面が表示されます。
以下の 4 つの
をクリックします。これらの証明書は、後ほど使用します。
- デバイス証明書 (
xxx...xxx-certificate.pem.crt
) - パブリックキーファイル (
xxx...xxx-public.pem.key
) - プライベートキーファイル (
xxx...xxx-private.pem.key
) - ルート CA 証明書の Amazon ルート CA 1 (
AmazonRootCA1.pem
)
- デバイス証明書 (
をクリックします。
次に、モノに割り当てるポリシーを作成します。
→ → → の順にクリックします。
以下の項目を設定します。
項目 説明 任意の名前を入力します。例: PubSubToAnyTopic モノの権限を設定します。
- 2 行目以降を追加するには、 をクリックします。
をクリックします。
ポリシーが作成されます。
次に、作成した証明書にポリシーをアタッチします。
→ → の順にクリックし、手順 6 でダウンロードしたデバイス証明書のファイル名 (xxx...xxx-certificate.pem.crt
) の先頭部分 (xxx...xxx
の部分) をコピーして、 に貼り付けます。作成した証明書が表示されます。
作成した証明書にチェックを入れて、
→ の順にクリックします。をクリックし、手順 8 ~ 10 で作成したポリシー (例: PubSubToAnyTopic) にチェックを入れて、 をクリックします。
AWS IoT Core のルールを作成する
ここでは例として、myTopic 配下に Publish (送信) されたメッセージのうち、「temp」フィールドの値が 30 を超えた場合に、Amazon SNS に通知するルールを作成します。あらかじめ Amazon SNS のトピック (以下、SNS トピック) を作成してください。詳しくは、Amazon SNS のトピックを作成する を参照してください。
体験する機能によって設定は異なります。参照元ページの指示に従って操作してください。
AWS IoT コンソール にアクセスし、 → の順にクリックして、 をクリックします。
「ルールのプロパティを指定」画面が表示されます。
を入力して、 をクリックします。
「SQL ステートメントを設定」画面が表示されます。
以下の項目を設定します。
項目 説明 「2016-03-23」を選択します。 Amazon SNS に通知するメッセージのルールを設定します。
例: myTopic 配下のトピック (例: myTopic/test) に Publish (送信) されたメッセージのうち、「temp」フィールドの値が 30 を超えた場合に、アクションを実行する
SELECT * FROM 'myTopic/#' WHERE payloads.temp > 30
をクリックします。
「ルールアクションをアタッチ」画面が表示されます。
ここでは、Amazon SNS にルーティングするルールを作成しますが、体験する機能によって設定は異なります。参照元ページの指示に従って操作してください。
で「Simple Notification Service (SNS)」を選択し、以下の項目を設定します。
項目 説明 に「SNS」を入力して、「Simple Notification Service (SNS)」を選択します。 SNS トピックの ARN を選択します。 「RAW」を選択します。 の をクリックします。
「ロールを作成」画面が表示されます。
に IAM ロールの名前を入力して、 をクリックします。
「ルールアクションをアタッチ」画面に戻ります。
→ の順にクリックします。
ルールの作成手順について詳しくは、デバイスデータを他のサービスにルーティングする AWS IoT ルールの作成 を参照してください。
AWS IoT Core の MQTT テストクライアントを利用してデータを Publish (送信) する
AWS IoT Core の MQTT メッセージブローカーを利用している場合は、AWS IoT コンソールの
からデータを Publish できます。AWS IoT コンソール にアクセスし、 をクリックして、 タブで以下の項目を設定します。
項目 説明 デバイスが Subscribe している MQTT トピック名を入力します。例: beamdemo デバイスへ送信するメッセージを入力します。デフォルトでは以下のメッセージが設定されています。
{ "message": "AWS IoT コンソールからの挨拶" }
をクリックします。
AWS IoT Core の MQTT メッセージブローカーから、手順 1 で指定したトピック名を Subscribe するデバイスにメッセージが配信され、以下のように表示されます。
Client mosq-FyNf82gCIce1UkNebM received PUBLISH (d0, q0, r0, m0, 'beamdemo', ... (xx bytes)) { "message": "AWS IoT コンソールからの挨拶" }