← Articles

April 4, 2026 · Tim Fraser, Cloud Operations Lead

Managing Client AWS Accounts as an MSP — A Practical Guide

If you manage AWS infrastructure for multiple clients, you already know the daily friction. Five browser tabs with five different AWS consoles. Credential switching. Trying to remember which client has that NAT Gateway you meant to check. A mental map of who's running what, tracked in spreadsheets that are always slightly out of date.

This is the reality for most MSPs and cloud consultants managing 5-20 client accounts. It works when you have three clients. By the time you have eight, things start to slip through.

Here's a practical guide to staying on top of it.

The cross-account access pattern

If you're still logging into each client's AWS console with separate IAM users, stop. The correct pattern is cross-account IAM roles.

Your setup should look like this:

This gives you a single identity, a clear audit trail in each client's CloudTrail, and the ability to revoke access cleanly when an engagement ends.

The trust policy on the client side should include an ExternalId condition — a unique string per client that prevents confused deputy attacks. This matters more than most MSPs realise, especially when your management account ID is known to multiple clients.

Naming and tagging discipline

Across multiple accounts, you need consistent conventions or you'll lose hours tracking down basic information.

At minimum, tag every resource with:

Tag discipline is tedious. It's also the single biggest time-saver when a client calls asking "what are we paying for?" and you need an answer in ten minutes, not two hours.

The monitoring problem

Each client probably has their own monitoring setup — or none at all. Some use CloudWatch alarms. One has Datadog. Another has nothing and relies on you to notice when things break.

The temptation is to standardise everyone onto one monitoring platform. In practice, this is hard to enforce when clients have their own preferences and budgets. What you actually need is a reliable way to review each client's environment regularly without spending your entire week clicking through AWS consoles.

A weekly review across eight accounts — checking security groups, cost trends, resource health, and recent changes — done manually, that's an entire day. Every week.

Credential management that won't get you fired

Some ground rules:

Keeping track of who has what

Beyond the console, you need a register of your client environments. It doesn't need to be fancy — a spreadsheet or Notion table with:

Update it weekly. When a client calls, you can answer questions without fumbling through console tabs trying to remember their setup.

Setting up plainfra per client

The approach that works best for MSPs is simple: set up a separate plainfra Core subscription for each client's AWS account. Each subscription costs $79/month, and each one connects to one client account using the same read-only cross-account IAM role pattern described above — with a unique ExternalId per client.

Once connected, each client gets an automated weekly health report delivered by email as a PDF. The report covers security posture, cost trends, and operational risks, prioritised by severity. You can forward the report to the client directly, or review it yourself first and act on the findings.

Between reports, you can log into each client's plainfra and ask questions in plain English: "Show me all security groups with public ingress." "Which RDS instances don't have automated backups?" "What changed this week?" The answers come back in seconds, not hours.

The weekly reports are where this pays for itself. That day-long manual review across all your clients becomes a focused session: scan each report, note what changed, flag what needs attention. The structure is consistent across clients, so you're not context-switching between different monitoring tools — just working through each report in turn.

For an MSP managing multiple accounts, it's the difference between proactive management and hoping nothing breaks before you get around to checking.

Try plainfra free → 50K tokens, 7 days, no charge. Or see the interactive demo →.