Bucketsquatting is finally dead

Clarifying the Bucketsquatting Problem

  • Some initially think hashing/salting bucket names prevents “guessing”; others clarify the core risk is recycling names, not guessability.
  • Typical failure mode:
    • A bucket is deleted while some code/CI still references its name.
    • An attacker (or another user) later creates a bucket with that same name.
    • Old code resumes working, silently writing sensitive data to, or reading from, the attacker’s bucket.
  • Real-world example: Terraform stack teardown deletes a bucket; another stack still has the bucket name hardcoded; CI starts uploading artifacts to a newly created, unrelated bucket.

Proposed Defenses and Remaining Risks

  • Suggestions:
    • Use long random/hashed bucket names and treat them as secrets (via IaC).
    • Use conditions like “expected owner account ID” on S3 operations and SCPs to prevent cross-account writes.
  • Counterpoints:
    • If the name ever leaks and the bucket is later deleted, randomness doesn’t help.
    • Bucket names are exposed via DNS and potentially passive DNS logs; secrecy is limited.

Reactions to AWS’s Namespace Change

  • Many welcome account‑regional namespaces as overdue “good hygiene,” closing off a common production footgun.
  • Others see the solution (account/region suffix in the name) as hacky compared to subdomain-based names or a true v2 API.
  • Concerns about:
    • Name length limits when suffixes are appended.
    • Backward compatibility with tools like Terraform that relied on bucket_prefix.
    • Continued existence of special S3 behaviors tied to specific naming patterns and a new header (x-amz-bucket-namespace) whose necessity is unclear.

Cross-Provider Naming & Namespace Issues

  • Azure storage accounts also use a global namespace, viewed as equally problematic, with stricter length and character limits and no dashes.
  • Some hope other providers will adopt per-account namespaces too.

Account IDs, Emails, and Identity

  • Consensus: AWS account IDs are identifiers, not secrets, though best not overshared.
  • Separate thread on AWS root emails: deleted accounts permanently “reserve” the email, blocking reuse and causing SSO friction; some see this as reasonable security, others as overly rigid and operationally painful.

Broader Naming Debates

  • Discussion of alternative schemes (Discord-style discriminators, UUIDs plus human “petnames,” domain-based names).
  • Domain expiration and DNS reuse are noted as an analogous, unresolved squatting risk.