Skip to content

AWS IoT Core๋Š” ์Šค๋งˆํŠธ ํ™ˆ ๋˜๋Š” ๊ณต์žฅ, ์—๋„ˆ์ง€ ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์–‘ํ•œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•˜๋Š” IoT ๋””๋ฐ”์ด์Šค ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ๋””๋ฐ”์ด์Šค ์—ฐ๋™์„ ์œ„ํ•œ AWS IoT Core ๊ด€๋ จ ๊ธฐ๋Šฅ์€ AWS SDK for Java v1 ๋ฒ„์ „์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— v1 ๋ฒ„์ „ ์ง€์› ์ข…๋ฃŒ ์˜ˆ์ •์œผ๋กœ ์ธํ•ด AWS SDK for Java 2.x ๋กœ ์กฐ๊ธˆ์”ฉ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, AWS IoT Core์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด์„œ AWS SDK for Java 2.x ๊ธฐ๋ฐ˜์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ๊ธ€์—์„œ๋Š” IoT ๋””๋ฐ”์ด์Šค ์ž…์žฅ์—์„œ AWS IoT ์—”๋“œํฌ์ธํŠธ๋กœ์˜ ์—ฐ๊ฒฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์‹œ์Šคํ…œ์—์„œ IoT ๋””๋ฐ”์ด์Šค๋ฅผ ์œ„ํ•œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ๊ณผ์ •์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ IAM ์‚ฌ์šฉ์ž ์ƒ์„ฑ โ€‹

๋จผ์ €, AWS IoT Core์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด AWSIoTFullAccess ๊ถŒํ•œ ์ •์ฑ…์„ ๊ฐ€์ง€๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค๊ณ  AWS CLI ๋˜๋Š” ๋กœ์ปฌ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์•ก์„ธ์Šค ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ธํ…”๋ฆฌ์ œ์ด์˜ AWS Toolkit ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ Open AWS Local Terminal ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ ํƒํ•œ AWS ํ”„๋กœํŒŒ์ผ(AWS_PROFILE)์ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ ์šฉ๋œ ํ„ฐ๋ฏธ๋„์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AWS IoT Core ์—”๋“œํฌ์ธํŠธ โ€‹

AWS IoT Core์˜ ์—”๋“œํฌ์ธํŠธ๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๊ณผ ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ์œ„ํ•œ ์—”๋“œํฌ์ธํŠธ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ AWS ํด๋ผ์šฐ๋“œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์•ผํ•˜๋Š” IoT ๋””๋ฐ”์ด์Šค๋Š” iot:Data-ATS ์—”๋“œํฌ์ธํŠธ์— X.509 ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋กœ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. iot:Data-ATS ์—์„œ ATS๋Š” Amazon Trust Services๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

powershell
PS> aws iot describe-endpoint --endpoint-type iot:Data-ATS
{
    "endpointAddress": "[account-specific-prefix]-ats.iot.ap-northeast-2.amazonaws.com"
}

X.509 ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ์— ๋Œ€ํ•œ CA ์ธ์ฆ์„œ โ€‹

AWS ์—์„œ ๋ฐœ๊ธ‰ํ•ด์ฃผ๋Š” X.509 ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋Š” Amazon Trust Services๋กœ ๊ต์ฐจ ๊ฒ€์ฆ๋˜๋Š” ๋ฃจํŠธ CA ์ธ์ฆ์„œ๋กœ ์„œ๋ช…๋˜์–ด ๋ฐœ๊ธ‰๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ ๋ฃจํŠธ CA ์ธ์ฆ์„œ๊ฐ€ ํ•„์š”์—†์ง€๋งŒ CA ์ธ์ฆ์„œ๊ฐ€ ํ•„์š”ํ•œ IoT ๋””๋ฐ”์ด์Šค ํ™˜๊ฒฝ์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด์— ๋Œ€ํ•œ ์„œ๋ฒ„ ์ธ์ฆ ๊ฐ€์ด๋“œ๋Š” ์•Œ์•„๋‘˜ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์ฝ˜์†”์˜ ๋„๋ฉ”์ธ ๊ตฌ์„ฑ์—์„œ ๋ฐ์ดํ„ฐ ATS ์—”๋“œํฌ์ธํŠธ์—์„œ ์‚ฌ์šฉ์ค‘์ธ ๋ณด์•ˆ ์ •์ฑ…๋„ ํ™•์ธํ•ด๋ณด๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

Data-ATS ์—”๋“œํฌ์ธํŠธ์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ X.509 ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ โ€‹

CreateKeysAndCertificate ๋ช…๋ น์œผ๋กœ 2048 ๋น„ํŠธ ๊ธธ์ด์˜ RSA ํ‚ค ํŽ˜์–ด์™€ X.509 ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, setAsActive ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ์ธ ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ๋ฌผ์— ์ธ์ฆ์„œ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ ๋‚˜์„œ ์‹ค์ œ๋กœ IoT ๋””๋ฐ”์ด์Šค์—์„œ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ์‹œ์Šคํ…œ ํ™”๋ฉด์„ ํ†ตํ•ด ์ธ์ฆ์„œ ์ƒํƒœ๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š”๊ฒŒ ๋ณด์•ˆ ์ƒ ๋” ์ข‹์„ ์ˆœ ์žˆ๊ฒ ๋„ค์š”.

aws iot create-keys-and-certificate --no-set-as-active --certificate-pem-outfile cert.pem --public-key-outfile pub.key --private-key-outfile priv.key
{
   "certificateArn": "The ARN of the certificate",
   "certificateId": "The ID of the certificate",
   "certificatePem": "The certificate data, in PEM format.",
   "keyPair": { 
      "PrivateKey": "The private key",
      "PublicKey": "The public key"
   }
}

IoT ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์‚ฌ๋ฌผ ์œ ํ˜• โ€ข ์‚ฌ๋ฌผ ์ƒ์„ฑ โ€‹

๋””๋ฐ”์ด์Šค์— ๋Œ€ํ•œ ์‚ฌ๋ฌผ ์œ ํ˜•์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ๋ฌผ ์œ ํ˜•๊ณผ ํ•จ๊ป˜ ์‚ฌ๋ฌผ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋ฌผ ์œ ํ˜•์ด ์„ค์ •๋œ ์‚ฌ๋ฌผ์€ ์†์„ฑ์„ 3๊ฐœ ์ด์ƒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ๋ฌผ๊ณผ ์‚ฌ๋ฌผ ์œ ํ˜•์„ ํ•จ๊ป˜ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. CreateThingType ๋ช…๋ น์œผ๋กœ ์‚ฌ๋ฌผ ์œ ํ˜•์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ  CreateThing ๋ช…๋ น์„ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ๋ฌผ ์œ ํ˜•์„ ํ•จ๊ป˜ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

powershell
PS> aws iot create-thing-type --thing-type-name Computer
{
    "thingTypeName": "Computer",
    "thingTypeArn": "arn:aws:iot:ap-northeast-2:[account-id]:thingtype/Computer",
    "thingTypeId": "5c6a1c6c-93e6-4d57-82d3-047f1c267ea6"
}

PS> aws iot create-thing --thing-name PC --thing-type-name Computer
{
    "thingName": "PC",
    "thingArn": "arn:aws:iot:ap-northeast-2:[account-id]:thing/PC",
    "thingId": "2439524c-278c-486d-b74b-1af1acc8fd63"
}

์ƒ์„ฑ๋œ ์‚ฌ๋ฌผ ์ด๋ฆ„์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์‚ฌ๋ฌผ์„ ์ƒ์„ฑํ•  ๋•Œ์—๋Š” ๋””๋ฐ”์ด์Šค์— ๋Œ€ํ•ด UUID์™€ ๊ฐ™์€ ๋ณ„๋„์˜ ์‹๋ณ„์ž๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ณ  ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์‚ฌ๋ฌผ์— X.509 ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ์ฃผ์ฒด ๋“ฑ๋ก โ€‹

X.509 ์ธ์ฆ์„œ๋ฅผ ์‚ฌ๋ฌผ์— ์—ฐ๊ฒฐํ•  ๋•Œ์—๋Š” ๋ณด์•ˆ ์ƒ ์‚ฌ๋ฌผ๊ณผ ์ธ์ฆ์„œ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์œ ์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜์—ฌ ๋…์ ํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ํ•˜๋‚˜ ์Šค๋งˆํŠธ ํ™ˆ์ด๋‚˜ ๊ณต์žฅ์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋””๋ฐ”์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ์ธ์ฆ์„œ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๋””๋ฐ”์ด์Šค์˜ ์‚ฌ๋ฌผ์ด ๊ณต์œ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ธ์ฆ์„œ ๊ด€๋ฆฌ ๊ธฐ์ค€์— ๋Œ€ํ•œ ๋ถ€๋ถ„์€ ์‹œ์Šคํ…œ ๋ชฉ์ ์— ๋”ฐ๋ผ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. AttachThingPrincipal ๋ช…๋ น์„ ํ˜ธ์ถœํ•  ๋•Œ thingPrincipalType์„ EXCLUSIVE_THING๋กœ ์ง€์ •ํ•˜๋ฉด ์ธ์ฆ์„œ๋Š” ์‚ฌ๋ฌผ์— ์œ ์ผํ•œ ์ธ์ฆ์„œ๋กœ ํ™œ์šฉ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์ง€์ •๋˜์–ด ์ด ์ธ์ฆ์„œ๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์„ ์œ„ํ•œ ๋ณด์•ˆ ์ฃผ์ฒด๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

powershell
PS> aws iot create-keys-and-certificate 
{
    "certificateArn": "arn:aws:iot:ap-northeast-2:[account-id]:cert/8f8538927603f4dfe5fb374fc383211a966cc6f74a1ba70121ef185f9cdf67f3",
    "certificateId": "8f8538927603f4dfe5fb374fc383211a966cc6f74a1ba70121ef185f9cdf67f3",
    ...
}

PS> aws iot attach-thing-principal --thing-name PC --principal arn:aws:iot:ap-northeast-2:[account-id]:cert/8f8538927603f4dfe5fb374fc383211a966cc6f74a1ba70121ef185f9cdf67f3

์‚ฌ๋ฌผ์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ฃผ์ฒด๋Š” Amazon Cognito ID ๋˜๋Š” X.509 ์ธ์ฆ์„œ๊ฐ€ ๋˜๋ฉฐ ์œ„ ๊ฒฝ์šฐ ์ธ์ฆ์„œ ARN์„ ๋ณด์•ˆ ์ฃผ์ฒด๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋ฌผ์— ๋“ฑ๋ก๋œ ์ธ์ฆ์„œ ํ•ด์ œ ๋ฐ ํšŒ์ˆ˜ โ€‹

๋ณด์•ˆ์ ์ธ ์ด์Šˆ ๋˜๋Š” ์ฃผ๊ธฐ์ ์ธ ๊ด€๋ฆฌ ์ผ์ •์— ์˜ํ•˜์—ฌ ์‚ฌ๋ฌผ์— ์—ฐ๊ฒฐ๋œ ์ธ์ฆ์„œ๋ฅผ ๊ต์ฒด๋ฅผ ์œ„ํ•ด ๊ธฐ์กด ์ธ์ฆ์„œ๋ฅผ ํšŒ์ˆ˜ํ•˜๋ ค๋ฉด DetachThingPrincipal ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์‚ฌ๋ฌผ์— ์—ฐ๊ฒฐ๋œ ์ธ์ฆ์„œ๋ฅผ ๋จผ์ € ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ UpdateCertificate ๋ช…๋ น์œผ๋กœ ์ธ์ฆ์„œ์˜ ์ƒํƒœ๋ฅผ ์ทจ์†Œ(REVOKED)๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

powershell
PS> aws iot update-certificate --certificate-id 8f8538927603f4dfe5fb374fc383211a966cc6f74a1ba70121ef185f9cdf67f3 --new-status REVOKED

AWS IoT SDK v2 ๊ธฐ๋ฐ˜ ์˜ˆ์ œ ์ฝ”๋“œ โ€‹

AWS IoT ๋””๋ฐ”์ด์Šค๋ฅผ ์œ„ํ•œ ์ผ๋ จ์˜ ๊ณผ์ •์„ AWS IoT examples using AWS CLI๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” AWS IoT SDK for Java 2.x๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ AWS IoT SDK for Java 2.x ๊ธฐ๋ฐ˜์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ ์ฝ”๋“œ๋Š” kdevkr/aws-iot-core-demo์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ €, ์˜ˆ์ œ ์ฝ”๋“œ์—์„œ IotClient ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ProfileCredentialsProvider ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ iot-core ํ”„๋กœํŒŒ์ผ์„ ์ง์ ‘ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ”„๋กœ๋•์…˜ ๊ธฐ์ค€์—์„œ๋Š” ํฌ๋ ˆ๋ด์…œ ํ”„๋กœ๋ฐ”์ด๋” ์ฒด์ธ ๋ฐฉ์‹์œผ๋กœ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํฌ๋ ˆ๋ด์…œ์„ ์กฐํšŒํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ธํ…”๋ฆฌ์ œ์ด์˜ Run Configuration ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— AWS_PROFILE์„ ์„ค์ •ํ•˜๋ฉด iot-core ํ”„๋กœํŒŒ์ผ์„ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AWS Toolkit for IntelliJ IDEA ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ AWS Connection ์„ค์ •์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์— ๋งž๋Š” IAM ํ”„๋กœํŒŒ์ผ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์œˆ๋„์šฐ์—์„œ๋Š” ์„ ํƒํ•œ ํ”„๋กœํŒŒ์ผ์ด ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ํ™•์ธ๋˜์–ด AWS_PROFILE ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

IoT ๋””๋ฐ”์ด์Šค ์ธ์ฆ์„œ ๋ณด์•ˆ ์ •์ฑ… โ€‹

IoT ๋””๋ฐ”์ด์Šค์— IAM ๊ถŒํ•œ ์ •์ฑ…์ฒ˜๋Ÿผ ๋ณ„๋„๋กœ ์ œ๊ณตํ•˜๋Š” AWS IoT Core Policy์„ ์„ค์ •ํ•˜์—ฌ MQTT ์—ฐ๊ฒฐ๋ถ€ํ„ฐ ๋ฉ”์‹œ์ง€ ์†ก์ˆ˜์‹  ๋“ฑ์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ •์ฑ…์„ ์ˆ˜๋ฆฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ๋ฌผ์— ์—ฐ๊ฒฐ๋œ X.509 ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” IoT ๋””๋ฐ”์ด์Šค๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ํด๋ผ์ด์–ธํŠธ ์•„์ด๋””๋กœ ์—ฐ๊ฒฐ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉ๋œ ์•„์ดํ”ผ ๋Œ€์—ญ์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • aws:SourceIp - ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค์— ์—ฐ๊ฒฐ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์•„์ดํ”ผ์— ๋Œ€ํ•œ ์ •์ฑ… ๋ณ€์ˆ˜
  • iot:ClientId - MQTT ํด๋ผ์ด์–ธํŠธ ์•„์ด๋””์— ๋Œ€ํ•œ ์ •์ฑ… ๋ณ€์ˆ˜
  • iot:CertificateId - X.509 ์ธ์ฆ์„œ์— ๋Œ€ํ•œ ์ •์ฑ… ๋ณ€์ˆ˜
  • IoT Core ์ž‘์—… ๋ฆฌ์†Œ์Šค์˜ Amazon Resource Names (ARNs)

IoT ๋””๋ฐ”์ด์Šค ์—ฐ๊ฒฐ ์ƒํƒœ โ€‹

AWS IoT ํ”Œ๋ฆฟ ์ธ๋ฑ์‹ฑ(Fleet Indexing)์—์„œ ์‚ฌ๋ฌผ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์ธ๋ฑ์‹ฑ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด IoT ๋””๋ฐ”์ด์Šค์˜ ๊ฐœ๋ณ„ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ GetThingConnectivityData ๋ช…๋ น์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์‚ฌ๋ฌผ์„ ๋งŒ๋“ค๊ณ  ๋‚˜์„œ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•œ ์ ์ด ์—†๋Š” ๊ฒฝ์šฐ์˜ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ ๋งŒ์•ฝ, ๋””๋ฐ”์ด์Šค ํ”Œ๋ฆฟ ์ธ๋ฑ์‹ฑ์„ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ๋ฉด AWS_Things ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, AWS CLI ์— get-thing-connectivity-data ํ•˜์œ„ ๋ช…๋ น์ด ์—†๋Š” ๊ฒฝ์šฐ 2.23 ์ด์ƒ์˜ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜์„ธ์š”.

sh
PS> aws iot get-thing-connectivity-data --thing-name PC
{
    "thingName": "PC",
    "connected": false,
    "timestamp": "1970-01-01T09:00:00+09:00",
    "disconnectReason": "UNKNOWN"
}

๋‹ค์Œ์—๋Š” IoT ๋””๋ฐ”์ด์Šค ์ž…์žฅ์—์„œ AWS IoT Device SDK for Java v2๋ฅผ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Released under the MIT License.