디바이스가 데이터 영역에서 AWS IoT 작업을 안전하게 사용하도록 승인 - AWS IoT Core

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

디바이스가 데이터 영역에서 AWS IoT 작업을 안전하게 사용하도록 승인

디바이스가 데이터 플레인의 AWS IoT 작업과 안전하게 상호 작용할 수 있도록 권한을 부여하려면 AWS IoT Core policy. AWS IoT Core policies for job is JSON documents containing policy statement.를 사용해야 합니다. 이러한 정책은 효과 , 작업리소스 요소도 사용하며 IAM 정책과 유사한 규칙을 따릅니다. 요소에 대한 자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소 참조를 참조하세요.

정책은 MQTT 및 HTTPS 프로토콜 모두에서 사용할 수 있으며 TCP 또는 TLS 상호 인증을 사용하여 디바이스를 인증해야 합니다. 다음은 서로 다른 통신 프로토콜에서 이러한 정책을 사용하는 방법을 보여줍니다.

주의

정책 또는 IAM 정책"Action": ["iot:*"]에서와 같이 와일드카드 권한을 사용하지 않는 것이 좋습니다 AWS IoT Core . 와일드카드 권한을 사용하는 것은 권장되는 보안 모범 사례가 아닙니다. 자세한 내용은 AWS IoT 정책 초과 허용 을 참조하세요.

AWS IoT Core MQTT 프로토콜 정책

AWS IoT Core MQTT 프로토콜에 대한 정책은 작업 디바이스 MQTT API 작업을 사용할 수 있는 권한을 부여합니다. MQTT API 작업은 작업 명령용으로 예약된 MQTT 주제를 다루는 데 사용됩니다. 이러한 API 작업에 대한 자세한 내용은 섹션을 참조하세요작업 디바이스 MQTT API 작업.

MQTT 정책은 iot:Connect, iot:Publishiot:Subscribe, 및 와 같은 정책 작업을 사용하여 작업 주제를 iot:Receieve 처리합니다. 이러한 정책을 통해 메시지 브로커에 연결하고, 작업 MQTT 주제를 구독하고, 디바이스와 클라우드 간에 MQTT 메시지를 주고 받을 수 있습니다. 이러한 작업에 대한 자세한 내용은 AWS IoT Core 정책 작업 섹션을 참조하세요.

AWS IoT 작업 주제에 대한 자세한 내용은 섹션을 참조하세요작업 주제.

다음 예시에서는 iot:Publishiot:Subscribe을(를) 사용하여 작업과 작업 실행을 게시하고 구독하는 방법을 보여줍니다.

이 예에서 다음과 같이 대체합니다.

  • region AWS 리전와 같은 를 사용합니다us-east-1.

  • account-id 와 같은 사용자 AWS 계정 번호를 사용합니다57EXAMPLE833.

  • thing-name 와 같이 작업을 대상으로 하는 IoT 사물의 이름을 사용합니다MyIoTThing.

{ "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/events/job/*", "arn:aws:iot:region:account-id:topic/$aws/events/jobExecution/*", "arn:aws:iot:region:account-id:topic/$aws/things/thing-name/jobs/*" ] } ], "Version": "2012-10-17" }

AWS IoT Core HTTPS 프로토콜 정책

AWS IoT Core 데이터 영역의 정책은 TLS 인증 메커니즘과 함께 HTTPS 프로토콜을 사용하여 디바이스를 승인할 수도 있습니다. 데이터 영역에서 정책은 iotjobsdata: 접두사를 사용하여 디바이스가 수행할 수 있는 작업 API 작업을 승인합니다. 예를 들어 iotjobsdata:DescribeJobExecution 정책 작업은 사용자에게 DescribeJobExecution 를 사용할 수 있는 권한을 부여합니다API.

참고

데이터 영역 정책 작업은 iotjobsdata: 접두사를 사용해야 합니다. 제어 영역에서 작업은 iot: 접두사를 사용해야 합니다. 제어 영역 및 데이터 영역 IAM 정책 작업이 모두 사용되는 예제 정책은 섹션을 참조하세요IAM 제어 영역과 데이터 영역에 대한 정책 예제.

다음 표에는 디바이스가 작업을 사용하도록 권한을 부여하기 위한 AWS IoT Core 정책 API 작업 및 권한 목록이 나와 있습니다. 데이터 영역에서 수행할 수 있는 API 작업 목록은 섹션을 참조하세요작업 디바이스 HTTP API.

참고

이러한 작업 실행 정책 작업은 HTTP TLS 엔드포인트에만 적용됩니다. MQTT 엔드포인트를 사용하는 경우 이전에 정의한 MQTT 정책 작업을 사용해야 합니다.

AWS IoT Core 데이터 플레인의 정책 작업
정책 작업 API 작업 리소스 유형 설명
iotjobsdata:DescribeJobExecution DescribeJobExecution
  • job

  • thing

작업 실행을 검색할 수 있는 권한을 나타냅니다. 작업 실행 검색을 요청할 때마다 iotjobsdata:DescribeJobExecution 권한이 확인됩니다.
iotjobsdata:GetPendingJobExecutions GetPendingJobExecutions thing 사물에 대해 단말 상태가 아닌 작업의 목록을 검색할 수 있는 권한을 나타냅니다. 목록 검색이 요청될 때마다 iotjobsdata:GetPendingJobExecutions 권한이 확인됩니다.
iotjobsdata:StartNextPendingJobExecution StartNextPendingJobExecution thing 사물에 대해 대기 중인 다음 작업 실행을 가져오고 시작할 수 있는 권한을 나타냅니다. (즉, QUEUED에서 IN_PROGRESS 상태로 작업 실행을 업데이트함) 대기 중인 다음 작업의 실행 시작이 요청될 때마다 iotjobsdata:StartNextPendingJobExecution 권한이 확인됩니다.
iotjobsdata:UpdateJobExecution UpdateJobExecution thing 작업 실행을 업데이트할 수 있는 권한을 나타냅니다. 작업 실행 상태 업데이트가 요청될 때마다 iotjobsdata:UpdateJobExecution 권한이 확인됩니다.

다음은 모든 리소스의 데이터 영역 API 작업에 대한 작업을 수행할 수 있는 권한을 부여하는 AWS IoT Core 정책의 예를 보여줍니다. IoT 사물과 같은 특정 리소스로 정책 범위를 지정할 수 있습니다. 이 예에서 다음과 같이 대체합니다.

  • region AWS 리전 와 같은 를 사용합니다us-east-1.

  • account-id 와 같은 사용자 AWS 계정 번호를 사용합니다57EXAMPLE833.

  • thing-name 와 같은 IoT 사물의 이름을 사용합니다MyIoTthing.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iotjobsdata:GetPendingJobExecutions", "iotjobsdata:StartNextPendingJobExecution", "iotjobsdata:DescribeJobExecution", "iotjobsdata:UpdateJobExecution" ], "Effect": "Allow", "Resource": "arn:aws:iot:region:account-id:thing/thing-name" } ] }

이러한 정책을 사용해야 하는 경우의 예는 IoT 디바이스가 AWS IoT Core 정책을 사용하여 의 다음 예와 같이 이러한 API 작업 중 하나에 액세스하는 경우일 수 있습니다DescribeJobExecutionAPI.

GET /things/thingName/jobs/jobId?executionNumber=executionNumber&includeJobDocument=includeJobDocument&namespaceId=namespaceId HTTP/1.1