보안 준비 - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

보안 준비

이 섹션에서는 AWS IoT Device Management 소프트웨어 패키지 카탈로그의 주요 보안 요구 사항에 대해 설명합니다.

리소스 기반 인증

소프트웨어 패키지 카탈로그는 리소스 기반 인증을 사용하여 플릿의 소프트웨어를 업데이트할 때 보안을 강화합니다. 즉, 소프트웨어 패키지 및 list 패키지 버전에 대해create, read updatedelete, 작업을 수행할 권한을 부여하는 AWS Identity and Access Management (IAM) 정책을 생성하고 섹션에서 배포하려는 특정 소프트웨어 패키지 및 패키지 버전을 참조해야 합니다. Resources 명명된 예약 섀도우를 업데이트할 때도 이러한 권한이 필요합니다. 각 엔터티에 Amazon 리소스 이름(ARN)을 포함하여 소프트웨어 패키지 및 패키지 버전을 참조합니다.

참고

정책에서 패키지 버전 API 호출 (예: CreatePackageVersionUpdatePackageVersion, DeletePackageVersion) 에 대한 권한을 부여하려면 정책에 소프트웨어 패키지와 패키지 버전 ARN을 모두 포함해야 합니다. 정책에서 소프트웨어 패키지 API 호출 (예: CreatePackageUpdatePackage, 및 DeletePackage) 에 대한 권한을 부여하려는 경우 정책에 소프트웨어 패키지 ARN만 포함해야 합니다.

소프트웨어 패키지 및 패키지 버전 ARN을 다음과 같이 구성하세요.

  • 소프트웨어 패키지: arn:aws:iot:<region>:<accountID>:package/<packageName>/package

  • 패키지 버전: arn:aws:iot:<region>:<accountID>:package/<packageName>/version/<versionName>

참고

이 정책에 포함할 수 있는 기타 관련 권한도 있습니다. 예를 들어, job, thinggroupjobtemplate에 대한 ARN을 포함할 수 있습니다. 자세한 내용과 정책 옵션의 전체 목록은 AWS IoT 작업을 통한 사용자 및 장치 보안을 참조하십시오.

예를 들어 다음과 같이 명명된 소프트웨어 패키지 및 패키지 버전이 있는 경우:

  • AWS IoT 사물: myThing

  • 패키지 이름: samplePackage

  • 버전: 1.0.0

정책은 다음과 같을 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:createPackage", "iot:createPackageVersion", "iot:updatePackage", "iot:updatePackageVersion" ], "Resource": [ "arn:aws:iot:us-east-1:111122223333:package/samplePackage", "arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/1.0.0" ] }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": "arn:aws:iot:us-east-1:111122223333:thing/myThing/$package" } ] }

AWS IoT 패키지 버전 배포를 위한 Job 권한

보안을 위해 패키지 및 패키지 버전을 배포할 권한을 부여하고 배포가 허용된 특정 패키지 및 패키지 버전의 이름을 지정하는 것이 중요합니다. 이를 위해서는 패키지 버전으로 작업을 배포할 권한을 부여하는 IAM 역할과 정책을 만듭니다. 정책은 대상 패키지 버전을 리소스로 지정해야 합니다.

IAM 정책

IAM 정책은 Resource 섹션에 명명된 패키지 및 버전을 포함하는 작업을 생성할 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJob", "iot:CreateJobTemplate" ], "Resource":[ "arn:aws:iot:*:111122223333:job/<jobId>", "arn:aws:iot:*:111122223333:thing/<thingName>/$package", "arn:aws:iot:*:111122223333:thinggroup/<thingGroupName>", "arn:aws:iot:*:111122223333:jobtemplate/<jobTemplateName>", "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
참고

소프트웨어 패키지와 패키지 버전을 제거하는 작업을 배포하려면 다음과 같이 패키지 버전이 $null인 ARN을 승인해야 합니다.

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

AWS IoT 예약된 네임드 섀도우를 업데이트하기 위한 Job 권한

작업이 성공적으로 완료되었을 때 작업이 사물의 명명된 예약 섀도우를 업데이트할 수 있게 하려면 IAM 역할 및 정책을 생성해야 합니다. AWS IoT 콘솔에서 이 작업을 수행하는 방법은 두 가지입니다. 첫 번째는 콘솔에서 소프트웨어 패키지를 만드는 것입니다. 패키지 관리를 위한 종속성 활성화 대화 상자가 표시되면 기존 역할을 사용하거나 새 역할을 만들 수 있습니다. 또는 AWS IoT 콘솔에서 설정을 선택하고 인덱싱 관리를 선택한 다음 디바이스 패키지 및 버전 인덱싱 관리를 선택합니다.

참고

작업이 성공적으로 완료될 때 AWS IoT Job Service에서 예약된 명명된 섀도우를 업데이트하도록 선택하면 API 호출이 Device Shadow 및 레지스트리 작업에 포함되므로 비용이 발생할 수 있습니다. 자세한 내용은 AWS IoT Core 요금을 참조하십시오.

역할 생성 옵션을 사용하는 경우 생성된 역할 이름은 aws-iot-role-update-shadows로 시작되며 다음 정책을 포함합니다.

역할 설정

권한

권한 정책은 사물 섀도우를 쿼리하고 업데이트할 권한을 부여합니다. 리소스 ARN의 $package 파라미터는 명명된 예약 섀도우를 대상으로 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:DescribeEndpoint", "Resource": "" }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": [ "arn:aws:iot:<regionCode>:111122223333:thing/<thingName>/$package" ] } ] }
신뢰 관계

권한 정책 외에도 역할에는 엔터티가 역할을 수임하고 명명된 예약 섀도우를 업데이트할 수 있도록 AWS IoT Core 와의 신뢰 관계가 필요합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

사용자 정책 설정

iam: 권한 PassRole

마지막으로, UpdatePackageConfigurationAPI 작업을 호출할 AWS IoT Core 때 역할을 전달할 권한이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageConfiguration" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }

AWS IoT Amazon S3에서 다운로드할 수 있는 작업 권한

작업 문서는 Amazon S3에 저장됩니다. AWS IoT 작업을 통해 전송할 때 이 파일을 참조합니다. AWS IoT Jobs에게 파일을 다운로드할 수 있는 권한을 제공해야 합니다 (s3:GetObject). 또한 Amazon S3와 AWS IoT 작업 간에 신뢰 관계를 설정해야 합니다. 이러한 정책을 생성하는 방법에 대한 지침은 작업 관리에서 미리 서명된 URL을 참조하세요.