Welcome to this project that demonstrates how to easily and securely add the capability for an IoT Device to upload documents to S3, without having to manage any special credential apart from the normal connection to AWS IoT Core. The only functionality the device needs is to publish and subscribe to a few topics, process those and sue an https PUT method.
The project is split in two parts:
- The cloud-side, using only serverless services. See cloud-side documentation
- An example of IoT Client, writen in python and located in the
client
folder.
- Clone the repository:
git clone git@github.com:aws-samples/secure-and-simple-file-upload-for-iot-devices.git
- Follow the instructions in the cloud-side documentation
- For running the client:
- install python if not already done. This project has been tested with python 3.12.
- pip install requirements
- create the test archives (they are not created because an archive constitutes a security risk when checked-in):
cd client/test_data bash make_test_data.sh cd ../..
- Deploy and configure your cloud infrastructure (with CDK). See cloud-side documentation.
- Create an AWS IoT thing and download its certificate, private key and CA certificate.
- Do NOT create policy for the Thing Certificate
- Add the IoT Thing to the group
uploaderThingGroup
- Edit the client runner
client/run_test.sh
and modify the configuration section at the top to match your setup. - Runt the client
bash run_test.sh [1, 2, 3, 4, 5]
For support open a ticket in GitHub.
Nothing new planned for now. Make suggestions!
Active support.