Managing data from hundreds or thousands of internet-connected devices is a significant challenge for most organizations. Cloud IoT platforms handle the heavy lifting—collecting, brokering, securing, and routing device data at scale. AWS IoT Core is one of the leading options, offering bi-directional, secure communication between connected devices and the AWS Cloud.
This tutorial walks through registering a “thing”—AWS’s term for any internet-connected device—using the AWS Management Console. Before any device can communicate with AWS IoT Core, it must be registered in the IoT Registry and issued an X.509 authentication certificate.
What Is a “Thing” in AWS IoT?
In AWS IoT terminology, a thing is any physical or virtual device connected to the network that generates or consumes data. This includes:
- Sensors and actuators
- Embedded microcontrollers
- Smart appliances
- Industrial robots
- Computers and gateways
- Autonomous vehicles
If a device is connected to a network and produces or consumes data that must be processed, stored, or analyzed, it qualifies as a thing in the IoT sense.
Core Components of AWS IoT Core
AWS IoT Core is composed of several interconnected services that together handle the full device lifecycle:
- Device Gateway – Maintains persistent connections with devices over MQTT, WebSockets, or HTTP.
- Message Broker – Routes messages between devices and AWS services using a publish/subscribe model.
- Rules Engine – Evaluates inbound messages and triggers downstream actions (e.g., writing to DynamoDB, invoking a Lambda function).
- Security and Identity Service – Enforces mutual TLS authentication and authorizes device actions via policies.
- Registry – Stores metadata about each registered thing.
- Group Registry – Organizes things into groups so commands and policies can be applied collectively.
- Device Shadow – A persistent JSON document that represents the last known and desired state of a device, even when it is offline.
- Device Shadow Service – Manages synchronization of device shadow documents.
- Device Provisioning Service – Automates large-scale device onboarding.
- Custom Authentication Service – Allows use of custom token-based authentication schemes.
- Jobs Service – Remotely deploys updates or commands to one or more devices.
All of these services depend on a thing being registered first. The steps below cover that foundational process.
Step 1: Open the AWS IoT Console
Log in to the AWS Management Console using an account with administrative permissions, or at minimum an IAM user with iot:* permissions.
In the Services menu, search for IoT Core under the Internet of Things category. This opens the AWS IoT Core console where you can manage things, certificates, policies, and rules.
If no things have been registered yet, the Manage > Things page will show an empty list with a prompt to register your first device.
Step 2: Register a New Thing
Click Register a thing (or Create things in newer console versions). You are presented with two options:
- Create a single thing – Register one device manually.
- Create many things – Bulk-register multiple similar devices using a CSV template.
For this walkthrough, select Create a single thing.
Step 3: Name and Classify the Thing
On the Add your device to the thing registry page, provide the following:
- Thing name – A unique identifier for this device. This name is used in MQTT topics and policies, so choose something descriptive and consistent with your naming convention (e.g.,
factory-floor-sensor-01). - Thing type – An optional but recommended classification. Thing types let you attach a shared set of attributes and a description to a group of similar devices.
- Thing group – Optionally assign the thing to a group. Groups allow you to apply policies and jobs to multiple devices simultaneously.
- Attributes – Optional key-value pairs for tracking metadata such as location, firmware version, or deployment environment.
Creating a Thing Type
If no thing types exist yet, click Create a type. Provide a name (e.g., TemperatureSensor), a description, and any searchable attributes that apply to all devices of this type. Click Create thing type to save it, then select it from the dropdown back on the registration page.
When all fields are complete, click Next.
Step 4: Create and Attach an X.509 Certificate
Every thing in AWS IoT must authenticate using an X.509 certificate. This is a hard security requirement—no certificate, no connection. On the certificate page, you have several options:
- Auto-generate a new certificate (recommended) – AWS creates and signs a certificate for you in one click. This is the simplest path for getting started.
- Upload your own certificate – Use a certificate signed by your own CA or a third-party CA registered with AWS.
- Skip certificate – Not recommended for production; appropriate only if you are using a custom authorizer.
Select One-click certificate creation and click Create certificate.
After creation, the console presents download links for:
- The device certificate (
*.cert.pem) - The private key (
*.private.key) - The public key (
*.public.key) - The Amazon Root CA certificates
Download all files immediately. The private key is shown only once and cannot be retrieved later. Store these credentials securely—they are what your physical device uses to authenticate to AWS IoT.
Step 5: Attach a Policy to the Certificate
A certificate alone does not grant any permissions. You must attach an IoT policy that defines what the device is allowed to do—connect, publish, subscribe, or receive on specific MQTT topics.
If you have not created a policy yet, you can do so from Secure > Policies in the IoT console. A minimal policy for a device to connect and publish might look like this:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect",
"iot:Publish",
"iot:Subscribe",
"iot:Receive"
],
"Resource": "arn:aws:iot:us-east-1:123456789012:*"
}
]
}Code language: JSON / JSON with Comments (json)
For production environments, scope the Resource ARN to specific topics and client IDs rather than using a wildcard. Overly permissive policies are a common IoT security risk.
Select your policy on the certificate page and click Activate, then Register Thing.
Step 6: Verify the Registration
Navigate to Manage > Things in the IoT console. Your newly registered device should appear in the list. Clicking on it shows:
- Details – Name, type, and attributes.
- Security – Attached certificates and their activation status.
- Shadow – The device shadow document (initially empty).
- Activity – Connection and message logs (when AWS IoT logging is enabled).
Managing Things at Scale
Once a fleet grows beyond a handful of devices, manual registration becomes impractical. AWS IoT provides several options to automate onboarding:
- Bulk registration – Upload a CSV file mapping device names to certificate IDs for batch creation.
- Fleet Provisioning – Devices bootstrap their own certificates at first connection using a provisioning template and a claim certificate.
- Just-in-Time Registration (JITR) – Devices that connect with a certificate signed by a CA registered in AWS IoT are automatically registered on first connection.
- Thing Groups and Policies – Apply a policy update or a firmware job to an entire group rather than each device individually.
Next Steps
With your thing registered and its certificate activated, you can:
- Install the certificate and private key on the physical device and connect it using an AWS IoT SDK (available for C, Python, JavaScript, Java, and others).
- Create Rules to route incoming MQTT messages to services such as Amazon S3, DynamoDB, Kinesis, or Lambda.
- Use the Device Shadow to synchronize desired and reported device state even when the device is offline.
- Enable AWS IoT Device Defender to audit configurations and detect anomalous device behavior.
Registering a thing is the foundational step in an AWS IoT deployment. Getting the certificate management and policy scoping right from the start avoids security headaches as the fleet scales.