I would like to use an AWS S3 bucket to store my IoT firmware file and allows all of my IoT devices to access it to update the firmware to the latest version.
I want that the firmware file in the S3 bucket is secret to only me and my devices. But I don't want to embed any credentials inside the devices. And I cannot use a pre-signed URL as it has a limited expiration time and I want to avoid creating another API or Lambda to generate the pre-signed URL.
I am thinking it would be great if I can generate something like Google Drive's shared link (in the picture below) in S3.
Then I realize that I could just put a randomized string in my S3 path and make only that file publicly accessible. For example.
my-bucket/firmware-v1.bin <-- private
my-bucket/firmware-v2.bin <-- private
my-bucket/QMeOvULdBEI0qGf0KFOl/latest.bin <-- public permanently
Then I will let all my devices remember the link https://<aws-s3-domain>/my-bucket/QMeOvULdBEI0qGf0KFOl/latest.bin
to check for update.
I would like to know how secure is this method compared to Google Drive's shared link.