AWS access for agencies without sharing the root login

How a client gives your agency its own AWS access with IAM Identity Center or an IAM role, the right managed policy, MFA, and clean removal at the end.

5 min readReviewed October 2026

An AWS account can hold a client's servers, files, databases and the card that pays for all of it. AWS has built-in ways to let an agency in safely: your own named access, protected by multi-factor authentication and limited to the work, which the client can remove in a few clicks. Nobody needs the root login. This guide follows Theo at Northside Studio, who is moving the Harbor Fitness booking app onto AWS for Dana.

Console labels come from AWS documentation at the time of writing. The exact clicks are also on our AWS step by step page.

Get Set Keys sends your client one link for AWS, with your email and the right role already filled in, and checks each step is done.

Send one link instead

Keep the root login with the client

The root user is the email address and password that created the account, with complete access to every service and resource, billing included. AWS's root user best practices say not to share the root password, MFA or access keys with anyone except those with a strict business need, and to use the root user only for the few tasks that require it, such as changing the account's root email or closing the account. Those are owner decisions, so they stay with Dana.

AWS's own example of hiring an outside company is just as clear. Instead of an IAM user with long-term credentials, it recommends a role and its temporary credentials. AWS also suggests a business-managed group email address for the root user, so AWS can still reach the business if one person is away or leaves.

Ask for this

  • your own IAM Identity Center user with a permission set
  • an IAM role that trusts your agency's AWS account, with an external ID
  • MFA on every sign-in

Not this

  • the root email and password
  • the root user's MFA codes
  • an IAM user with long-term access keys
  • AdministratorAccess as the default

One link per client, with every step checked. Reserve a founding place

Option 1: an IAM Identity Center user for each person

This suits a team that works in the AWS console. Each person at Northside Studio gets a named user, signs in through the AWS access portal and receives short-lived credentials for the account.

One thing to know first: giving users access to AWS accounts needs an organization instance of IAM Identity Center. When a standalone account turns it on, AWS creates an organization with that account as the management account. AWS also notes that on a free tier account, creating an organization moves it to a paid, pay-as-you-go plan and the free tier credits end immediately, so Dana should check her plan first.

Dana signs in with administrator access, then:

  1. She opens the IAM Identity Center console and chooses Enable. On a standalone account, AWS shows the Enable IAM Identity Center with AWS Organizations page, where she reviews the details and chooses Enable.
  2. Under Multi-account permissions, she chooses Permission sets, then Create permission set. She selects Predefined permission set, picks PowerUserAccess, chooses Next, names it, then chooses Next and Create.
  3. She chooses Users, then Add user, and enters Theo's username, email and name. She keeps Send an email to this user with password setup instructions, chooses Next twice, then Add user.
  4. Under Multi-account permissions, she chooses AWS accounts, ticks the Harbor Fitness account and chooses Assign users or groups. She selects Theo on the Users tab, chooses Next, selects the permission set, chooses Next, then Submit.

Theo receives an email titled "Invitation to join AWS IAM Identity Center". It expires after seven days, and Dana can send a fresh one with Reset password.

Where to click
IAM Identity CenterAWS accountsHarbor FitnessAssign users or groupsTheoPowerUserAccessSubmit

Option 2: an IAM role your agency's account can assume

This suits an agency that works from its own AWS account with the command line or deployment tools. It is the setup AWS describes for third parties: the agency provides its AWS account ID and an external ID, the client creates a role, and the client sends back the role's ARN.

  1. Theo sends Dana Northside Studio's AWS account ID and an external ID unique to Harbor Fitness. AWS doesn't treat the external ID as a secret, but it should never be guessable.
  2. Dana opens the IAM console and chooses Roles, then Create role, then AWS account, then Another AWS account, and enters the account ID.
  3. She ticks Require external ID and pastes Theo's external ID. She can also tick Require MFA.
  4. She chooses Next, ticks PowerUserAccess, chooses Next again, names the role and chooses Create role.
  5. She opens the new role and sends its ARN to Theo.

Two details matter. AWS says a role that requires an external ID can't be reached with the console's Switch role, only through the AWS CLI, SDKs or API, so choose Option 1 if your team needs the console. And creating the role is only the first half: Theo's own account must still allow his users to assume it.

Pick the smallest policy that does the job

AWS says its managed policies for job functions don't grant least privilege, so treat them as starting points. These three cover most agency work:

Policy What it allows Good for agencies?
PowerUserAccess Every AWS service and resource except IAM, AWS Organizations and account management Yes, for most builds
ReadOnlyAccess Lists and reads every resource, including data in S3 buckets and DynamoDB tables Yes, for audits and support
AdministratorAccess Every action on every service and resource, including users and permissions Only for a specific admin task

PowerUserAccess can't create IAM users or roles (service-linked roles aside), so if the build needs a new role, for a function say, Dana creates it or adds a narrow extra policy. AWS also notes that PowerUserAccess still allows every IAM Identity Center action when Identity Center is on, which Dana can limit with a custom permission set. To look around without reading stored data, AWS offers ViewOnlyAccess.

Sending this to a client? Send one link instead

Turn on multi-factor authentication

  • Root user. AWS requires MFA on the root user for every account type and recommends registering more than one device. Dana keeps these herself.
  • Identity Center users. By default, Identity Center asks for MFA every time someone signs in, and users without a device register one at sign-in. Dana can confirm this under Settings > Authentication > Multi-factor authentication > Configure.
  • Roles. With Require MFA ticked, only users who signed in with MFA can assume the role.

AWS recommends phishing-resistant MFA, such as passkeys and security keys, and no longer supports setting up text message codes.

Skip the back and forth. Let one link walk your client through it

Removing access at the end

For an Identity Center user:

  1. In the IAM Identity Center console, under Multi-account permissions, Dana chooses AWS accounts and selects the Harbor Fitness account.
  2. Under Assigned users and groups, she selects Theo, chooses Remove access and confirms with Remove access.
  3. She chooses Users, selects Theo and chooses Delete users.

AWS recommends removing a user's assignments before deleting the user, which is why the order above matters.

For a role:

  1. In the IAM console, Dana chooses Roles and ticks the role made for Northside Studio.
  2. She chooses Delete, checks when the role was last used, types the role name and chooses Delete.

Then she deletes any IAM users or access keys created during the project, and changes any passwords or keys the agency handled. Our project handover checklist covers the same clean-up for the client's other platforms.

Checklist
  • Root email, password and MFA held by Harbor Fitness
  • Theo's account assignment removed, then his Identity Center user deleted
  • the role made for Northside Studio deleted
  • IAM users and access keys from the project deleted
  • passwords and keys the agency handled changed

Doing this for every client?

Get Set Keys gives each client one link that walks them through these AWS steps and checks each one is done. Porter, the AI setup helper on every link, answers their questions straight away and passes anything it can't answer to you. You can reserve a founding place before launch in November 2026.

Sources

  1. Root user best practices for your AWS account (AWS IAM User Guide)
  2. AWS account root user (AWS IAM User Guide)
  3. Access to AWS accounts owned by third parties (AWS IAM User Guide)
  4. Create a role to give permissions to an IAM user (AWS IAM User Guide)
  5. Switch from a user to an IAM role (console) (AWS IAM User Guide)
  6. AWS managed policies for job functions (AWS IAM User Guide)
  7. PowerUserAccess (AWS Managed Policy Reference)
  8. ReadOnlyAccess (AWS Managed Policy Reference)
  9. Enable IAM Identity Center (AWS IAM Identity Center User Guide)
  10. Organization and account instances of IAM Identity Center (AWS IAM Identity Center User Guide)
  11. Create a permission set (AWS IAM Identity Center User Guide)
  12. Add users to your Identity Center directory (AWS IAM Identity Center User Guide)
  13. Assign user or group access to AWS accounts (AWS IAM Identity Center User Guide)
  14. Prompt users for MFA (AWS IAM Identity Center User Guide)
  15. Configure MFA device enforcement (AWS IAM Identity Center User Guide)
  16. AWS Multi-factor authentication in IAM (AWS IAM User Guide)
  17. Remove user and group access to an AWS account (AWS IAM Identity Center User Guide)
  18. Delete users in IAM Identity Center (AWS IAM Identity Center User Guide)
  19. Delete roles or instance profiles (AWS IAM User Guide)

Platforms change their screens often. Every step here was checked against these official pages in October 2026.

Send one link instead of this guide.

Get Set Keys walks your client through each step and checks it is done. Ten founding places, launching November 2026.

Reserve a place

Step by step, per platform