LoginSignup
0
0

AWS IoT のデバイス登録を CLI で行う

Last updated at Posted at 2024-02-11

RaspberryPi や Arduino などのIoTデバイスを AWS IoT と通信させるには、AWS IoT コンソールから「モノ」を登録する必要があります。

フリートプロビジョニングに対応していないIoTデバイスが、そこそこ纏まった数で納品(出荷)されるようになってくると、これをGUIからチマチマ登録するのは面倒だと気付きました。

image.png

そこで、AWS CloudShell (CLI) から登録するよう手順を改めました。

証明書保存ディレクトリ作成
mkdir certs
cd certs

# モノの名前をシェル変数に定義
THING_NAME=[モノの名前]

# モノ単位でサブディレクトリを作成(ZIPで固め易くする)
mkdir $THING_NAME
cd $THING_NAME
モノの作成
aws iot create-thing --thing-name $THING_NAME --thing-type-name [モノのタイプ]

モノのタイプは、管理が容易になるよう予め作成してあります。

静的グループにモノを追加
aws iot add-thing-to-thing-group --thing-name $THING_NAME --thing-group-name [グループ名]

予め、グループに対して権限が設定されています。

証明書作成
# JSON形式ですべて出力
aws iot create-keys-and-certificate --set-as-active > cert.json

# X.509証明書ファイルを抽出
jq .certificatePem cert.json -r > certificate.pem.crt

# プライベートキーファイルを抽出
jq .keyPair.PrivateKey cert.json -r > private.pem.key

# パブリックキーファイルを抽出
jq .keyPair.PublicKey cert.json -r > public.pem.key

# 証明書のARN(AWSリソースを一意に識別できるID)をシェル変数に定義
CERT_ARN=`jq .certificateArn cert.json -r`

# 証明書にモノを紐付ける
aws iot attach-thing-principal --thing-name $THING_NAME --principal $CERT_ARN

証明書の作成を次のようにしても良いですが、証明書のARNは控えておいて下さい。

aws iot create-keys-and-certificate --set-as-active \
    --certificate-pem-outfile certificate.pem.crt \
    --private-key-outfile private.pem.key \
    --public-key-outfile public.pem.key
デバイスごとの証明書一式をS3にアップロード
# ZIPで固める
cd ..
zip -r $THING_NAME $THING_NAME

# S3に保存
aws s3 cp $THING_NAME.zip s3://example
aws s3 ls s3://example
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0