Skip to content
Learn/

Security Fundamentals

1 / 4

Two principles that generate most of the rest

Least privilege. Every component gets the minimum access it needs and nothing more. The service that reads product data gets a read-only credential scoped to that table. When it is compromised — and assume it will be — the attacker inherits exactly that and no more.

The counter-pattern is the shared admin credential used by everything because it was easier. One compromised service then means total compromise, and there is no way to tell afterwards which one it was.

Defence in depth. Assume individual controls fail, and layer them so one defect is not enough for a breach. Parameterised queries prevent data from becoming SQL. Allowlist validation and a WAF can reject suspicious input, while least-privilege credentials limit damage if injection still succeeds. Those controls have different jobs; they are not interchangeable blockers.

Layering helps most when controls fail differently. Shared assumptions and configuration can make security failures correlated, so test each boundary rather than multiplying optimistic probabilities.

Design as though the attacker is already inside one of your services. It changes what you build — and it is usually accurate.

3 components2 connections0:00

Traffic
4Kreq/s
p50
45ms
p99
101ms
Errors
0.06%
Dropped
2.4req/s
Cost
$534/mo