AWS IOT를 AWS CLI로 구성

다음 페이지의 작업을 나 나름대로 해 보았습니다.
[AWS CLI] AWS IoT 생성

Things 등록
aws iot create-thing --thing-name sunflower

AWS 콘솔에서 보면 다음과 같습니다.


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 콘솔에서 보면 다음과 같습니다.


정책 목록
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 (다운로드해야 함)

취득 방법

좋은 웹페이지 즐겨찾기