보안 준비 - AWS IoT Core

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

보안 준비

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

리소스 기반 인증

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

참고

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

다음과 ARNs 같이 소프트웨어 패키지 및 패키지 버전을 구성합니다.

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

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

참고

이 정책에 포함할 수 있는 기타 관련 권한도 있습니다. 예를 들어 , 및 에 ARN 대한 job를 포함할 수 thinggroup있습니다jobtemplate. 자세한 내용과 정책 옵션의 전체 목록은 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 패키지 버전을 배포할 수 있는 작업 권한

보안을 위해 패키지 및 패키지 버전을 배포할 권한을 부여하고 배포가 허용된 특정 패키지 및 패키지 버전의 이름을 지정하는 것이 중요합니다. 이렇게 하려면 패키지 버전으로 작업을 배포할 수 있는 권한을 부여하는 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 예약된 명명된 섀도우를 업데이트하는 작업 권한

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

참고

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

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

역할 설정

권한

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

{ "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 권한

마지막으로 UpdatePackageConfiguration API 작업을 호출할 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 작업에 파일()을 다운로드할 수 있는 권한을 제공해야 합니다s3:GetObject. 또한 Amazon S3와 AWS IoT 작업 간에 신뢰 관계를 설정해야 합니다. 이러한 정책을 생성하는 방법에 대한 지침은 작업 관리의 사전 서명된 URLs 섹션을 참조하세요. https://docs.aws.amazon.com/iot/latest/developerguide/create-manage-jobs.html

패키지 버전의 소프트웨어 재료 명세서를 업데이트할 수 있는 권한

Draft, Published또는 Deprecated 수명 주기 상태에서 패키지 버전의 소프트웨어 재료 명세서를 업데이트하려면 Amazon S3에서 새 소프트웨어 재료 명세서를 찾고 에서 패키지 버전을 업데이트하기 위한 AWS Identity and Access Management 역할 및 정책이 필요합니다 AWS IoT Core.

먼저 업데이트된 소프트웨어 자료 명세서를 버전 관리형 Amazon S3 버킷에 넣고 sboms 파라미터가 포함된 UpdatePackageVersion API 작업을 호출합니다. 그런 다음 권한 있는 보안 주체가 생성한 IAM 역할을 수임하고, Amazon S3에서 업데이트된 소프트웨어 자재 명세서를 찾은 다음, 소프트웨어 패키지 카탈로그 AWS IoT Core 용 에서 패키지 확인을 업데이트합니다.

이 업데이트를 수행하려면 다음 정책이 필요합니다.

정책

  • Amazon S3의 버전 버킷에서 업데이트된 소프트웨어 자료 명세서를 찾고 에서 패키지 버전을 업데이트할 수 있도록 IAM 역할을 수임하는 권한 있는 보안 주체와 신뢰 관계를 설정하는 신뢰 정책 정책입니다 AWS IoT Core.

    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  • 권한 정책 : 패키지 버전에 대한 소프트웨어 자재 명세서가 저장되는 Amazon S3 버전 버킷에 액세스하고 에서 패키지 버전을 업데이트하는 정책입니다 AWS IoT Core.

    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] } ] }
    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:UpdatePackageVersion" ], "Resource": [ "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
  • 역할 권한 전달 : UpdatePackageVersion API 작업을 호출할 AWS IoT Core 때 Amazon S3에 IAM 역할을 전달할 수 있는 권한을 부여하는 정책입니다.

    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:GetObject" ], "arn:aws:s3:::awsexamplebucket1" } ] }
    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageVersion" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }
참고

수명 Deleted 주기 상태로 전환된 패키지 버전에서는 소프트웨어 자재 명세서를 업데이트할 수 없습니다.

AWS 서비스에 대한 IAM 역할 생성에 대한 자세한 내용은 AWS 서비스에 권한을 위임하는 역할 생성을 참조하세요.

Amazon S3 버킷 생성 및 객체 업로드에 대한 자세한 내용은 버킷 생성객체 업로드를 참조하세요.