Skip to content
Go back

AWS Setup 101

Published:  at  03:22 PM

AWS Setup 101: Multi-Account Setup with SSO (The Easy Way)

Setting up your AWS accounts right from the start can save you a ton of headaches later. There are multiple ways to do it, but the default setup often misses a few things that’ll make life easier for your team. This guide is designed for those new to AWS, but we’ll layer in expert-level details and best practices.

Tip: If you’re just starting with AWS, or if you’re relying heavily on IAM users and credential files, this guide will show you a more secure and scalable approach. We’re aiming for a robust, auditable, and least-privilege setup from day one.

The ideal setup involves multiple AWS accounts grouped under a single AWS Organization, with your team authenticating through Single Sign-On (SSO) to access the AWS Console and the AWS Command Line Interface (CLI).

Sounds complex? It’s a one-time process (though you’ll refine it over time), and after this, you won’t have to think about core account structure much again. Let’s get started!

1. Create a Management Account

The first step is creating the management account. This is the central hub for your AWS Organization. Think of it as the payer account and the root of your AWS organizational tree.

Once you’re done, you should be able to log in and access the AWS Console.

Important: The credentials for this account are extremely powerful. You should rarely need them again. The root user credentials for this account give complete, unrestricted access. You can always reset it if absolutely necessary. For maximum security, consider using a hardware security key (like a YubiKey) for the root user’s MFA.

Root User Explained: When you create an AWS account, you start with a single sign-in identity that has complete access to all AWS services and resources in the account. This identity is called the AWS account root user. You sign in as the root user by using the email address and password that you used to create the account. You should never use the root user for everyday tasks, even administrative ones. Instead, adhere to the principle of least privilege and create additional IAM users or, better yet, use SSO via IAM Identity Center.

What to Do:

What NOT to Do:

2. Setting Up Your AWS Organization (Centralized Management)

Now, create your AWS Organization. This lets you manage all your accounts under one umbrella and apply policies across them.

Key things to remember:

What to Do:

What NOT to Do:

3. Create Separate Accounts for Dev, Staging, and Production (The Golden Rule)

This is where things get smart. Create dedicated accounts for each environment: Development, Staging, and Production. Expert Tip: Also consider creating a separate account for security auditing and logging, and potentially a shared services account for common infrastructure like networking components.

Why? Because chaos is bad. And accidents happen.

How to Create the Accounts:

What to Do:

What NOT to Do:

4. Enforce MFA Across the Organization (The Security Blanket)

Protect your accounts by requiring MFA for all users. AWS Organizations makes this easy to enforce using Service Control Policies (SCPs).

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllUsersWithoutMFA",
      "Effect": "Deny",
      "NotAction": [
        "iam:CreateVirtualMFADevice",
        "iam:EnableMFADevice",
        "iam:ListMFADevices",
        "iam:ResyncMFADevice",
        "iam:DeactivateMFADevice",
        "iam:DeleteVirtualMFADevice",
        "sts:GetSessionToken"
      ],
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "aws:MultiFactorAuthPresent": "false"
        }
      }
    }
  ]
}

What to Do:

What NOT to Do:

5. Setting Up SSO Access (The Easy Way In)

Now for the magic: Single Sign-On (SSO). SSO lets your team access all your AWS accounts with a single set of credentials. We’ll use AWS IAM Identity Center (formerly AWS SSO).

Example: Creating a “Developer” Permission Set

  1. In IAM Identity Center, go to “Permission sets”.
  2. Create a new permission set.
  3. Choose “Create a custom permission set”.
  4. Give it a name like “DeveloperAccess”.
  5. Attach policies. You might attach AmazonEC2FullAccess, AmazonS3FullAccess, and AWSLambda_FullAccess. You might also create a custom policy that grants access to specific resources (e.g., only S3 buckets with a specific prefix).
  6. Do not attach “AdministratorAccess”.

Using AWS SSO with the AWS CLI:

  1. Install and Configure the AWS CLI: Make sure you have the latest version of the AWS CLI installed.
  2. Configure SSO: Use the aws configure sso command. This will prompt you for your SSO start URL and region, which you can find in the AWS IAM Identity Center console.
  3. Login: Use the aws sso login command. This will open a browser window where you can authenticate with your SSO provider (or the IAM Identity Center built-in store).
  4. Use the CLI: Once logged in, you can use the AWS CLI as usual. Your credentials will be automatically managed by AWS SSO and will expire after a set period (configurable in IAM Identity Center). Expert Tip: Use named profiles with the --profile flag to easily switch between different AWS accounts and roles. For example: aws s3 ls --profile YourCompanyName-Dev-Developer.

What to Do:

What NOT to Do:

6. Billing and Cost Management (The Bottom Line)

Centralized billing with AWS Organizations lets you see all your costs in one place (the management account).

Setting Up a Basic Budget:

Setting Up a CloudWatch Alarm:

What to Do:

What NOT to Do:

7. The Management Account: Put it Away!

That management account? Lock it down! Now that everything is set up with AWS Organizations and SSO access, you rarely, if ever, need to log in to it again using the root user.

What to Do:

What NOT to Do:

8. Troubleshooting (Common Issues)

9. Advanced: Infrastructure as Code (Optional)

For a more automated approach, consider using Infrastructure as Code (IaC) tools like AWS CloudFormation or Terraform. These tools allow you to define your AWS infrastructure (including accounts and configurations) as code, making it repeatable and consistent.

10. Introduce AWS Control Tower (Optional Advanced)

AWS Control Tower provides a simple way to set up and govern a secure, multi-account AWS environment. It automates many of the steps described in this guide, including creating accounts, setting up guardrails (like SCPs), and configuring centralized logging and security auditing. If you prefer a more guided approach, consider using AWS Control Tower.

11. Bonus: Scoring AWS Credits (The Startup Lifeline)

AWS understands that startups need a boost. They offer various programs to provide free credits, which can significantly reduce your initial cloud costs. Here’s how to find them:

Tips for Maximizing Your Credits:

What NOT to do:

By actively seeking out and effectively utilizing AWS credits, you can significantly reduce your cloud costs in the early stages of your startup, giving you more runway to focus on building your product.

Conclusion: AWS Account Setup

You’ve now set up a secure, scalable, and well-organized AWS environment for your startup. By following these steps, you’ve avoided common pitfalls and created a foundation for long-term success. You’ve implemented best practices like least privilege, separation of duties, and centralized management.

Now go build something amazing!

TLDR; AWS Account Setup Checklist:


Suggest Changes

Previous Post
networking for cloud
Next Post
setting up iam