Security, cost and GPUs
Org guardrails and human access
How people log in through SSO with short sessions, how break-glass access works, and how organization policies stop one bad admin policy from becoming a breach.
The earlier pages cover what one principal may do. This page covers the walls around the whole company. It asks how humans log in, how accounts are split, and how org-level policies limit what any admin can do, even an admin who makes a mistake.
The big idea
A single account with every team inside makes least privilege almost impossible. One bad policy or one leaked key can reach everything. The fix has two parts: split the accounts by environment and blast radius, then put ceilings above them that nobody inside can lift.
Concept
A Service Control Policy (SCP) is an AWS Organizations policy that caps what member accounts may allow. GCP calls the equivalent an organization policy. Neither grants access. They only remove options.
Humans: SSO, short sessions, break-glass
Humans should not hold long-lived IAM user keys. Instead:
- Log in through SSO (IAM Identity Center on AWS, Cloud Identity federation on GCP) with the company identity provider.
- Use short sessions, from 1 to 8 hours, with MFA for console and sensitive CLI roles.
- Use permission sets for jobs, such as
Developer,OnCallorBillingViewer, not one shared admin. - Prefer just-in-time access. Request a role for two hours instead of holding admin all the time.
- Keep a few break-glass accounts. These are heavily audited, MFA-bound and monitored with real-time alerts. They are used only when SSO is down.
Warning
Break-glass accounts that are never tested will fail in the one outage that needs them. Test them quarterly.
Walking through the guardrails
Here is what an account admin can do without and with org guardrails:
Without org guardrails:
Account admin attaches AdministratorAccess
-> creates a public bucket
-> disables logging
With SCPs:
Even AdministratorAccess cannot:
- disable CloudTrail
- create resources outside approved regions
- turn off the public access block without a break-glass tagThe admin's own policy is irrelevant here. The SCP is a ceiling above the account, so the actions are blocked whatever the account's policies say. Put logging and security tooling in a dedicated account that application teams cannot change.
Splitting accounts
A typical split uses separate accounts for prod, staging, shared-services and security, all under one organization. Each boundary limits the damage a mistake can cause. The security account holds the logs, so an attacker in prod cannot erase them.
Common mistakes
- Permanent admin groups "for convenience." Standing privilege is what gets misused.
- Assuming an SCP grants access. It never does. An allow must still exist in the account.
- One account for everything. Blast radius equals the whole company.
- Untested break-glass. The path you never run is the path that fails.
Check yourself
- An admin with
AdministratorAccesstries to disable CloudTrail. Why does it fail? An SCP caps what member accounts may do, so the block holds whatever the account's own policies say. - Why prefer a two-hour role over standing admin? A short role ends by itself, so less privilege sits around to be misused.
Key takeaways
- Log in through SSO with short sessions and MFA. Avoid long-lived user keys.
- Use just-in-time access instead of standing admin groups.
- SCPs and organization policies are ceilings set above all accounts.
- Split accounts by environment, and keep logging in a separate account.
Further learning
For the zero-trust side of human access, read the BeyondCorp overview linked from the IAM topic page. For the long-lived secrets that remain, see secrets management and encryption.
Related
IAM and least privilege
How cloud identity works, why least privilege is a habit rather than a checkbox, and where the org-level guardrails sit. Start here for the map of IAM pages.
Cloud networking and VPCs
VPCs, subnets, routing, NAT, security groups and private connectivity in AWS and GCP, plus a three-AZ reference architecture and how to debug when A cannot reach B.
Incident response
Run an incident with clear roles, severity and communication. Mitigate first, debug second, then hand off to the postmortem. Start here for the map of incident pages.