次のページの作業を私なりにやってみました。
[AWS CLI] AWS IoTの作成
Things の登録
aws iot create-thing --thing-name sunflower
Things の一覧
aws iot list-things
名前を指定して表示
aws iot describe-thing --thing-name sunflower
Things の削除 (やり直しをする時の為)
aws iot delete-thing --thing-name sunflower
証明書の作成、アクティブ化
aws iot create-keys-and-certificate --set-as-active > cert.json
cert.json から秘密鍵を抜き出す
cat cert.json | jq .keyPair.PrivateKey -r > private.pem.key
cert.json から certificate-id を抜き出す
jq .certificateId cert.json > certificate-id.txt
証明書の作成
create_cert.sh
#
# create_cert.sh
#
CERTIFICATED_ID=`cat certificate-id.txt | sed 's/"//g'`
#
aws iot describe-certificate --certificate-id $CERTIFICATED_ID --output text \
--query certificateDescription.certificatePem > cert.pem
証明書の確認
openssl x509 -text < cert.pem
IoTポリシの作成
policy.json
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action":["iot:*"],
"Resource": ["*"]
}]
}
aws iot create-policy --policy-name sunflower-policy \
--policy-document file://policy.json
ポリシーの一覧
aws iot list-policies
IoTポリシーの確認
この時に表示される、"policyArn" を使う
aws iot get-policy --policy-name sunflower-policy > sunflower_policy.json
証明書にIoTポリシを紐付ける
attach_policy.sh
CERTIFICATED_ID=`cat certificate-id.txt | sed 's/"//g'`
echo $CERTIFICATED_ID
#
CERTARN=`jq .certificateArn cert.json | sed 's/"//g'`
echo $CERTARN
#
aws iot attach-principal-policy \
--principal $CERTARN \
--policy-name "sunflower-policy"
紐付けを表示
list_attach_policy.sh
CERTIFICATED_ID=`cat certificate-id.txt | sed 's/"//g'`
echo $CERTIFICATED_ID
#
CERTARN=`jq .certificateArn cert.json | sed 's/"//g'`
echo $CERTARN
#
aws iot list-principal-policies \
--principal $CERTARN
証明書にThingsを紐付けます
attach_things.sh
CERTIFICATED_ID=`cat certificate-id.txt | sed 's/"//g'`
echo $CERTIFICATED_ID
#
CERTARN=`jq .certificateArn cert.json | sed 's/"//g'`
echo $CERTARN
#
aws iot attach-thing-principal --thing-name "sunflower" \
--principal $CERTARN
紐付けを表示
aws iot list-thing-principals --thing-name sunflower
エンドポイントの表示
aws iot describe-endpoint --region ap-northeast-1
作成された AWS IoT に Pub/Sub を行う方法は、こちら。
Raspberry Pi で、mosquitto を使って、AWS IOT に Pub/Sub する
次が必要です。
モノの証明書 device.pem.crt
プライベートキー private.pem.key
ルート CA root-CA.crt (ダウンロードする必要があります。)