Selena Made It Public
What S3 actually does when you accept the defaults
Selena is always in a hurry. This is not a character flaw so much as a structural condition. She is the only person at Loo Loo Paper Parts who knows where everything is, who built everything. She is also, as of last Tuesday, the person responsible for getting the European price list into the cloud before the new client’s procurement team starts their onboarding process on Monday.
She is also, possibly, going to Paris. Not Paris, Ontario. The real Paris. Not officially.
But the trip is being discussed internally. And if the trip happens - if Loo Loo Paper Parts sends someone to meet the new client in person - Selena has already decided that she will find a way to spend forty-eight hours in Italy.
She has never been to Europe. But Pierre seems very nice. He knows about wine. She loves French pastries. She has not mentioned any of this to anyone except her notebook, where several drawings appear between two S3 architecture diagrams under the heading personal research.
She will buy presents for JJ and Raja if it happens. Something useful. Something they would not buy themselves. Something small. But first: the price list.
The European client needs the price list.
Specifically, they need Loo Loo Paper Parts’ complete pricing matrix for the European market - spindle sizes and paper towel configurations in metric and inches, and the European markups that Doug in Operations approved in Q3 using Google Sheets. JJ reformatted the matrix into an Excel spreadsheet using Office 2007 over two afternoons and one evening when it was raining.
The spreadsheet is 247 rows, nineteen columns, 200 formulas and 30 macros. The macros were written by a summer intern and mostly work. It is the most complete document Loo Loo Paper Parts has ever produced about what things cost them, what they charge customers, paper types, cardboard fillers, edge smoothers, and CD-ROM spindle materials in twelve colours.
The European sales rep Pierre called Selena on Thursday afternoon to ask when he would have access to the sales document. He used the phrase “as soon as humanly possible” four times in six minutes. He used the phrase “our people are excited” twice.
She told him she would have something for him by end of day Friday. It was Thursday at 4:47pm. Paris time.
Selena knows her storage services.
She has her AWS Cloud Practitioner certification. She knows that S3 is unlimited object storage, super-durable, and accessible from anywhere, anytime. She knows that EFS is shared file storage - powerful but sized to what you provision. She thought about EFS for approximately forty seconds before deciding against it.
“S3,” she said out loud. “It’s unlimited space. Using EFS you could theoretically run out of room.” She was not entirely certain when you could run out of room, but she did not want to think about that with Pierre’s charm still echoing in her ears. S3 was the right call. The price list would live in a bucket. The bucket would have a URL. Pierre would stop calling.
She uploaded the pricing matrix to a new S3 bucket. The bucket defaults were not changed. S3 blocks public access by default, which is the correct behavior. The bucket was private. The pricing matrix was private. And safe.
Selena sent the URL to Pierre at 5:06pm and he called back at 5:11pm to say the link did not work.
Pierre called three more times.
5:23pm - still does not work. 5:41pm - he has forwarded it to someone on his team to try. It does not work for them either.
Selena was still at her desk at 5:41pm on a Friday, her time, which is not where Selena planned to be at 5:41pm on a Friday. Happy hour was over by six.
Rather than using her own judgement, she opened ChatGPT in a second tab. She typed: S3 file not accessible from URL how to fix. ChatGPT explained bucket policies, IAM users, IAM roles, access control lists, pre-signed URLs, and static website hosting. It was very thorough.
Selena read until she found something that looked like it had less than five clicks and two OKs.
She created a new IAM user. Username: european-sales-rep. She generated an access key and a secret key. She sent them to Pierre in an email with the subject line “Access Credentials - Please See Below.”
Pierre had been in procurement for twenty-two years. He had never had to click a link before. He definitely did not know what an access key was.
He called at 11:32pm. Paris time. Just before lunch. He asked if there was a simpler way. Selena messaged that she would find something simpler.
Selana emailed the spreadsheet directly.
Saturday morning at 9:51am the pricing matrix was attached to an email addressed to the European client’s general procurement group email with six recipients.
She did not know who all six recipients were. She knew one of them was Pierre. She hit send. Pierre replied with a white wine and a thumbs up emoji. This was the best possible outcome.
Bart found it on Tuesday morning.
Not the S3 bucket. The email. Bart has a standing alert for outbound emails containing attachments over 500KB sent to external domains outside the approved vendor list. The European client’s procurement group email was not yet on the approved vendor list.
Vendor onboarding was Doug’s responsibility, but Doug was out on the Moncton River waiting for the tide to come in. Surfing. Approved personal improvement time off. JJ signed it.
The alert fired at 8:47am Tuesday. Bart looked at the attachment. Bart looked at the recipients. Bart opened a new Slack message.
He sat for a moment. He sighed. Then he sent it.
“The Loo Loo Paper Parts European pricing matrix was emailed as an attachment to an unverified external group address with six recipients. We do not know who else has access to that group email or whether the attachment has been forwarded. I am reviewing the S3 access logs.” The message went to #infrastructure-general.
JJ read it at 9:04am just before the Tuesday 10 o’clock meeting. In the meeting JJ asked: “I get why emailing the price list happened, but why does S3 use buckets to store important files. What’s wrong with good old, shared folders. Buckets don’t feel professional. I object.”
Raja replied: “Buckets are what S3 calls folders and the pricing matrix was stored in a private bucket.”
JJ then said: “So private storage is good and directionally correct, the email attachment made our customer happy and solved Selena’s issue but caused other issues which were directionally wrong.”
What Bart fixed.
The IAM user european-sales-rep was disabled. The access key was revoked. A pre-signed URL gives read-only access to a specific file without making it public. It works like a link and expires when you decide.
Next time Pierre needs the price list, he gets a link that works, expires when Loo Loo decides, and goes to him alone.
Bart sent a direct Slack message to Selena at 10:31am. “Best to use a pre-signed URL for sharing the pricing matrix.”
He did not add anything else. He did not need to.
The lesson is not that S3 is the wrong choice.
S3 was the right choice. Unlimited, durable, and accessible storage. The right service for a pricing document that external parties need to access. The access method used was the problem.
S3 blocks public access by default. The problem was not a default setting. The problem was not knowing the feature that allows sharing of a private file with a specific external person temporarily.
Selena tried several options that did not work. Selena made a note in her notebook under a new heading - Things to Remember: Pre-signed URLs are securely cool.
Raja said: “All of Loo Loo’s marketing materials are in a public S3 bucket, but our price list has private costs that our customers should not have access to.”
JJ reached for a blue Post-it note and wrote: Public price list. Call Doug?
Selena started pricing return air fares while nibbling on a warm Costco croissant in the lunchroom. She started smiling.
Two days later, JJ approved the trip to Paris.
Three questions worth asking before the next file goes into the cloud:
Does this file need to be permanently accessible, or does someone need it once?
Is the person who needs this file a human that is allowed to click links in emails?
Does your team have a documented process for sharing files with external parties?
The daily concept, question, and rationale arrive at dontknowjack.club every day at noon.



