- Newest
- Most votes
- Most comments
Thanks for using AWS IoT. As our docs(https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) say, to use thing-policy variables these two things must be true.
- ClientId must match with ThingName.
- Certificate must be associated with the Thing (specified in the clientId).
A certificate can be associated with more than one thing so we depend on device giving the exact thing name while connecting to IoT core in clientId field. This is needed even if certificate is attached to a single thing because if the certificate is attached to another thing in its lifetime (maybe accidentally), we don't want existing devices to break as policy variables cannot be resolved if we cannot identify the thing uniquely.
We have a feature request in our backlog to support multiple client ids. We cannot give exact dates but we are working hard to get the features out based on the priorities.
Thank you for the answer.
I managed to obtain the same behaviour I had in mind using thing attributes instead of different client ids, cited in the link you provided.
Since introduction of the thing-to-connection association also called an exclusive thing association on November 15, 2024, the client ID no longer has to match a thing name. If you want to use a client ID that doesn’t correspond to a thing name, you must attach the device’s X.509 certificate exclusively to a single AWS IoT Thing.
In this setup, your MQTT client can connect to the AWS IoT Core broker using any client ID. Authorization is still enforced by your AWS IoT Core policies, which can reference the associated thing via policy variables.
The exclusive thing association is especially useful when a single certificate needs to support multiple concurrent MQTT connections from the same device.
Relevant content
- asked 2 years ago
- AWS OFFICIALUpdated a year ago

What is the status of this feature request?