(レポート)MBL311:AWS IoT: 安全にモノを構築し、プロビジョンし、利用する #reinvent

2015.10.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本日発表された新サービス、AWS IoTのDeep Diveセッションに参加しました。スピーカーは Eric Brandwine です。

mbl311_presenter

このセッションでは AWS IoT サービスに関して

  • モノとAWS ゲートウェイの通信
  • モノの識別
  • AWS ゲートウェイを経由したAWSリソースの操作

でいかにしてセキュリティを担保しているのか説明が行われました。

モノとAWS ゲートウェイの通信

暗号化せずにパケットを送受信すると、様々なツールを使ってパケットの中身をのぞき見出来てしまいます。

AWS IoT では MQTT と HTTP という2つのプロトコルで IoT からデータ送信できます。

  • MQTT では相互認証(mutual authentication) と TLS による暗号化
  • HTTP では AWS 認証と TLS による暗号化

を採用しています。

mbl311_one_service_two_protocols

スライドにも "One Service, Two Protocols" という記述がありますが、このようなサービスを他に知りません。

モノの識別

モノ(クライアント)の識別はX.509 証明書が利用されます。

証明書に必要な公開鍵のペアは AWS が生成することも、ユーザーが作成したものを利用することも出来ます。

証明書ごとに activate, deactivate, revoke と言った操作が可能です。

このサービスで利用される認証局は AWS IoT 専有です。

AWS ゲートウェイを経由したAWSリソースの操作

モノ(クライアント)に何を操作できるようにさせるのかについては、IAM と同じく Policy で制御します。

X.509 のフローで証明書を登録すると "arn:aws:iot:REGION:ACCOUNT_ID:cert/xxxx" という AWS ARN が払いだされます。この ARN に対してポリシーをアタッチします。

mbl311_protocol_convergence

まとめ

AWS IoT のリリースで証明書登録とともに ARN が払い出され、ポリシー設定できるようになりました。

これまでから存在する

  • IAM ユーザー
  • cognito ユーザー

と適宜使い分けていきたいと思います。