기본 정책 변수 AWS IoT Core - AWS IoT Core

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

기본 정책 변수 AWS IoT Core

AWS IoT Core 다음과 같은 기본 정책 변수를 정의합니다.

  • iot:ClientId: AWS IoT Core 메시지 브로커에 연결하는 데 사용되는 클라이언트 ID입니다.

  • aws:SourceIp: AWS IoT Core 메시지 브로커에 연결된 클라이언트의 IP 주소입니다.

다음 AWS IoT Core 정책은 정책 변수를 사용하는 정책을 보여줍니다. aws:SourceIp정책의 Condition 요소에 사용하여 보안 주체가 특정 주소 범위 내에서만 API 요청을 할 수 있도록 할 수 있습니다. 예를 보려면 사용자 및 클라우드 서비스가 AWS IoT 작업을 사용하도록 권한 부여 섹션을 참조하십시오.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/clientid1" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}" ], "Condition": { "IpAddress": { "aws:SourceIp": "123.45.167.89" } } } ] }

이 예시에서는 정책이 평가될 때 AWS IoT Core 메시지 브로커에 연결된 클라이언트의 ID로 대체됩니다. ${iot:ClientId} ${iot:ClientId} 같은 정책 변수를 사용할 경우 잘못하여 의도치 않은 주제에 대한 액세스를 개방할 수 있습니다. 예를 들어 ${iot:ClientId}를 사용하여 주제 필터를 지정하는 정책을 사용할 경우

{ "Effect": "Allow", "Action": ["iot:Subscribe"], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/my/${iot:ClientId}/topic" ] }

클라이언트가 +를 클라이언트 ID로 사용하여 연결할 수 있습니다. 이는 사용자가 주제 필터 my/+/topic와 일치하는 모든 주제를 구독하도록 허용하는 것입니다. 그러한 보안 간극을 방지하려면 iot:Connect 정책 작업을 사용하여 어느 클라이언트 ID가 연결할 수 있는지 제어합니다. 예를 들어 이 정책은 클라이언트 ID가 clientid1인 클라이언트만 연결하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iot:Connect"], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/clientid1" ] } ] }
참고

정책 변수 ${iot:ClientId}Connect와 함께 사용하는 것은 권장되지 않습니다. ClientId의 값은 확인하지 않으므로 다른 클라이언트의 ID를 가진 어태처가 검증을 통과할 수 있지만 연결이 끊길 수 있습니다. ClientId는 무엇이든 허용되므로 무작위로 클라이언트 ID를 설정하면 사물 그룹 정책을 우회할 수 있습니다.