SShortSingh.
Back to feed

Key Security Pitfalls to Avoid When Using AWS S3 Presigned URLs

0
·2 views

AWS S3 presigned URLs are time-limited signed links that grant temporary access to specific S3 operations without exposing account credentials, but misconfiguration can create serious security risks. Setting excessively long expiration windows — up to the seven-day CLI maximum — is dangerous because a leaked URL remains valid until it expires, with no way to rotate it after the fact. URLs signed using temporary credentials, such as those from STS AssumeRole or EC2 instance profiles, will expire when the underlying session ends regardless of the requested duration. AWS recommends enforcing HTTPS via bucket policy, restricting signature age, and always generating URLs with short, explicit expiration times suited to the actual use case. Best practices also include signing with temporary IAM role credentials rather than long-term access keys to limit exposure if a URL is compromised.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Developer Builds Multiplayer Tic-Tac-Toe Backend in Go Without AI Coding Assistants

A software developer intentionally built a multiplayer Tic-Tac-Toe backend in Go without the help of AI coding agents, choosing instead to design and debug every component manually. The project used HTTP endpoints and WebSocket connections to handle game creation, player turns, move validation, and real-time state broadcasting. The developer structured the codebase in layered responsibilities — HTTP handler, GameManager, Game, and Board — to keep logic cleanly separated and easier to reason about. A GameManager layer was introduced to handle multiple concurrent games without burdening the HTTP layer with state management. The author's stated goal was to use a simple, well-understood problem domain to focus on backend architecture decisions rather than complex business logic.

0
ProgrammingDEV Community ·

How TCP Turns an Unreliable Network Into a Trustworthy Data Stream

TCP (Transmission Control Protocol) is designed to deliver reliable, ordered data over IP, a network layer that makes no guarantees about packet delivery, order, or duplication. It achieves this through a combination of sequence numbers, acknowledgements, retransmissions, and reordering logic that together simulate a dependable byte stream for applications. Before any data is exchanged, TCP requires a three-way handshake to verify connectivity in both directions, which costs a full round trip and explains why connection reuse is critical in performance-sensitive systems. Unlike message-based protocols, TCP is a byte-stream protocol and does not preserve application-level message boundaries, so higher-level protocols like HTTP must define their own framing. Flow control and congestion control are kept as separate mechanisms because they address distinct problems: preventing a slow receiver from being overwhelmed versus preventing the network itself from becoming congested.

0
ProgrammingDEV Community ·

Why Consistent Source ID Validation Prevents Silent Failures in Content Pipelines

Automated publishing pipelines can silently drop valid content cards when source ID validators are outdated or inconsistently applied across readers. The problem arises when systems evolve from simple ID formats like SRC-ANDROID to multi-segment readable IDs like SRC-WORKER-SOURCEID-2026, but older regex patterns only accept a single segment after the prefix. Engineers are advised to define a single, strict ID grammar — specifying allowed characters, segment separators, and prefix rules — and apply it uniformly across every pipeline component that reads source identifiers. A shared TypeScript validator using one regular expression ensures candidate discovery, revision lookup, and publication auditing all operate on the same contract. Partial pattern matches that truncate multi-segment IDs can cause lookup failures even when the original source card exists, making complete value capture equally critical.