Services

Resources

Company

Least privilege

Least privilege is the security principle that every user, program and service should run with the smallest set of permissions it needs to do its job, for only as long as it needs them. A reporting job that reads one bucket should not be able to delete it.

How it works

In the cloud this means scoping identity and access management (IAM) policies by action and resource. Compare two grants for the same job:

  • Broad: s3:* on *, which can read, write and delete every bucket in the account.

  • Least privilege: s3:GetObject on arn:aws:s3:::reports-prod/*, which can only read objects in one bucket.

Short-lived credentials, separate roles per service, and access reviews keep the grant small over time. Unused permissions are found from access logs and removed.

Why it matters in production

Permissions decide the blast radius of a mistake or a leaked key. A stolen key that can only read one bucket is an incident. A stolen admin key can become the whole company's outage. Least privilege also makes audits shorter, because each role has a clear purpose.

See also

On the One2N blog

Further reading

Four-panel comic about Least privilege: A reporting job runs with an admin key. The key leaks in a public repo; With admin rights the attacker can delete every bucket. The blast radius is the whole account; Scope it: s3:GetObject on reports-prod/* only. The same leaked key can now read one...