Bash
aws-cli
IoT
awsIoT

AWS IOT を AWS CLI で設定

次のページの作業を私なりにやってみました。
[AWS CLI] AWS IoTの作成

Things の登録

aws iot create-thing --thing-name sunflower

AWS コンソールで見ると次のようになります。
sunflower_dec0601.png

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.PublicKey -r > thing-public-key.pem
cat cert.json | jq .keyPair.PrivateKey -r > private-key.pem

cert.json から certificate-id を抜き出す

jq .certificateId cert.json

証明書の作成

CERTIFICATED_ID="000000000000b0000006239dd65d3a85b8460d2b8866cfeb5bbddeb5d26721
34"
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 コンソールで見ると次のようになります。
sunflower_dec0602.png

ポリシーの一覧

aws iot list-policies

IoTポリシーの確認
 この時に表示される、"policyArn" を使う

aws  iot get-policy --policy-name sunflower-policy

証明書にIoTポリシを紐付ける

CERTIFICATED_ID="000000000000b0000006239dd65d3a85b8460d2b8866cfeb5bbddeb5d26721
34"
POLICYARN="arn:aws:iot:ap-northeast-1:100000009025"
aws iot attach-principal-policy \
       --principal $POLICYARN:cert/$CERTIFICATED_ID \
      --policy-name "sunflower-policy"

紐付けを表示

CERTIFICATED_ID="000000000000b0000006239dd65d3a85b8460d2b8866cfeb5bbddeb5d26721
34"
POLICYARN="arn:aws:iot:ap-northeast-1:100000009025"
aws  iot list-principal-policies \
       --principal $POLICYARN:cert/$CERTIFICATED_ID

証明書にThingsを紐付けます

CERTIFICATED_ID="000000000000b0000006239dd65d3a85b8460d2b8866cfeb5bbddeb5d26721
34"
POLICYARN="arn:aws:iot:ap-northeast-1:100000009025"
aws iot attach-thing-principal --thing-name "sunflower" \
        --principal $POLICYARN:cert/$CERTIFICATED_ID

紐付けを表示

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 する

モノの証明書  cert.pem
プライベートキー private-key.pem
ルート CA root-CA.crt をダウンロードする必要があります。

取得方法