기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
J 프로비저닝 ust-in-time
디바이스가 처음 연결을 시도할 때 just-in-time 프로비저닝 (JITP) 을 사용하여 디바이스를 프로비저닝할 수 있습니다. AWS IoT디바이스를 프로비저닝하려면 자동 등록을 활성화하고, 디바이스 인증서에 서명할 때 사용할 CA 인증서와 프로비저닝 템플릿을 연결해야 합니다. 프로비저닝 성공 및 오류는 디바이스 프로비저닝 지표 Amazon에서와 같이 기록됩니다. CloudWatch
JITP 개요
등록된 CA 인증서로 서명한 인증서를 사용하여 디바이스에 AWS IoT 연결을 시도하면 CA 인증서에서 템플릿을 AWS IoT 로드하고 이를 사용하여 호출합니다. RegisterThing JITP 워크플로는 상태 값이 PENDING_ACTIVATION
인 인증서부터 먼저 등록합니다. 디바이스 프로비저닝 흐름이 완료되면 인증서 상태가 ACTIVE
로 바뀝니다.
AWS IoT 프로비저닝 템플릿에서 선언하고 참조할 수 있는 다음 매개 변수를 정의합니다.
-
AWS::IoT::Certificate::Country
-
AWS::IoT::Certificate::Organization
-
AWS::IoT::Certificate::OrganizationalUnit
-
AWS::IoT::Certificate::DistinguishedNameQualifier
-
AWS::IoT::Certificate::StateName
-
AWS::IoT::Certificate::CommonName
-
AWS::IoT::Certificate::SerialNumber
-
AWS::IoT::Certificate::Id
위와 같은 프로비저닝 템플릿 파라미터의 값들은 JITP가 프로비저닝할 디바이스의 인증서에서 제목 필드로부터 추출할 수 있는 값으로 제한됩니다. 인증서에는 템플릿 본문의 모든 파라미터에 대한 값이 포함되어야 합니다. AWS::IoT::Certificate::Id
파라미터는 인증서에 포함된 ID가 아니라 내부에서 생성된 ID를 참조합니다. 규칙 내 principal()
함수를 사용하여 이 ID의 값을 가져올 수 있습니다. AWS IoT
참고
디바이스의 첫 번째 연결에서 전체 신뢰 체인을 전송할 필요 없이 AWS IoT Core just-in-time 프로비저닝 (JITP) 기능을 사용하여 디바이스를 프로비저닝할 수 있습니다. AWS IoT Core CA 인증서를 제시하는 것은 선택 사항이지만 디바이스가 AWS IoT Core에 연결할 때 서버 이름 표시(SNI)
템플릿 본문 예
다음 JSON 파일은 완전한 JITP 템플릿의 템플릿 본문 예입니다.
{ "Parameters":{ "AWS::IoT::Certificate::CommonName":{ "Type":"String" }, "AWS::IoT::Certificate::SerialNumber":{ "Type":"String" }, "AWS::IoT::Certificate::Country":{ "Type":"String" }, "AWS::IoT::Certificate::Id":{ "Type":"String" } }, "Resources":{ "thing":{ "Type":"AWS::IoT::Thing", "Properties":{ "ThingName":{ "Ref":"AWS::IoT::Certificate::CommonName" }, "AttributePayload":{ "version":"v1", "serialNumber":{ "Ref":"AWS::IoT::Certificate::SerialNumber" } }, "ThingTypeName":"lightBulb-versionA", "ThingGroups":[ "v1-lightbulbs", { "Ref":"AWS::IoT::Certificate::Country" } ] }, "OverrideSettings":{ "AttributePayload":"MERGE", "ThingTypeName":"REPLACE", "ThingGroups":"DO_NOTHING" } }, "certificate":{ "Type":"AWS::IoT::Certificate", "Properties":{ "CertificateId":{ "Ref":"AWS::IoT::Certificate::Id" }, "Status":"ACTIVE" } }, "policy":{ "Type":"AWS::IoT::Policy", "Properties":{ "PolicyDocument":"{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Effect\": \"Allow\", \"Action\":[\"iot:Publish\"], \"Resource\": [\"arn:aws:iot:us-east-1:123456789012:topic/foo/bar\"] }] }" } } } }
이 예제 템플릿은 인증서에서 추출되고 Resources
섹션에서 사용되는 AWS::IoT::Certificate::CommonName
, AWS::IoT::Certificate::SerialNumber
, AWS::IoT::Certificate::Country
및 AWS::IoT::Certificate::Id
프로비저닝 파라미터의 값을 선언합니다. 그러면 JITP 워크플로우가 이 템플릿을 사용하여 다음 작업을 수행합니다.
-
인증서를 등록하고 상태를 PENDING_ACTIVE로 설정
-
사물 리소스 하나를 생성
-
정책 리소스 하나를 생성
-
정책을 인증서에 연결
-
인증서를 사물에 연결
-
인증서 상태를 ACTIVE로 업데이트
인증서에 섹션의 모든 속성이 없는 경우 장치 프로비저닝이 실패합니다Parameters
. templateBody
예를 들어, AWS::IoT::Certificate::Country
가 템플릿에 포함되어 있지만 인증서에는 Country
속성이 없으면 디바이스 프로비저닝이 실패합니다.
를 CloudTrail 사용하여 JITP 템플릿 관련 문제를 해결할 수도 있습니다. CloudWatchAmazon에 기록된 지표에 대한 자세한 내용은 을 참조하십시오디바이스 프로비저닝 지표. 프로비저닝 템플릿에 대한 자세한 내용은 프로비저닝 템플릿을 참조하세요.
참고
프로비저닝 프로세스 중에 프로비저닝 (JITP) 은 다른 AWS IoT 컨트롤 플레인 API just-in-time 작업을 호출합니다. 이러한 호출이 계정에 설정된 AWS IoT 조절 할당량을 초과하면 호출이 제한될 수 있습니다. 필요한 경우 제한 할당량을 높이려면 AWS
고객 지원
프로비저닝 템플릿을 사용하여 CA 등록
전체 프로비저닝 템플릿을 사용하여 CA를 등록하려면 다음 단계를 수행합니다.
-
프로비저닝 템플릿과 역할 ARN 정보를 다음 예와 같이 JSON 파일로 저장합니다.
{ "templateBody" : "{\r\n \"Parameters\" : {\r\n \"AWS::IoT::Certificate::CommonName\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::SerialNumber\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::Country\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::Id\": {\r\n \"Type\": \"String\"\r\n }\r\n },\r\n \"Resources\": {\r\n \"thing\": {\r\n \"Type\": \"AWS::IoT::Thing\",\r\n \"Properties\": {\r\n \"ThingName\": {\r\n \"Ref\": \"AWS::IoT::Certificate::CommonName\"\r\n },\r\n \"AttributePayload\": {\r\n \"version\": \"v1\",\r\n \"serialNumber\": {\r\n \"Ref\": \"AWS::IoT::Certificate::SerialNumber\"\r\n }\r\n },\r\n \"ThingTypeName\": \"lightBulb-versionA\",\r\n \"ThingGroups\": [\r\n \"v1-lightbulbs\",\r\n {\r\n \"Ref\": \"AWS::IoT::Certificate::Country\"\r\n }\r\n ]\r\n },\r\n \"OverrideSettings\": {\r\n \"AttributePayload\": \"MERGE\",\r\n \"ThingTypeName\": \"REPLACE\",\r\n \"ThingGroups\": \"DO_NOTHING\"\r\n }\r\n },\r\n \"certificate\": {\r\n \"Type\": \"AWS::IoT::Certificate\",\r\n \"Properties\": {\r\n \"CertificateId\": {\r\n \"Ref\": \"AWS::IoT::Certificate::Id\"\r\n },\r\n \"Status\": \"ACTIVE\"\r\n },\r\n \"OverrideSettings\": {\r\n \"Status\": \"DO_NOTHING\"\r\n }\r\n },\r\n \"policy\": {\r\n \"Type\": \"AWS::IoT::Policy\",\r\n \"Properties\": {\r\n \"PolicyDocument\": \"{ \\\"Version\\\": \\\"2012-10-17\\\", \\\"Statement\\\": [{ \\\"Effect\\\": \\\"Allow\\\", \\\"Action\\\":[\\\"iot:Publish\\\"], \\\"Resource\\\": [\\\"arn:aws:iot:us-east-1:123456789012:topic\/foo\/bar\\\"] }] }\"\r\n }\r\n }\r\n }\r\n}", "roleArn" : "arn:aws:iam::123456789012:role/JITPRole" }
이 예에서
templateBody
필드의 값은 이스케이프된 문자열로 지정된 JSON 객체여야 하며 이전 목록에 포함된 값만 사용할 수 있습니다. 다양한 도구를 사용하여json.dumps
(Python) 또는JSON.stringify
(노드)와 같은 필수 JSON 출력을 생성할 수 있습니다.roleARN
필드의 값은AWSIoTThingsRegistration
이 연결된 역할의 ARN이어야 합니다. 또한 템플릿이 예제의 인라인PolicyDocument
대신 기존PolicyName
을 사용할 수 있습니다. -
RegisterCACertificate API 작업 또는
register-ca-certificate
CLI 명령을 사용하여 CA 인증서를 등록합니다. 이전 단계에서 저장한 프로비저닝 템플릿 및 역할 ARN 정보의 디렉터리를 지정합니다.다음은 AWS CLI를 사용하여
DEFAULT
모드로 CA 인증서를 등록하는 방법의 예제입니다.aws iot register-ca-certificate --ca-certificate file://
your-ca-cert
--verification-cert file://your-verification-cert
--set-as-active --allow-auto-registration --registration-config file://your-template
다음은 AWS CLI를 사용하여
SNI_ONLY
모드로 CA 인증서를 등록하는 방법의 예제입니다.aws iot register-ca-certificate --ca-certificate file://
your-ca-cert
--certificate-modeSNI_ONLY
--set-as-active --allow-auto-registration --registration-config file://your-template
자세한 정보는 CA 인증서 등록을 참조하세요.
-
(선택 사항) UpdateCACertificate API 작업 또는
update-ca-certificate
CLI 명령을 사용하여 CA 인증서 설정을 업데이트합니다.다음은 AWS CLI를 사용하여 CA 인증서를 업데이트하는 방법의 예입니다.
aws iot update-ca-certificate --certificate-id
caCertificateId
--new-auto-registration-status ENABLE --registration-config file://your-template
프로비저닝 템플릿 이름을 사용하여 CA 등록
프로비저닝 템플릿 이름을 사용하여 CA를 등록하려면 다음 단계를 수행합니다.
-
프로비저닝 템플릿 본문을 JSON 파일로 저장합니다. 템플릿 본문 예에서 템플릿 본문 예를 찾을 수 있습니다.
-
프로비저닝 템플릿을 생성하려면 CreateProvisioning템플릿 API 또는
create-provisioning-template
CLI 명령을 사용합니다.aws iot create-provisioning-template --template-name
your-template-name
\ --template-body file://your-template-body.json
--type JITP \ --provisioning-role-arnarn:aws:iam::123456789012:role/test
참고
just-in-time 프로비저닝 (JITP) 의 경우 프로비저닝 템플릿을 생성할
JITP
때 템플릿 유형을 지정해야 합니다. 템플릿 유형에 대한 자세한 내용은 API 참조의 CreateProvisioning템플릿을 참조하십시오.AWS -
템플릿 이름으로 CA를 등록하려면 RegisterCACertificate API 또는
register-ca-certificate
CLI 명령을 사용합니다.aws iot register-ca-certificate --ca-certificate file:
//your-ca-cert
--verification-certfile://your-verification-cert
\ --set-as-active --allow-auto-registration --registration-config templateName=your-template-name