こんにちは、ソラコムのプロジェクトマネージャーの江木(nori)です。好きなサービスはSORACOM Beamです。大好きなサービスはSORACOM Fluxです。
今回、SORACOM Flux の Webhook アクション が 認証ヘッダーに対応し、AWS の認証方式である AWS Signature V4(以下、AWS SigV4) にも対応しました!このアップデートにより、Flux アプリから AWS のさまざまなサービスを安全に呼び出すことができるようになりました。
SORACOM Flux とは
SORACOM Flux は、IoTシステムの高度な自動化を目的としたローコード IoT アプリケーションビルダーです。SORACOM Flux を使うことで、IoTデバイスやWebhook からの入力、タイマーイベントなどをトリガーにルールとアクションを組み合わせた処理を行い、処理結果に応じて任意のサービスに Webhook を送信したり、担当者に Slack やメールで通知できます。
このたび、SORACOM Flux の Webhook アクション でソラコムの認証情報ストア上の認証情報をもとに 認証ヘッダーを作成できるようになりました。サポートする認証タイプは、以下の4つのタイプです。
- AWS Signature V4 (AWS SigV4)
- Basic 認証
- Bearer トークン
- Bearer トークン(JWT)
作成された認証ヘッダーは SORACOM Flux の Webhook アクションからの HTTP リクエストへ付与され、お客様のサーバーやクラウドサービスとの認証に利用できます。
Bearer トークンは、SaaS の API で用いられることが多く、SORACOM Flux 上で加工された IoT データをローコードで SaaS と連携できます。また、AWS SigV4 を利用できるようになったことで様々なAWSサービスを呼び出すことが可能になります。
ここからは AWS SigV4 に焦点を当てて、メリットや考えられる利用例を紹介します。
AWS SigV4 とは
AWS SigV4 は、AWS への HTTP リクエストに認証情報を付与するための方式です。AWS リソースへのリクエストをセキュアに実行するためには、以下の認証情報を含む署名が必要となりますが、
- アクセスキー ID
- シークレットアクセスキー
- リクエスト情報(HTTP メソッド、URL、ヘッダー、クエリパラメーターなど)
通常、この署名を生成するにはデバイスやアプリケーションに認証情報と生成ロジックを実装する必要があります。しかし、今回のアップデートにより、SORACOM Flux が自動的にこの署名を生成し、Flux アプリから Webhook リクエストに付加できるようになりました!
デバイス側やお客様システムでAWSに認証情報と AWS SigV4 の生成ロジックを持たずとも、セキュアにAWSリソースを呼び出すことが可能となります。
つまり、以下のようなメリットがあります。
- デバイスに認証情報を持たせる必要がない
- AWS のさまざまなサービスを簡単に呼び出せる
- S3、Lambda、Amazon EventBridge、API Gateway など、HTTP エンドポイントを持つ AWS サービスに柔軟に対応可能です。
- ローコードでセキュアなデータ連携を実現
- Flux アプリ上で認証情報の管理や署名の生成をすべてクラウド側に任せられるため、開発効率が向上します。
様々なAWSサービスを呼び出す(ユースケース例)
「様々なAWSのサービスを呼び出す」について、いくつかのユースケースをご紹介したいと思います。
1. AWS IoT へのPublish
AWS IoT にデータをPublishする場合、AWS認証、AWS SigV4 もしくはクライアント証明書が必要となります。今回のSORACOM Flux WebhookアクションのAWS SigV4対応により、デバイス側にクレデンシャル情報(アクセスキー ID、シークレットアクセスキー)を持たなくとも Flux Webhook アクションを通じて AWS SigV4 を使用して、AWS IoT への Publish ができるようになります。
AWS IoT に対してセキュアな HTTP リクエストを送信することで、デバイスシャドウの更新やデバイス群のリモート操作を実現できます。
AWS IoTのPublishは[Webhook アクションの AWS SigV4 認証を利用して AWS IoT に Publish する](https://users.soracom.io/ja-jp/docs/flux/aws-iot/)をご覧ください。
2. IoTデバイスから送信されたデータに応じて AWS Lambda をセキュアに呼び出す
Lambda 関数 URLで IAM 認証を有効にすることで、セキュアにAWS Lambda を呼び出しできます。 AWS SigV4 での署名がある場合にのみ、AWS Lambdaを実行できます。SORACOM Flux と組み合わせることによって、例えば LTE-M Button をシングルクリックした時とダブルクリックした時に呼び出すLambdaをわけて、かつ AWS SigV4の署名をつけてセキュアに Lambda を呼ぶ、といった高度な連携も可能です。
3. Amazon Location Service を使用したデバイスの位置情報のトラッキングやジオフェンス
Amazon Location Serviceには5つ機能が存在します(「AWS公式サイト:Amazon Location overview」参照)。たとえば、GPSマルチユニットSORACOM Edition(https://soracom.jp/store/5235/)と組み合わせ、デバイスの位置情報を表示したり、特定のエリアに入る/出る挙動をした際にイベントを発行しAmazon EventBridgeに連携して通知することも可能です。
4. DynamoDB、RDS へのアクセス
AWS SigV4を使用することで、DynamoDBのレコードにアクセスも可能です。RDSに対してもDataservice API 経由でアクセスできますので、特定のレコードの値を読み取り、デバイスの振る舞いをかえるようなこともできます。
5. その他の AWS サービスへのデータ連携
他にも AWS SigV4を使用することで、たとえば AWS Step Functionsを起動する、Cloudwatch のカスタムメトリクスのパブリッシュ、SQSメッセージを送信する、といった処理も可能となります。さらに SORACOM Flux では条件によって呼び出す AWS リソースを変更できますので、より複雑なワークフローも Flux アプリで構築できます。
まとめ
今回のアップデートにより、SORACOM Flux の Webhook アクションがさらに強力になりました。AWS SigV4 に対応したことで、Flux アプリから AWS の幅広いサービスに簡単かつセキュアに連携できます。
利用にあたって意識いただきたいのは、SaaS や AWS へ送信する際のデータペイロード(フォーマット)です。送信先サービスに合わせて、Webhook アクション内の HTTP ヘッダおよびボディで組み立ててください。
詳しい使い方はユーザーサイト「アクションリファレンス Webhook アクション」をご参照ください!