Soracom

Users

スタートガイド
Home スタートガイド さまざまな SaaS と SORACOM Amazon Web Services (AWS) を設定する Getting Started

AWS IoT Core を利用する

AWS IoT Core を利用するためにドメインやルールを設定

SORACOM 経由で AWS IoT Core を利用できることを確認するために、AWS IoT Core のドメイン設定とルールを作成します。

AWS IoT Core のデフォルトのデータエンドポイントを確認する

AWS IoT Core のデフォルトのデータエンドポイント (iot:Data-ATS) のドメインを確認します。

体験する機能によって設定は異なります。参照元ページの指示に従って操作してください。

ドメイン設定を作成する手順については、AWS IoT Core のドメイン設定を作成する を参照してください。

  1. AWS IoT コンソール にアクセスし、[接続][ドメイン設定] の順にクリックして、「iot:Data-ATS」の行の [ドメイン名] (デフォルトのデータエンドポイント) をメモします。

    はじめて AWS IoT Core を使う場合、AWS マネジメントコンソール画面中央の [Get Started] をクリックしてください。メニュー画面に移動します。

AWS IoT Core のドメイン設定を作成する

体験する機能によって設定は異なります。参照元ページの指示に従って操作してください。

  1. AWS IoT コンソール にアクセスして、[接続][ドメイン設定] の順にクリックします。

    ドメイン設定画面が表示されます。

    はじめて AWS IoT Core を使う場合、AWS マネジメントコンソール画面中央の [Get Started] をクリックしてください。メニュー画面に移動します。

  2. [ドメイン設定を作成] をクリックします。

  3. 以下の項目を設定します。

    項目説明
    [ドメイン設定名]ドメイン設定の名前を入力します。
    [セキュリティポリシーを選択]

    「IoTSecurityPolicy_TLS13_1_2_2022_10」(デフォルト) を選択します。

    Funnel が対応する TLS バージョンは 1.2 です

    [セキュリティポリシーを選択] では、TLS 1.2 に対応するセキュリティポリシーを選択してください。たとえば、「IoTSecurityPolicy_TLS13_1_2_2022_10」は TLS 1.2 に対応しています。

  4. 以下の項目を設定します。

    項目説明
    [認証タイプ]「デフォルト」を選択します。
    [カスタムオーソライザー]「カスタムオーソライザーなし」を選択します。

  5. [ドメイン設定のステータス] で「有効にする」を選択して、[ドメイン設定を作成] をクリックします。

    ドメイン設定画面に戻ります。

  6. [ドメイン設定を表示] をクリックします。

  7. [ドメイン名] をメモします。

    ドメイン名は、これ以降、${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) を作成します。

  1. AWS IoT コンソール にアクセスし、[管理][すべてのデバイス][モノ] の順にクリックして、[モノを作成] をクリックします。

  2. [1 つのモノを作成] を選択し、[次へ] をクリックします。

  3. [モノの名前] を入力し、[次へ] をクリックします。

    次に、作成するモノが AWS IoT に接続するための証明書を作成します。

  4. [新しい証明書を自動生成 (推奨)] を選択し、[次へ] をクリックします。

    「証明書にポリシーをアタッチ - オプション」画面が表示されます。通常はこの画面でポリシーを選択し、証明書にポリシーを割り当てます。ここではポリシーは未作成のため、ポリシーをアタッチしないで進みます。

  5. ポリシーを選択せずに、[モノの作成] をクリックします。

    モノと証明書が作成され、「証明書とキーをダウンロード」画面が表示されます。

  6. 以下の 4 つの [ダウンロード] をクリックします。

    これらの証明書は、後ほど使用します。

    • デバイス証明書 (xxx...xxx-certificate.pem.crt)
    • パブリックキーファイル (xxx...xxx-public.pem.key)
    • プライベートキーファイル (xxx...xxx-private.pem.key)
    • ルート CA 証明書の Amazon ルート CA 1 (AmazonRootCA1.pem)

  7. [完了] をクリックします。

    次に、モノに割り当てるポリシーを作成します。

  8. [管理][セキュリティ][ポリシー][ポリシーを作成] の順にクリックします。

  9. 以下の項目を設定します。

    項目説明
    [ポリシー名]任意の名前を入力します。例: PubSubToAnyTopic
    [ポリシードキュメント]

    モノの権限を設定します。

    • 2 行目以降を追加するには、[新しいステートメントを追加] をクリックします。

  10. [作成] をクリックします。

    ポリシーが作成されます。

    次に、作成した証明書にポリシーをアタッチします。

  11. [管理][セキュリティ][証明書] の順にクリックし、手順 6 でダウンロードしたデバイス証明書のファイル名 (xxx...xxx-certificate.pem.crt) の先頭部分 (xxx...xxx の部分) をコピーして、[証明書を見つける] に貼り付けます。

    作成した証明書が表示されます。

  12. 作成した証明書にチェックを入れて、[アクション][ポリシーをアタッチ] の順にクリックします。

  13. [AWS IoT ポリシー を選択] をクリックし、手順 8 ~ 10 で作成したポリシー (例: PubSubToAnyTopic) にチェックを入れて、[ポリシーをアタッチ] をクリックします。

AWS IoT Core のルールを作成する

ここでは例として、myTopic 配下に Publish (送信) されたメッセージのうち、「temp」フィールドの値が 30 を超えた場合に、Amazon SNS に通知するルールを作成します。あらかじめ Amazon SNS のトピック (以下、SNS トピック) を作成してください。詳しくは、Amazon SNS のトピックを作成する を参照してください。

体験する機能によって設定は異なります。参照元ページの指示に従って操作してください。

  1. AWS IoT コンソール にアクセスし、[メッセージのルーティング][ルール] の順にクリックして、[ルールを作成] をクリックします。

    「ルールのプロパティを指定」画面が表示されます。

  2. [ルール名] を入力して、[次へ] をクリックします。

    「SQL ステートメントを設定」画面が表示されます。

  3. 以下の項目を設定します。

    項目説明
    [SQL のバージョン]「2016-03-23」を選択します。
    [SQL ステートメント]

    Amazon SNS に通知するメッセージのルールを設定します。

    例: myTopic 配下のトピック (例: myTopic/test) に Publish (送信) されたメッセージのうち、「temp」フィールドの値が 30 を超えた場合に、アクションを実行する

    SELECT * FROM 'myTopic/#' WHERE payloads.temp > 30
    

  4. [次へ] をクリックします。

    「ルールアクションをアタッチ」画面が表示されます。

    ここでは、Amazon SNS にルーティングするルールを作成しますが、体験する機能によって設定は異なります。参照元ページの指示に従って操作してください。

  5. [アクション 1] で「Simple Notification Service (SNS)」を選択し、以下の項目を設定します。

    項目説明
    [アクション 1][アクションを選択] に「SNS」を入力して、「Simple Notification Service (SNS)」を選択します。
    [SNS トピック]SNS トピックの ARN を選択します。
    [メッセージ形式]「RAW」を選択します。

  6. [IAM ロール][新しいロールを作成] をクリックします。

    「ロールを作成」画面が表示されます。

  7. [ロール名] に IAM ロールの名前を入力して、[作成] をクリックします。

    「ルールアクションをアタッチ」画面に戻ります。

  8. [次へ][作成] の順にクリックします。

ルールの作成手順について詳しくは、デバイスデータを他のサービスにルーティングする AWS IoT ルールの作成 を参照してください。

AWS IoT Core の MQTT テストクライアントを利用してデータを Publish (送信) する

AWS IoT Core の MQTT メッセージブローカーを利用している場合は、AWS IoT コンソールの [MQTT テストクライアント] からデータを Publish できます。

  1. AWS IoT コンソール にアクセスし、[MQTT テストクライアント] をクリックして、[トピックに公開する] タブで以下の項目を設定します。

    項目説明
    [トピック名]デバイスが Subscribe している MQTT トピック名を入力します。例: beamdemo
    [メッセージペイロード]

    デバイスへ送信するメッセージを入力します。デフォルトでは以下のメッセージが設定されています。

    {
      "message": "AWS IoT コンソールからの挨拶"
    }
    

  2. [発行] をクリックします。

    AWS IoT Core の MQTT メッセージブローカーから、手順 1 で指定したトピック名を Subscribe するデバイスにメッセージが配信され、以下のように表示されます。

    Client mosq-FyNf82gCIce1UkNebM received PUBLISH (d0, q0, r0, m0, 'beamdemo', ... (xx bytes))
    {
      "message": "AWS IoT コンソールからの挨拶"
    }