인증서 정책 예제 - AWS IoT Core

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

인증서 정책 예제

AWS IoT Core 레지스트리에 등록된 디바이스의 경우, 다음 정책은 사물 이름과 일치하는 클라이언트 ID를 사용하여 AWS IoT Core에 연결하고, 디바이스가 자체 인증에 사용한 인증서의 certificateId와 이름이 동일한 주제에 게시할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:CertificateId}"] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] } ] }

AWS IoT Core 레지스트리에 등록되지 않은 디바이스의 경우, 다음 정책은 클라이언트 ID client1, client2client3을 사용하여 AWS IoT Core에 연결하고, 디바이스가 자체 인증에 사용한 인증서의 certificateId와 이름이 같은 주제에 게시할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:CertificateId}"] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] } ] }

AWS IoT Core 레지스트리에 등록된 디바이스의 경우, 다음 정책은 사물 이름과 일치하는 클라이언트 ID를 사용하여 AWS IoT Core에 연결하고, 디바이스가 자체 인증에 사용한 인증서 제목의 CommonName 필드와 이름이 같은 주제에 게시할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:Certificate.Subject.CommonName}"] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] } ] }
참고

이 예에서는 인증서 제목 공통 이름이 주제 식별자로 사용되고, 주제 공통 이름이 등록된 인증서마다 고유하다고 가정합니다. 인증서를 여러 디바이스에서 공유하는 경우, 제목 공통 이름은 이 인증서를 공유하는 모든 디바이스에서 동일하므로, 여러 디바이스에서 동일한 주제에 게시 권한을 허용하게 됩니다(권장되지 않음).

AWS IoT Core 레지스트리에 등록되지 않은 디바이스의 경우, 다음 정책은 클라이언트 ID client1, client2client3을 사용하여 AWS IoT Core에 연결하고 디바이스가 자체 인증에 사용한 인증서 제목의 CommonName 필드와 이름이 같은 주제에 게시할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:Certificate.Subject.CommonName}"] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] } ] }
참고

이 예에서는 인증서 제목 공통 이름이 주제 식별자로 사용되고, 주제 공통 이름이 등록된 인증서마다 고유하다고 가정합니다. 인증서를 여러 디바이스에서 공유하는 경우, 제목 공통 이름은 이 인증서를 공유하는 모든 디바이스에서 동일하므로, 여러 디바이스에서 동일한 주제에 게시 권한을 허용하게 됩니다(권장되지 않음).

AWS IoT Core 레지스트리에 등록된 디바이스의 경우, 다음 정책은 사물 이름과 일치하는 클라이언트 ID를 사용하여 AWS IoT Core에 연결하고, 디바이스를 인증하는 데 사용된 인증서에서 Subject.CommonName.2 필드가 Administrator로 설정된 경우 이름이 admin/으로 시작하는 주제에 게시할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/admin/*"], "Condition": { "StringEquals": { "iot:Certificate.Subject.CommonName.2": "Administrator" } } } ] }

AWS IoT Core 레지스트리에 등록되지 않은 디바이스의 경우, 다음 정책은 클라이언트 ID client1, client2client3을 사용하여 AWS IoT Core에 연결하고, 디바이스를 인증하는 데 사용된 인증서에서 Subject.CommonName.2 필드가 Administrator로 설정된 경우 이름이 admin/으로 시작하는 주제에 게시할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/admin/*"], "Condition": { "StringEquals": { "iot:Certificate.Subject.CommonName.2": "Administrator" } } } ] }

AWS IoT Core 레지스트리에 등록된 디바이스의 경우, 다음 정책은 디바이스를 인증하는 데 사용된 인증서에서 Subject.CommonName 필드 중 하나가 Administrator로 설정된 경우 디바이스가 해당 사물 이름을 사용하여 admin/과 그 다음에 ThingName으로 구성된 특정 주제에 게시하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/admin/${iot:Connection.Thing.ThingName}"], "Condition": { "ForAnyValue:StringEquals": { "iot:Certificate.Subject.CommonName.List": "Administrator" } } } ] }

AWS IoT Core 레지스트리에 등록되지 않은 디바이스의 경우, 다음 정책은 클라이언트 ID client1, client2client3을 사용하여 AWS IoT Core에 연결하고, 디바이스를 인증하는 데 사용된 인증서에서 Subject.CommonName 필드 중 하나가 Administrator로 설정된 경우 주제 admin에 게시할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/admin"], "Condition": { "ForAnyValue:StringEquals": { "iot:Certificate.Subject.CommonName.List": "Administrator" } } } ] }