SORACOM Developers

Getting Started

Krypton を使用して AWS IoT の証明書を発行しデバイス登録する

Krypton は SORACOM が発行する SIM と SORACOM のセルラーコアネットワーク上の SIM 認証基盤を使用し、セキュア・プロビジョニングを提供するサービスです。

はじめに

当ガイドでは、SORACOM Krypton を設定して AWS IoT で自動的にプロビジョニング(デバイス登録)して、証明書を含む設定を取得します。手順は次のとおりです。

  1. AWS IoTポリシーを作成する
  2. 証明書を生成する権限を持つ AWS IAM 資格情報を作成する
  3. SORACOM Krypton を設定する

上記の設定が完了すると Air SIM および Krypton クライアントを使用したデバイスは自動的に AWS IoT で自身をプロビジョニングし MQTTS を使用して AWS IoT にデータを送信できます。

ステップ1: AWS IoTポリシーを作成する

AWS IoT に thing をプロビジョニングするためにはポリシーの定義が必要です。 このセクションでは、SORACOM Krypton でプロビジョニングするデバイスに適用するポリシーを作成する手順を説明します。

AWS IoT Core 管理コンソールにアクセスします。 (画像が英語表記ですが、適宜読み替えてください。)

Krypton-awsiot

「安全性」メニューから「ポリシー」を選択します。 「作成」をクリックします。

Krypton-awsiot

ポリシーを編集します。 「ステートメントを追加」をクリックすると、より多くのポリシーを追加できます。

Krypton-awsiot

「Successfully created」と表示されていることを確認してください。 Krypton の設定で使用するので、ポリシー名を覚えておいてください。

ステップ2: 証明書を生成する権限を持つ AWS IAM 資格情報を作成する

SORACOM Krypton が thing を作成し、証明書を生成してポリシーを適用するには、適切な権限セットを持つAWS資格情報のセットが必要です。 ここでは、AWS IAMユーザーを作成し、AWS資格情報を取得します。

AWS IAM コンソールを表示します。

Krypton-awsiot

「ユーザー」メニューから「ユーザーを追加」をクリックします。

Krypton-awsiot

ユーザー名を入力し、「プログラムによるアクセス」にチェックをつけ「次のステップ:アクセス権限」をクリックします。

Krypton-awsiot

「既存のポリシーを直接アタッチ」を選択します。 「AWSIoTThingsRegistration」を検索してチェックします。

Krypton-awsiot

「ポリシーの作成」をクリックします。

Krypton-awsiot

「IoT」を対象サービスとして選択し [CreateKeysAndCertificate] のチェックボックスを有効にし、 「Review Policy」をクリックします。

Krypton-awsiot

名前を入力して「Create policy」をクリックします。

Krypton-awsiot

「ユーザーを追加」ウィザードに戻り、最後のステップで作成したポリシーを探します(更新ボタンをクリックする必要があります)。チェックボックスをクリックし、 「次のステップ:確認」をクリックします。

Krypton-awsiot

内容を確認し、「ユーザーの作成」をクリックします。

Krypton-awsiot

AWSアクセスキーIDとシークレットキーの両方をコピーして、保存します。(AWSシークレットアクセスキーはこの時点で一度だけ表示されます)   Krypton-awsiot

ステップ3: SORACOM Krypton を設定する

次に、SIM が AWS IoT をプロビジョニングするために Air SIM グループを設定します。 SORACOM 認証情報ストアにエントリを作成し、資格情報IDとAWS IoT関連のパラメータをグループコンフィグレーションで設定します。

SORACOM 認証情報ストアに AWS 資格情報を登録する

SORACOM ユーザーコンソールから、右上のオペレータメニューから「セキュリティ」を選択します。

Krypton-awsiot

認証情報ストアから「認証情報を登録」を選択します。

Krypton-awsiot

認証情報セットに名前を付け、タイプとして「AWS credentials」を選択します。前のセクションで作成した AWS 認証情報を入力します。

Krypton-awsiot

グループコンフィグレーションを作成し、SIM をグループに所属させます。

SORACOM ユーザーコンソールから SIM グループを表示します。

Krypton-awsiot

「追加」ボタンをクリックしてグループを作成します(または既存のグループを使用する場合はグループを選択します)。

Krypton-awsiot

グループをクリックし、グループ設定ビューに移動します。

Krypton-awsiot

SIMグループに AWS IoT 情報を設定します。

「ステップ1」と「ステップ2」で設定した内容から、次のようにグループを設定します

AWS リージョン: AWS IoT のリージョンを入力します。
認証情報: 当ステップで作成した AWS IoT 用の認証情報を選択します。
Policy name: 新しく作成された証明書に割り当てるポリシー名を入力します。
Thing name pattern: クライアントが指定していない場合に使用する Thing name を入力します。 Thing name には $imsi という文字列を含める必要があります。 $imsi はアクセス元の SIM の IMSI に置換されます。
ホスト名: AWS IoTエンドポイントホスト名(AWSアカウントごとに異なります。)
ルート認証局証明書: ルート認証局証明書を入力します。

SORACOMユーザーコンソールの「SIM 管理」メニューに移動します。

Krypton-awsiot

対象の SIM を選択し「アクション」メニューから「所属グループ変更」をクリックしてください。

Krypton-awsiot

グループを選択し、 「更新」をクリックしてください。

Krypton-awsiot

Krypton を使用して Thing を作成し、デバイスを接続する

ここまでで、Air SIM および Krypton を使用してデバイスをプロビジョニングする設定を行いました。ここでは、デバイスを起動して、MQTTSによってAWS IoTに接続するサンプルスクリプトを実行します。

ここでは、node.js プロジェクトのサンプルを使用します。 当サンプルでは、

設定がプロビジョニングされ、ローカルディレクトリに格納されると、スクリプトは保存された情報を使用してAWS IoTに接続します。

サンプルプロジェクト(nodejs) を同じフォルダにダウンロードして解凍してください。 このサンプルプロジェクトを実行するためには以下のソフトウェアが必要となります。必要に応じてインストールしてください。

解凍後に作成されたフォルダ「kryptonExamples」内に移動して、以下のコマンドを実行してください。

$ npm install

次にKryptonの認証方法に応じたセットアップを行います。

SORACOM Air のセルラー回線を使用した認証

SORACOM Air のセルラー回線を使用した認証を用いる場合は以下のコマンドを実行してください。

$ ln -sf krypton-iot-cellular krypton-iot

SORACOM Endorse による SIM 認証

SORACOM Endorse による SIM 認証を用いる場合はまず以下の前提条件をご確認ください。

問題なければ CLI ツールをダウンロードします。現在 Java 版と Go 言語版の2種類の CLI ツールがあります。Java 版の CLI ツールは Java で実装されているためポータビリティがありますが実行には Java のランタイム環境が必要となります。一方で Go 言語版の CLI ツールはビルド済みの実行可能ファイルをお使いの環境にコピーしていただければご利用いただけます。お使いのデバイス、環境に合わせて使い分けてください。

Java 版の CLI ツールの場合は、 soracom-krypton-client-for-javaより soracom-krypton.jar を「kryptonExamples」と同じフォルダ内にダウンロードしてください。 その後「kryptonExamples」内に移動し以下のコマンドを実行してください。

$ ln -sf krypton-iot-endorse-java krypton-iot

Go 言語版の CLI ツールの場合は、krypton-client-goよりお使いの環境にあったバイナリファイルを「kryptonExamples」と同じフォルダ内にダウンロードしてください。 その後「kryptonExamples」内に移動し以下のコマンドを実行してください。

$ ln -sf krypton-iot-endorse-go krypton-iot

以上で認証方法に応じたセットアップは完了です。

Thing を作成し、デバイスを接続する

SORACOM Air のセルラー回線を使用した認証の場合は、Air SIMで接続できていることを確認してください。

node iot-bootstrap.js を実行します。

$ node iot-bootstrap.js

ターミナルで connect というメッセージが表示されるとデバイスは Krypton が提供するブートストラップ情報を使って AWS IoT に正常に登録および接続しました。 AWS IoT 管理コンソールのトピック topic_1 にメッセージを公開することで、次のように確認できます。

Krypton-awsiot

Getting Started

SORACOM Air for セルラー

SORACOM Air for LoRaWAN

SORACOM Air for Sigfox

SORACOM Beam

SORACOM Canal/Direct/Door

SORACOM Endorse

SORACOM Funnel

SORACOM Gate

SORACOM Harvest

SORACOM Inventory

SORACOM Junction

SORACOM Krypton

SORACOM Lagoon

Gadgets

サービス機能詳細

Developer Tools

pagetop