기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
작업 관리
작업을 사용하여 소프트웨어 또는 펌웨어 업데이트를 디바이스에 알립니다. AWS IoT 콘솔
작업에 대한 코드 서명
디바이스에 코드를 전송할 때 디바이스에서 코드가 전송 중 수정되었는지 감지하려면 AWS CLI를 사용하여 코드 파일에 서명하는 것이 좋습니다. 지침은 AWS CLI를 사용하여 작업 생성 및 관리를 참조하세요.
자세한 내용은 의 코드 서명이란 무엇입니까 AWS IoT?를 참조하세요.
작업 문서
작업을 생성하려면 작업 문서를 생성해야 합니다. 에 코드 서명을 사용하는 경우 작업 문서를 버전이 지정된 Amazon S3 버킷에 업로드 AWS IoT해야 합니다. 파일을 만들고 Amazon S3 버킷을 만들고 이 버킷에 파일을 업로드하는 방법에 대한 자세한 내용은 Amazon S3 시작 안내서의 Amazon Simple Storage Service 시작하기를 참조하세요.
작은 정보
작업 문서 예제는 의 에서 job-agent.js
사전 서명된 URLs
작업 문서에는 코드 파일(또는 기타 파일)을 가리키는 미리 서명된 Amazon S3URL가 포함될 수 있습니다. 미리 서명된 Amazon S3URLs는 제한된 시간 동안만 유효하며 디바이스가 작업 문서를 요청할 때 생성됩니다. 작업 문서를 생성할 때 미리 서명된 URL 이 생성되지 않으므로 대신 URL 작업 문서의 자리 표시자를 사용합니다. 자리 표시자는 다음과 URL 같습니다.
${aws:iot:s3-presigned-url:https://s3.region.amazonaws.com/
<bucket>
/<code
file>
}
여기서 각 항목은 다음과 같습니다.
-
bucket
는 코드 파일이 포함된 Amazon S3 버킷입니다. -
code file
는 코드 파일의 Amazon S3 키입니다.
디바이스가 작업 문서를 요청하면 는 미리 서명된 를 AWS IoT 생성하고 자리 표시자를 미리 서명된 URL로 URL 바꿉니다URL. 그러면 디바이스로 작업 문서가 전송됩니다.
IAM S3에서 파일을 다운로드할 수 있는 권한을 부여하는 역할
미리 서명된 Amazon S3 를 사용하는 작업을 생성할 때는 IAM 역할을 제공해야 URLs합니다. 역할은 데이터 또는 업데이트가 저장되어 있는 Amazon S3 버킷에서 파일을 다운로드할 수 있는 권한을 부여해야 합니다. 또한 이 역할은 AWS IoT 에게 역할을 위임할 수 있는 권한을 부여해야 합니다.
미리 서명된 에 대한 선택적 제한 시간을 지정할 수 있습니다URL. 자세한 내용은 CreateJob를 참조하세요.
역할을 수임할 수 있는 AWS IoT 작업 권한 부여
-
IAM 콘솔의 역할 허브로
이동하여 역할을 선택합니다. -
신뢰 관계 탭에서 신뢰 관계 편집을 선택하고 정책 문서를 다음 로 바꿉니다JSON. 신뢰 정책 업데이트를 선택합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
혼동된 대리자 문제를 방지하기 위하여 전역 조건 컨텍스트 키
aws:SourceArn
및aws:SourceAccount
를 정책에 추가합니다.중요
aws:SourceArn
은arn:aws:iot:
형식을 따라야 합니다. 다음을 확인합니다.region
:account-id
:*region
AWS IoT 리전 및 와 일치account-id
가 고객 계정 ID와 일치합니다. 자세한 설명은 교차 서비스 혼동된 대리자 예방을 참조하세요.{ "Effect": "Allow", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:iot:*:123456789012:job/*" } } } ] }
-
작업이 Amazon S3 객체인 작업 문서를 사용하는 경우 권한을 선택하고 다음 를 사용합니다JSON. 그러면 Amazon S3 버킷에서 파일을 다운로드할 권한을 부여하는 정책이 추가됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::
your_S3_bucket
/*" } ] }
파일 업로드URL를 위해 미리 서명됨
디바이스가 작업 배포 중에 Amazon S3 버킷에 파일을 업로드해야 하는 경우 작업 문서에 미리 서명된 다음 URL 자리 표시자를 포함할 수 있습니다.
${aws:iot:s3-presigned-url-upload:https://s3.region.amazonaws.com/
<bucket>
/<key>
}
작업 문서에 URL 있는 파일 업로드 자리 표시자의 key
속성 내에서 ${jobId}
, 및 를 각각 최대 ${thingName}
2개까지 예약된 키워드${executionNumber}
로 사용할 수 있습니다. key
속성에서 예약된 키워드를 나타내는 로컬 자리 표시자는 구문 분석되고 작업 실행이 생성될 때 대체됩니다. 각 디바이스에 대해 예약된 키워드가 있는 로컬 자리 표시자를 사용하면 디바이스에서 업로드된 각 파일이 해당 디바이스에 고유하고 동일한 작업 배포의 대상이 되는 다른 디바이스에서 유사한 업로드된 파일로 덮어쓰지 않도록 할 수 있습니다. 작업 배포 중에 파일을 업로드하기 위해 미리 서명된 자리 표시자 내의 로컬 URL 자리 표시자 문제를 해결하는 방법에 대한 자세한 내용은 섹션을 참조하세요일반 오류 메시지 문제 해결.
참고
Amazon S3 버킷 이름에는 업로드된 파일에 대해 예약된 키워드를 나타내는 로컬 자리 표시자를 포함할 수 없습니다. 로컬 자리 표시자는 key
속성에 있어야 합니다.
미리 서명된 이 URL 자리 표시자는 디바이스가 이를 수신하면 URL 작업 문서에서 Amazon S3 미리 서명된 업로드로 변환됩니다. 디바이스가 이를 사용하여 대상 Amazon S3 버킷에 파일을 업로드합니다.
참고
위의 자리 표시자 에 Amazon S3 버킷과 키가 제공되지 않은 경우, 작업은 각 URL, AWS IoT ${thingName}
${jobId}
및 의 최대 2개를 사용하여 각 디바이스에 대한 키를 자동으로 생성합니다${executionNumber}
.
Amazon S3 버전 관리를 URL 사용하여 미리 할당됨
Amazon S3 버킷에 저장된 파일의 무결성을 보호하는 것은 해당 파일을 디바이스 플릿에 사용하여 안전한 작업 배포를 보장하는 데 중요합니다. Amazon S3 버전 관리를 사용하면 Amazon S3 버킷에 저장된 파일의 각 변형에 대한 버전 식별자를 추가하여 파일의 각 버전을 추적할 수 있습니다. 이를 통해 AWS IoT 작업을 사용하여 디바이스 플릿에 배포되는 파일 버전에 대한 인사이트를 얻을 수 있습니다. 버전 관리를 사용하는 Amazon S3 버킷에 대한 자세한 내용은 Amazon S3 버킷에서 버전 관리를 참조하세요.
파일이 Amazon S3에 저장되고 작업 문서에 미리 서명된 URL 자리 표시자가 포함된 경우 AWS IoT ,Jobs는 Amazon S3 버킷, 버킷 키 및 Amazon S3 버킷URL에 저장된 파일의 버전을 사용하여 작업 문서에 미리 서명된 를 생성합니다. 작업 문서에서 URL 생성된 이 미리 서명된 는 작업 문서에서 원래 미리 서명된 URL 자리 표시자를 대체합니다. Amazon S3 버킷에 저장된 파일을 업데이트하면 새 버전의 파일 및 후속 파일이 생성versionId
되어 업데이트에 신호를 보내고 향후 작업 배포 시 해당 특정 파일을 대상으로 지정할 수 있는 기능을 제공합니다.
를 사용하여 작업 문서에 미리 서명된 Amazon S3의 이전 및 도중에 에 대한 다음 예제를 참조URLs하세요versionId
.
Amazon S3 사전 서명된 URL 자리 표시자(작업 배포 전)
//Virtual-hosted style URL ${aws:iot:s3-presigned-url:https://
bucket-name
.s3.region-code
.amazonaws.com/key-name
%3FversionId%3Dversion-id
} //Path-style URL ${aws:iot:s3-presigned-url:https://s3.region-code
.amazonaws.com/bucket-name
/key-name
%3FversionId%3Dversion-id
}
Amazon S3 PresignedURL(작업 배포 중)
//Virtual-hosted style URL ${aws:iot:s3-presigned-url:https://
sample-bucket-name
.s3.us-west-2
.amazonaws.com/sample-code-file.png
%3FversionId%3Dversion1
} //Path-style ${aws:iot:s3-presigned-url:https://s3.us-west-2
.amazonaws.com/sample-bucket-name
/sample-code-file.png
%3FversionId%3Dversion1
}
Amazon S3 가상 호스팅 및 경로 스타일 객체 에 대한 자세한 내용은 Virtual-hosted-style 요청 및 경로 스타일 요청 섹션을 URLs참조하세요.
참고
미리 서명된 Amazon S3 versionId
에 추가하려는 경우 지원되는 URL 인코딩 를 준수해야 URL합니다 AWS SDK for Java 2.x. 자세한 내용은 버전 1URIs에서 버전 2로 Amazon S3 구문 분석 변경 사항을 참조하세요.