What is the root user vs an IAM user - and why you stop using root

Logeshwaran.C

The AWS root user is the single all-powerful login created the moment you sign up for an AWS account, and an IAM user is a separate, limited identity you create afterward for actual day-to-day work — but here's the part almost nobody tells you: AWS's own current guidance isn't "stop using root, use an IAM user instead." It's "stop using root, and also try not to lean on IAM users either." The real destination, according to AWS's own security documentation, is temporary credentials through IAM Identity Center or IAM roles — an IAM user with a permanent password is really just a smaller, slower version of the same root problem.

⚡ Quick Answer

Root user → signs in with the email + password from account sign-up, can do literally anything, can't be limited by an IAM policy.

IAM user → signs in with a username, has zero permissions until you grant them, can be restricted, disabled, or deleted.

Do this today → turn on MFA for root, stop signing in as root except for the handful of tasks that require it, then set up IAM Identity Center or an IAM role instead of a permanent admin user wherever you can.

Jump to the exact list of tasks that need root or the lockdown steps if you're in a hurry.

Jake found out the hard way that "just use the main login, it's easier" is an expensive habit. He'd set up his phone shop's AWS account two years ago — a little S3 storage for warranty PDFs, an EC2 instance running the shop's inventory site — using the email and password he'd signed up with. When his cousin offered to "fix the domain settings" one Sunday night, Jake just texted him the root password. Fair enough, it worked. Except his cousin also spun up a much bigger EC2 instance to test something unrelated, forgot about it, and left it running for six weeks. Jake didn't find out until a $380 charge showed up on a bill he almost didn't check.

"I don't get it," Jake told Ethan over coffee. "I thought as long as somebody logs in with my account, it's fine — it's my account either way." Ethan shook his head. "That's exactly the mistake. The root login isn't 'your account,' it's a master key with no lock you can put on any of the doors. The second you hand it out, you've given away control of everything, forever, until you change the password again — and there's no way to say 'you can only touch the domain settings.' An IAM user is a key you cut yourself, for one door, that you can take back any time you want."

What the root user actually is

When you first create an AWS account, you begin with a single sign-in identity that has complete, unrestricted access to every AWS service and resource in the account. AWS calls this the account root user. The credentials for it are simply the email address and password you typed in when you signed up — there's no separate username to remember, no "root" account you had to go create. It was born the instant your account was.

That's worth sitting with for a second, because it explains why root behaves so differently from everything else in AWS. There's no IAM policy — a JSON document that spells out exactly what an identity is and isn't allowed to do — that can be attached to root to limit it. You can't take away root's ability to close the account, change the billing method, or delete every resource you own. The only thing close to a leash on root is a service control policy (SCP), an AWS Organizations feature that can restrict what root can do in member accounts of a multi-account setup — and even that has real limits, covered further down.

Because it's so powerful, root is also the single point of failure for your whole AWS presence. If someone gets your root email and password (and, ideally, defeats your MFA too), they don't get "some access." They get all of it — every S3 bucket, every EC2 instance, every dollar of spending authority, and the ability to shut off your alarms before you notice. That's exactly why AWS's own account setup guidance tells you, right from step one, not to use root user credentials for daily tasks, and to only reach for them for the specific jobs that require it.

What an IAM user actually is

IAM stands for Identity and Access Management — the AWS service where you create and manage every identity in your account other than root, and the rules that decide what each one can touch. An IAM user is an entity you create inside IAM to represent a specific person or, sometimes, an application. Unlike root, an IAM user starts with nothing: no permissions to do anything at all, by default, until you explicitly grant some.

Each IAM user gets a "friendly name" you choose (like Priya or backup-bot), plus a unique Amazon Resource Name, or ARN — a long identifier AWS uses internally to point at that exact user across every service, something like arn:aws:iam::123456789012:user/Priya. An IAM user is associated with one and only one AWS account, and any activity it performs bills straight to that account, same as root.

An IAM user can be handed different kinds of credentials depending on how it needs to connect: a console password for signing into the web dashboard, access keys for programmatic calls from the AWS CLI or an SDK, SSH keys if it needs to talk to AWS CodeCommit, and even server certificates in specific regional cases. Critically, every one of those can be individually disabled, rotated, or deleted without touching anything else about that user — try doing that to root's single login and you'll see the difference immediately.

An IAM role is a cousin of the IAM user that's easy to confuse it with, and the distinction actually matters for what comes later in this post. A role has no standard long-term credentials attached to it at all. Instead, when someone or something "assumes" a role, AWS hands over temporary security credentials that expire — often within an hour, though you can configure a role's maximum session length up to 12 hours. Nobody has to remember a password for a role, and nobody can leak a permanent access key for one, because there isn't one to leak.

Identity Sign-in credential Can permissions be limited? Credential lifespan
Root user Account email + password No (no IAM policy applies; only an SCP on member accounts, with limits) Permanent, until you change it
IAM user Username + password, and/or access keys Yes, fully — starts with zero permissions Permanent (long-term), until rotated or deleted
IAM role No standing credential — "assumed" by a user, service, or federated identity Yes, fully Temporary — typically up to 1–12 hours per session

IAM users aren't just for people

Something that trips up a lot of small-business AWS accounts: an IAM user doesn't have to represent a human at all. AWS's own documentation describes this as a service account — an IAM user whose credentials are used by an application or script instead of a person, so that code has a way to talk to AWS without a human typing in a password each time. If your shop's inventory site pulls product photos from an S3 bucket automatically every night, that job might be authenticating as an IAM user rather than as you.

Jake had exactly this, and didn't know it. Three months after his part-time developer left, an access key that developer had created for a nightly stock-sync script was still active — sitting in a config file on a server nobody was watching closely anymore. Nothing bad had happened yet, but the key had full read/write access to the inventory bucket and nobody currently at the shop even remembered it existed. "How would I have caught that?" Jake asked. Ethan pulled up IAM's credential report — a downloadable CSV that lists every IAM user in the account and the status of their passwords, access keys, and MFA devices, including how recently each credential was actually used. "This would've flagged it the day he left," Ethan said. "My rule of thumb: an access key that hasn't been touched in months is either forgotten or dangerous. Usually both."

AWS's guidance is blunt about this exact scenario: anyone holding a password or access key for your account, or for an IAM user in your account, has access to your resources — full stop — and the best practice is to remove passwords and access keys the moment an IAM user no longer needs them, not months later, and to lean on the access key's "last used" information to decide when it's genuinely safe to rotate or retire. AWS also warns specifically against embedding access keys directly in application code; the AWS SDKs and CLI are built to read credentials from known local locations instead, and where possible, the better fix is to skip long-term access keys for that workload entirely and use an IAM role's temporary credentials instead — which is exactly what the next few sections build toward.

One more wrinkle worth knowing: a brand-new IAM user created through the AWS CLI or API starts with absolutely no credentials of any kind — no password, no access key — until you deliberately create one. Only when you create a user through the AWS Management Console are you prompted to set up at least a console password or an access key on the spot. That's a deliberate design choice: an IAM user with nothing attached to it yet can't be misused by anyone, which is exactly the state you want a freshly created identity to sit in until you've decided precisely what it needs.

‍♂️ Jake's Reality Check

"Okay but if an IAM user can be given full admin permissions anyway, isn't that basically the same as root? Why does anyone care?"

It's not the same, and it matters. An IAM user with admin permissions is not the AWS account root user. You can disable that IAM user's password, deactivate its access keys, delete it entirely, or attach a permissions boundary that caps what it can ever be granted — none of which is possible with root. A handful of tasks (closing the account, changing the root email, and a short list of others) still require root specifically, no matter how much power an IAM admin user has.

Why AWS doesn't want you living in root

AWS's own IAM documentation says it plainly: sign in as root only for the tasks that require root-level permissions, and follow root user best practices the rest of the time. That's not boilerplate caution — it's a direct response to what root's design makes possible. A few concrete reasons this matters more than it sounds like it should:

Nothing can restrict it. Every other identity in your account operates inside a permission boundary you control. Root doesn't. If your business grows and you want separation of duties — the intern can view logs but not delete buckets, the contractor can touch staging but not production — root simply can't participate in that model. It's all-or-nothing by definition.

It's a single point of catastrophic failure. If root credentials leak, whoever has them can view billing, spin up unlimited resources on your dime, delete data, and in the worst case close the account outright. There's no faster way to turn a bad afternoon into a bad quarter.

Sharing it is sharing everything. The moment two people know the root password, you've lost the ability to know who actually did what. IAM users each get their own credentials specifically so that CloudTrail (AWS's activity log) can tell you which person, not just "the account," made a given change.

⚠️ What this actually breaks

Losing control of root doesn't just risk one resource — it risks the account settings themselves. Root is the only identity that can change the account's email address, root password, and root access keys on a standalone account. If an attacker changes that email address before you notice, you can lose your own recovery path back in.

The short list of things only root can do

This is the part most "stop using root" articles skip, and it's the part that actually makes the advice usable. If you don't know what root is for, you can't avoid using it for everything else. According to AWS's documentation on tasks that require root user credentials, here's the real, current list, grouped by category:

Category Task
Account managementChange the root user's email address, password, or access keys on a standalone account (not needed if AWS Organizations manages it centrally)
Account managementClose a standalone AWS account
Account managementRestore IAM user permissions if the only IAM administrator accidentally locks themselves out
BillingActivate IAM access to the Billing and Cost Management console (one-time setup)
BillingA small set of billing tasks limited specifically to root
AWS GovCloud (US)Signing up for GovCloud, and requesting GovCloud root access keys from Support
Amazon EC2Registering as a seller in the Reserved Instance Marketplace
AWS KMSRecovering an unmanageable KMS key through Support, which confirms via root's registered phone number
Amazon Mechanical TurkLinking your AWS account to an MTurk Requester account
Amazon S3Enabling MFA delete on a bucket, and fixing a bucket policy that mistakenly denies every principal, locking everyone out including admins
Amazon SQSFixing a resource-based policy that mistakenly denies every principal from a queue

Notice the theme running through the S3 and SQS entries: they're both "I locked myself out with my own policy" scenarios. Root exists partly as the emergency override for exactly that kind of mistake, which is also why AWS lets Organizations management accounts perform some of these same privileged tasks on member accounts without those accounts even keeping standing root credentials — more on that in the multi-account section below.

Locking root down: the actual steps

If you've never done this on your account, this is the part worth stopping to do right now, before you read anything else. It's short.

  1. Sign in as root, once, deliberately. Go to the AWS Management Console, choose "Root user," and enter the email and password from when you signed up.
  2. Turn on multi-factor authentication (MFA) for root. With MFA on, signing in needs your password plus a rotating code from an app, a physical hardware key, or a FIDO security key — so a stolen password alone isn't enough. You can register up to eight MFA devices to the same root user, which is worth doing (see below).
  3. Use a strong, unique password. AWS requires a minimum of 8 characters (up to 128), at least three of the four character types (uppercase, lowercase, numbers, symbols), and it can't match your account name or email. A password manager makes this trivial; don't reuse a password from anywhere else.
  4. Don't create access keys for root. Access keys let a script or CLI session authenticate as root programmatically — and because root can't be permission-limited, a leaked root access key is as bad as a leaked root password. If you need root for a CLI task, AWS's current guidance points to signing in through the console for root tasks, or using the aws login CLI command with root credentials for temporary, automatically rotated access instead of a standing key.
  5. Stop using it for everything else. Create an administrative identity (an IAM user, or better, an IAM Identity Center user — next section) and switch to that for daily work.

 What changed on root MFA and access

  • Before: root MFA was strongly recommended but easy to skip past during setup.
  • Now: MFA is enforced for root users by default across standalone, management, and member accounts, with a 35-day grace period from first console sign-in to register it before access is blocked.
  • What that means for you: if you set your account up a while ago and never circled back, you may already be past due — check it today rather than waiting for AWS to force the issue mid-task.

On the "why more than one MFA device" point: AWS explicitly recommends registering multiple MFA devices to root for flexibility and resiliency — for example, a phone authenticator app as your daily device and a hardware security key stored somewhere safe as a backup, so losing one phone doesn't lock you out of your own account. It also supports FIDO-certified hardware security keys, hardware TOTP tokens (the physical fob that generates a six-digit code), and virtual MFA apps on a phone or tablet. The same MFA logic applies to IAM users, too — AWS recommends requiring it for any IAM user or role that still needs password-based sign-in, not just for root, since a password alone is the weakest link in either case.

Getting your first real identity set up

Once root is locked down, there's usually one more root-only chore waiting: nobody can see the Billing and Cost Management console by default, even an IAM user with full admin permissions, until root turns that access on. IAM users and roles can't access billing by default, even with policies that appear to grant it — root has to activate IAM access first. Here's the process straight from AWS's setup guidance:

  1. Sign in with root user credentials (the account email and password).
  2. On the navigation bar, select your account name, then choose Account.
  3. Scroll to the section labeled IAM User and Role Access to Billing Information, and select Edit.
  4. Select the Activate IAM Access checkbox, then choose Update. You'll see a confirmation that IAM user/role access to billing information is activated.
  5. Activating this checkbox doesn't hand out any permissions on its own — you still need to attach the right identity-based policy (the AWS managed Billing policy is the standard option) to a role or user before anyone can actually open the billing pages.

With that done, you're ready to set up something to actually work from day to day. Here's where the site-wide old advice ("just make one admin IAM user") starts to show its age.

✅ Why this is the one to use

For a single AWS account with no larger organization behind it, AWS's own setup path now recommends an IAM role for administrative access rather than a standing IAM admin user, precisely because a role's temporary credentials expire on their own — nobody has to remember to rotate anything, and there's no permanent password sitting around to leak.

Why AWS itself says stop at IAM users too

Here's the piece almost every "root vs IAM user" article stops short of, and it's the reveal at the top of this post: the finish line has quietly moved. IAM's own documentation now states directly that when it comes to managing access, IAM users are generally not the best choice for most use cases. The stated reasoning is straightforward — IAM users are built for individual accounts and don't scale cleanly as an organization grows, they lack the centralized visibility and auditing that come with more modern identity tools, and enforcing things like MFA and password policy is simply easier with a more scalable approach. AWS's current, explicit recommendation is to use IAM Identity Center with AWS Organizations, or federation through an external identity provider, instead of relying on IAM users.

That doesn't mean IAM users are banned or wrong to use — it means they've been narrowed to a specific toolbox, not the default choice. According to AWS's documented use cases, IAM users with long-term credentials are meant for situations federated, temporary-credential identities genuinely can't cover:

  • Emergency "break-glass" access to the AWS account if your normal sign-in path is unavailable
  • Workloads that can't use IAM roles — for example, AWS CodeCommit access, or Amazon Keyspaces (for Apache Cassandra) access, in situations where a role won't fit the tooling
  • Third-party AWS clients that don't support IAM Identity Center or federated sign-in
  • Accounts where IAM Identity Center isn't available and there's no other identity provider to federate through

This same shift applies to your applications, not just to people. AWS's guidance says that when you run code on a compute service like Amazon EC2 or AWS Lambda, AWS automatically delivers that resource the temporary credentials of an IAM role — the AWS SDKs discover and use them without you distributing any long-lived IAM user credentials to the workload at all. Even workloads running outside AWS, like an on-premises server or a CI/CD pipeline, have documented ways to get temporary credentials instead of a permanent access key: IAM Roles Anywhere for on-premises servers using a certificate from your own public key infrastructure, or AWS STS calls like AssumeRoleWithSAML and AssumeRoleWithWebIdentity for workloads that already have a SAML assertion or a web identity token from an external provider. The nightly stock-sync script from earlier is a textbook case for exactly this fix.

Ethan put it to Jake this way: "Think about it like the shop's back room key. Root is the master key to the whole building — you don't hand that to a part-timer. An IAM user with a permanent password is a spare key you cut and gave to someone — better than the master key, but if they lose it, someone else now has a working copy until you change the lock. A role, through something like IAM Identity Center, is more like a keypad code that resets itself every hour. Nobody's walking around with a copy of anything."

Jake thought about his cousin and the $380 EC2 instance. "So if I'd had this set up back then, and he needed to fix the domain settings again..." "He'd have gotten his own sign-in, scoped to exactly Route 53 and nothing else, that expired the same day," Ethan finished. "You'd never have handed him the keys to the whole building just to fix one door."

Keeping one emergency IAM user around

Even accounts that go all-in on IAM Identity Center or federation usually keep one specific exception: a single IAM user with administrator permissions, reserved purely for emergencies, alongside root. It matters because there's exactly one scenario where even a well-run account has to fall back to root: if the sole IAM administrator accidentally revokes their own permissions (a mistyped policy, an accidental deny statement), root is the only identity that can sign back in and fix it. AWS lists "Restore IAM user permissions" directly among the tasks that require root credentials for exactly this reason.

Practically, that means: don't rely on a single IAM Identity Center admin either, with no backup plan, if your identity provider or IAM Identity Center itself becomes unreachable for some reason. A break-glass IAM user — MFA-required, credentials stored somewhere access-logged and monitored, never used for daily work — covers that gap without putting you back in the position of sharing root itself.

Keeping IAM identities honest: least privilege and cleanup

Moving off root and off long-term IAM users solves the biggest risk, but it doesn't automatically mean every identity you have is only granted what it needs — that's a separate habit called least privilege: giving an identity exactly the actions and resources its job requires, and nothing extra "just in case." Ethan found this out reviewing Jake's account directly: an IAM user meant to pull weekly sales numbers for a spreadsheet had the broad AdministratorAccess managed policy attached, because it was the fastest option back when someone set it up in a hurry. "It never actually used ninety percent of what that policy allowed," Ethan said. "That's ninety percent of risk sitting there for no reason."

AWS gives you real tools to close that gap instead of just eyeballing it. AWS managed policies — pre-built permission sets AWS maintains for common jobs — are a reasonable starting point while you're still figuring out what a role or user actually needs, but AWS's own guidance says to narrow from there with a customer managed policy written specifically for your use case, since managed policies are shared across every AWS customer and rarely fit one account exactly. IAM Access Analyzer can generate a tightly scoped policy automatically by reading what a role actually did in CloudTrail over time, and separately offers over 100 policy checks that flag mistakes — like the exact kind of deny-all bucket policy described earlier — before you save them. For delegation, a permissions boundary sets a hard ceiling on what a role or user can ever be granted, even by someone with permission to edit its policies, which is the safety net you'd want if you ever let a manager create their own team's IAM roles.

None of this has to happen on day one. But it's the difference between an account that's technically off root and an account that's actually hard to break into — and the credential report from earlier does double duty here too, since it's the same place you'd spot an unused IAM user's stale permissions alongside its stale access keys. AWS's broader guidance echoes this as an ongoing habit, not a one-time cleanup: regularly reviewing and removing unused users, roles, permissions, and credentials, using the same "last accessed" information the credential report surfaces, keeps the number of things you have to monitor from quietly growing every year you're in business.

The permissions-boundary idea is easier to picture with a concrete case: say Jake eventually hires a store manager to help run the AWS side of the business, and wants that manager to be able to create IAM roles for new hires without Jake personally approving every one. A permissions boundary attached to that manager's own role can cap the maximum permissions any role they create is ever allowed to have — so even if the manager makes a mistake and grants a new hire's role too much, the boundary stops it from exceeding what Jake set as the ceiling. The manager gets real independence; Jake still controls the outer limit.

Root user across multiple AWS accounts

If you manage more than one AWS account through AWS Organizations — the AWS service for grouping and centrally administering multiple accounts under one umbrella — root gets easier to deal with, not harder. The account you use to create the organization is called the management account; every other account under it is a member account.

AWS's recommended pattern here is to centrally remove root user credentials from member accounts entirely: delete the root password, access keys, signing certificates, and deactivate MFA on each member account's root user. Once that's done, member accounts simply can't sign in as root, or recover a root password, unless account recovery is specifically re-enabled for that account. Instead, the management account or a delegated administrator can perform a short list of privileged tasks on member accounts on root's behalf when needed — removing root credentials, allowing password recovery, and fixing exactly the same kind of misconfigured S3 bucket policy or SQS resource policy mentioned earlier, without the member account ever needing standing root credentials at all.

You can also apply a service control policy (SCP) — a type of Organizations guardrail that limits what any identity, including root, can do inside a member account — to deny most root actions except for a defined set of root-only exceptions. It's the closest thing to putting a leash on root, and it only exists at the organization level, not for a single standalone account.

The management account's own root user still needs MFA registered, either at first sign-in or within the same 35-day grace period as any other account — that requirement doesn't go away just because you're managing several accounts.

Watching for root sign-ins after you lock it down

Securing root once isn't the finish line — you also want to know immediately if it's ever used again, expected or not. AWS's root user best practices point to several tools built for exactly this:

  • CloudTrail — AWS's activity log — records root sign-in events, and separately logs "privileged root user sessions," which are the specific privileged tasks a management account performs on a member account's behalf using the underlying AssumeRoot mechanism.
  • Amazon CloudWatch can be set up with an event rule that detects root sign-in activity and triggers a notification to your security team.
  • Amazon EventBridge with Amazon SNS can track a specific root action and notify you through an SNS topic, similar in shape to any other EventBridge-triggered alert.
  • GuardDuty, if you already run it as your threat detection service, can be extended to flag root credential usage as a finding.
  • AWS Config has managed rules to check root MFA compliance and to identify whether root access keys exist in your account.
  • Security Hub and Trusted Advisor both include checks that flag root without MFA as a security gap.

One quirk worth knowing about: if you follow the best practice of removing root user credentials from a member account entirely, MFA-compliance rules stop treating that account as "non-compliant" and instead mark it as not applicable — which is expected, not a bug in your monitoring setup.

What it looks like when this goes wrong

A few real symptoms and what they actually mean, since "just secure root" doesn't tell you what trouble looks like on the way in.

You get a root sign-in notification you didn't trigger. If you've wired up CloudWatch or GuardDuty alerts as described above, this is the scenario they exist for. Treat it as a live incident: change the root password immediately, revoke and re-register MFA, and check for new IAM users, access keys, or billing changes you didn't make.

Your IAM admin loses their own permissions by accident. This is common — an overly broad Deny statement in a policy, applied to the wrong group, can lock out the very administrator who wrote it. This is one of the few situations where signing in as root is not just acceptable but the documented fix: restoring IAM user permissions is explicitly listed among the tasks that require root.

An IAM user or role can see billing exists, but can't open it. That's the "IAM access to billing not yet activated" state described earlier — it needs a one-time root action to switch on, plus a properly attached Billing policy on the role or user trying to get in. Full admin permissions on an IAM identity don't bypass this; it's a separate switch entirely.

An S3 bucket or SQS queue suddenly denies everyone, including admins. This happens when a bucket or queue policy is written with a Deny statement that's broader than intended — denying every principal instead of the one it was meant to restrict. Because the policy itself is now blocking all access, even an admin IAM user can be locked out of fixing it. This is one of the specific, documented cases where root — or, in an Organizations setup, a privileged task performed by the management account — is needed to remove the offending policy.

You've lost root's password and its MFA at the same time. This is the scenario the "use a group email address, and don't let one person control both the email inbox and the recovery phone number" advice is built to prevent. AWS's guidance is to keep primary email inbox access and recovery phone number access with two different groups of people, so no single person (or single compromised account) can pull off account recovery alone.

Limits worth knowing before you scale this up

None of this is unlimited. If you're building out real structure — multiple IAM users, groups, and policies before you move to IAM Identity Center, or alongside it for the exceptions above — a few default quotas are worth knowing so you're not surprised mid-project. These are all listed on AWS's IAM and STS quotas reference and can be raised through a Service Quotas request up to the maximum shown, usually approved automatically within minutes:

Resource Default quota Maximum quota
Groups per account300500
Roles per account1,00010,000
Customer managed policies per account1,50010,000
Managed policies attached per user1020
Instance profiles per account1,00010,000

A couple of hard character limits that can't be raised at all: an IAM user name tops out at 64 characters, and the total size of a single IAM user's inline policies can't exceed 2,048 characters (whitespace doesn't count toward that). If you're hitting either one, it's usually a sign a policy or naming convention has grown more complicated than it needs to be — a good moment to move logic into a managed policy or a permissions boundary instead of piling more into one inline block.

Naming has its own quirks worth knowing before you script anything. IAM user names must be unique within the account, and AWS doesn't distinguish by case when checking that — you can't create both Priya and priya, even though they look different to you. Names can use letters, numbers, and a specific set of common characters (plus, equals, comma, period, at-sign, underscore, and hyphen), but nothing outside that set. And because an IAM user's name ends up embedded in its ARN, which shows up in policies and logs across the account, AWS specifically recommends against putting personally identifying information in the name itself — using a role title or a system name instead of, say, someone's full legal name.

Frequently asked questions

What is the AWS root user, in plain terms?

It's the one login created automatically when you sign up for AWS, using the email address and password from sign-up. It has complete, unrestricted access to every AWS service and resource in the account, and that access can't be limited the way any other identity's can.

What is an IAM user, in plain terms?

An identity you create yourself inside IAM, with its own separate login, that starts with zero permissions until you grant some. It's meant for daily work instead of root, though AWS now recommends reaching for IAM Identity Center or an IAM role before an IAM user in most cases.

Is an IAM user with admin permissions the same thing as root?

No. It can have equivalent permissions on paper, but it's a fundamentally different object: it can be disabled, its credentials rotated or removed, or the user deleted outright — none of which is true of root. A short list of tasks, like closing the account or restoring a locked-out admin's permissions, still requires root specifically no matter how much power the admin IAM user has.

What can only the root user do?

On a standalone account: change the root email, password, or access keys; close the account; and restore a locked-out IAM administrator's permissions. Plus a handful of narrower tasks — activating IAM access to billing, some billing-only actions, GovCloud sign-up, EC2 Reserved Instance Marketplace seller registration, certain KMS key recovery steps, Mechanical Turk account linking, enabling S3 MFA delete, and fixing an S3 bucket policy or SQS resource policy that denies every principal.

Can I disable or delete the root user?

No. Root can't be deleted, and its permissions can't be restricted through a regular IAM policy on a standalone account. The closest you can get is removing root's credentials entirely (password, access keys, MFA) on member accounts inside an AWS Organizations setup, which prevents anyone from signing in as that account's root user, or attaching a service control policy to limit what root can do inside a member account.

Do I need MFA on the root user?

Yes, and AWS now enforces it by default across standalone, management, and member accounts, with a 35-day grace period from first console sign-in before you'll be required to register it to keep accessing the console.

How many MFA devices can I add to root, and why would I want more than one?

Up to eight, of any mix of the supported types (virtual authenticator apps, hardware TOTP tokens, and FIDO security keys). Registering more than one gives you a backup path if you lose your primary device — a phone for daily use and a hardware key stored somewhere secure as a fallback is a common pattern.

Should I ever create access keys for the root user?

AWS recommends against it. Root's full, unrestricted access makes a leaked root access key just as dangerous as a leaked root password. If you need programmatic root access for an infrequent task, the current guidance points toward the aws login CLI command with root credentials, which grants temporary, automatically rotated access instead of a standing key.

What happens if I lose access to root's email and MFA at the same time?

This is exactly the scenario AWS's account recovery guidance is built around, which is why it recommends keeping the root email inbox and the recovery phone number under two different groups of people. Recovering a lost root password typically routes through the account's registered email, and MFA recovery can fall back to the registered phone number if all MFA devices are lost — but if a single compromised person or account controls both channels, that backstop disappears.

Is it okay to share the root login with an employee or contractor?

AWS's guidance is direct: don't share root user credentials except with people who have a strict business need, and even then, sharing means giving up the ability to tell who did what. If you need someone else to have administrative access, an IAM role or an IAM Identity Center user gives them their own credentials and their own audit trail instead.

What's the real difference between an IAM user and an IAM role?

An IAM user has standing, long-term credentials — a password and/or access keys that stay valid until you change them. An IAM role has no standing credentials at all; when it's assumed, AWS issues temporary security credentials tied to that one session, which then expire on their own, usually within an hour by default and up to a role's configured maximum of 1–12 hours.

Should I still create IAM users at all, or go straight to IAM Identity Center?

For most day-to-day human access, AWS now recommends IAM Identity Center or federation over creating IAM users. IAM users with long-term credentials are still the right tool for a narrower set of cases — emergency break-glass access, workloads that genuinely can't use an IAM role, third-party clients without IAM Identity Center support, and accounts where IAM Identity Center isn't available at all.

Why do AWS docs sometimes say "IAM root user" instead of just "root user"?

Both terms point at the same identity — the AWS account root user. The wording varies across different pages of AWS's documentation, which understandably confuses people scanning multiple sources; there isn't a second, separate "IAM root user" that behaves differently from the account root user described throughout this post.

Why can't my IAM admin see the Billing console even with full permissions?

Because IAM access to the Billing and Cost Management console is off by default for every IAM identity, regardless of what permissions they hold, until root specifically turns it on through the account's Billing settings. After that one-time activation, the IAM user or role still needs an attached policy (the AWS managed Billing policy is the standard choice) before they can actually open billing pages.

When is it actually correct to sign in as root for an emergency?

Two of the clearest cases: your only IAM administrator accidentally revoked their own permissions and nobody else can fix the policy, or an S3 bucket or SQS queue policy is misconfigured to deny every principal, locking out even admins. Both are explicitly listed among the tasks that require root credentials.

What happens to root user access in AWS Organizations member accounts?

You can centrally remove a member account's root password, access keys, signing certificates, and MFA through the Organizations management account. Once removed, that member account can't sign in as root or recover a root password unless account recovery is specifically re-enabled. The management account or a delegated administrator can still perform a defined set of privileged root tasks on the member account's behalf, without the member account ever holding standing root credentials.

Revision note. Written September 2026, covering current AWS IAM and account root user documentation.. But names, quotas, and recommended defaults do shift as AWS updates its console and documentation, so it's worth a quick re-check on anything time-sensitive before you act on it — and if you're the one who just found an unexpected charge on your bill because someone had the root password, take a breath, you're not the first, and it's very fixable from here.Enjoy life!

πŸ’‘ Recommended AWS Foundations Reading

Master the core building blocks of AWS infrastructure, networking, and security:

Related