ATECC608A-TNGTLS検証(AWS IoT Multi-Account Registration接続テスト)(ATECC608A-TNGTLS AWS IoT connection test by using Multi-Account Registration)
はじめに
以前、NXP SE050検証(AWS IoT Multi-Account Registration接続テスト)で実施した内容をMicrochip社のATECC608AのTrust and Goという製品で追試する。
前回整理したように、自分のCAを構築して、それを登録、共通のCAで認証されたデバイスを接続させるJust In Time Registrationよりも簡素化した、Multi-Account-Registrationを利用し、チップメーカーのCAを利用してデバイスを認証させる流れとなる。
ATECC608AのTrust and Go
ATECC608Aは16個のスロットの役割、権限を個別に設定できるConfigを設定し使用できるようになる。
また証明書は定義ファイルを生成し、デバイスとセットで使用する。
しかしこの設定と生成が難解なので、事前に設定されたデバイスとして販売されている。
特にTrust and Goはチップを購入した段階で書き込まれている証明書の台帳が入手できるらしい。
Microchip DirectでTrust and Goを購入してみた。
3/3に発注して3/20に到着した。小ロットでプログラムしてもらう手間を考えるとこんなものだろう。
このOrder History画面から、"Download Manifest"をクリックすると、jsonのファイルがダウンロードできる。
このJSON のファイルの中にオーダー分の証明書が収まっている形。
AWS側の準備
AWS CLIから設定を行っていく。
環境
aws --version
aws-cli/2.0.56 Python/3.7.7 Windows/10 exe/AMD64
今回の検証を行ったGitレポジトリをクローンする。
git clone --recursive https://github.com/kmwebnet/ECC608-TNG-AWS-Connect.git
cd ECC608-TNG-AWS-Connect
まず、manifest fileから証明書を抜き出すスクリプトを実行し、certs/フォルダ内にPEMファイルとして保存する。
pip install python-jose[cryptography]
manifestdecoder.py --manifest <マニフェストファイル>
AWS IoTにデバイス証明書を登録した後に割り当てるポリシーを作成する。
aws iot create-policy --policy-name wildcardpolicy --policy-document file://wildcardpolicy
{
"policyName": "wildcardpolicy",
"policyArn": "arn:aws:iot:ap-northeast-1:XXXXXXXXXXXX:policy/wildcardpolicy",
"policyDocument": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"iot:Connect\",\n \"iot:Publish\",\n \"iot:Receive\",\n \"iot:Subscribe\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n",
"policyVersionId": "1"
}
後はデバイスの数だけ証明書を登録し、ポリシーを割り当てる。
aws iot register-certificate-without-ca --certificate-pem file://certs/0123XXXXXXXXXXXX01 --status ACTIVE
{
"certificateArn": "arn:aws:iot:ap-northeast-1:XXXXXXXXXXXX:cert/56366869fd...96b05161",
"certificateId": "56366869fd8....096b05161"
}
aws iot attach-policy --target "arn:aws:iot:ap-northeast-1:XXXXXXXXXXXX:cert/56366869....96b05161" --policy-name wildcardpolicy
最後にデバイスからアクセスするエンドポイントURLを取得する
aws iot describe-endpoint --endpoint-type iot:Data-ATS
{
"endpointAddress": "XXXXXXXXXX-ats.iot.ap-northeast-1.amazonaws.com"
}
ESP32でのテスト
手元のESP32 Devkitを使い、AWSへの接続を試してみた。
Author And Source
この問題について(ATECC608A-TNGTLS検証(AWS IoT Multi-Account Registration接続テスト)(ATECC608A-TNGTLS AWS IoT connection test by using Multi-Account Registration)), 我々は、より多くの情報をここで見つけました https://qiita.com/kmitsu76/items/4959859c02da479c26c1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .