Beginner · AWS account, IAM and billing · topic 6 of 50 · 30 min
Creating and securing an AWS account
Explanation
What an AWS account is
An AWS account is a container that holds your resources (servers, buckets, databases) and receives one bill. Companies often use many accounts, for example one for development and one for production, so a mistake in one cannot damage the other. As a learner, one account is enough. Each account has a 12-digit account ID such as 123456789012.
Signing up
- Go to aws.amazon.com and choose to create an account. Use an email address you will keep for years; a shared team mailbox is better than a personal one for a company account.
- Enter contact details and a payment card. Indian debit and credit cards usually work; a small temporary verification charge may appear and is reversed.
- Verify your phone number, then choose a plan (see the Free Tier below) and the free Basic support plan.
The Free Tier (it changed in July 2025)
For accounts created on or after 15 July 2025, AWS asks you to choose a Free plan or a Paid plan. New customers get up to US$200 in credits: US$100 at sign-up, and up to US$100 more for trying certain services. The Free plan lasts up to 6 months or until the credits run out, whichever comes first, and some services are not available on it; to keep going you upgrade to the Paid plan. Some "always free" offers continue on both plans, for example AWS Lambda's 1 million requests and 400,000 GB-seconds of compute per month. Accounts opened before 15 July 2025 keep the older 12-month free tier. These rules change, so read the current AWS Free Tier page before you rely on any number here.
The root user: lock it away
The root user is the identity created with your sign-up email. It has complete access to everything in the account, and IAM permission policies cannot limit it. If someone steals the root password, they own your account and your bill. So:
- Turn on MFA (multi-factor authentication) for root immediately: an authenticator app, a passkey or a hardware security key. AWS now requires MFA for root users in most accounts, but set it up on day one anyway.
- Never create access keys for the root user. If any exist, delete them.
- Use a long, unique password stored in a password manager.
- Use root only for the few tasks that need it, such as changing the account email or root password, closing the account, or restoring access when every admin is locked out.
An admin identity for daily work
For everyday work, create a separate identity with admin rights. The recommended way for people is IAM Identity Center: it gives you a sign-in portal and short-term credentials that expire on their own. For a personal learning account, an IAM user with the AdministratorAccess policy and MFA is acceptable and simpler. Either way, sign out of root and sign in as this identity.
Billing alerts before anything else
Open the Billing and Cost Management console and create a budget in AWS Budgets, for example a monthly cost budget of US$5 that emails you at 80% of actual spend and at 100% of forecast spend. AWS also offers a zero-spend budget template that warns you as soon as anything is charged. Do this before you launch your first server.
Four ways to use AWS
- The Management Console: the website. Good for learning and for looking around.
- The AWS CLI (command line interface): the aws command. Good for repeatable work and scripts.
- SDKs (software development kits): libraries for programming languages, such as boto3 for Python. Your apps use these.
- AWS CloudShell: a terminal in the browser, already signed in as you, with the CLI installed. No keys on your laptop.
aws --version # check the CLI (version 2) is installed
aws configure # asks for access key ID, secret key, region, output
# Default region name [None]: ap-south-1
# Default output format [None]: json
aws sts get-caller-identity # who am I? (account ID and ARN)
aws s3 ls # list your S3 buckets
aws configure --profile learning # save a second set of settings as a named profile
aws s3 ls --profile learning # use that profile for one command
aws configure sso # set up a profile that signs in through IAM Identity Center{
"UserId": "AIDASAMPLEUSERID12345",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/asha-admin"
}import boto3 # pip install boto3 (runs on your computer, not in this browser)
s3 = boto3.client("s3", region_name="ap-south-1")
for bucket in s3.list_buckets()["Buckets"]:
print(bucket["Name"])Need help?
Stuck on a word or an idea? Search this course, or every course, and jump straight to the explanation or a worked question.
Try:
Watch the lesson
Creating and securing an AWS account · 1/7
An AWS account holds your resources and your bill. Let us open one safely.
Prefer a video by a teacher? Find free videos on “create AWS account securely root MFA budget alert tutorial” on YouTube ↗
In real life: A college cloud club sets up its account
A cloud club at an engineering college in Pune opens one AWS account for workshops. The faculty coordinator signs up with the club's shared email, adds a hardware security key as root MFA, stores the root password in the department's password manager and puts the key in a locked drawer. She enables IAM Identity Center, creates a sign-in for each of the four student leads, and sets a monthly budget of US$10 with email alerts to all five of them. In the first workshop, students use CloudShell, so nobody saves access keys on lab computers.
Practice (0/3 done)
What should you do with the root user right after creating an AWS account?
Write a safe-setup checklist for a new AWS learning account, in the order you would do it. Then, if you have an account, carry it out and run aws sts get-caller-identity in CloudShell.
Write setup_problems(account) for a quick account check. account is a dict with "root_mfa" (True/False), "root_access_keys" (a number), "admin_identity" (True/False) and "budget_alert" (True/False). Return a list of the fixes needed, in this order, including only the ones that apply: "enable root MFA", "delete root access keys", "create an admin identity", "create a budget alert".
Quick quiz
Read more (free)
Related help
Before this, learn
This topic builds on these. If something here feels new, open them first.
Related topics
- IAM: users, groups, roles and least privilegeAWS account, IAM and billing · same module
- IAM policy JSON and how AWS decidesAWS account, IAM and billing · same module
- Pricing, billing and cost controlAWS account, IAM and billing · same module
- Cloud identity and access managementCyber Security: from zero to SOC analyst · Cloud security basics
- Identity is the new perimeterCloud security and compliance
- Google Cloud structure: projects, billing and IAMGoogle Cloud and comparing the clouds
Questions people ask about this
Open a question to see the answer and why. The first ones are this topic's own quiz, so try the quiz above before you peek.
Which identity can IAM permission policies NOT restrict inside its own account?
Answer: The root user
The root user always has full access in its account; that is why it must be locked away.
Which command shows the account and identity your CLI is using?
Answer: aws sts get-caller-identity
aws sts get-caller-identity returns the UserId, Account and Arn.
What is AWS CloudShell?
Answer: A browser-based terminal already signed in as you, with the CLI installed
CloudShell gives you a ready terminal without storing keys on your computer.
An account was created in August 2025. Which Free Tier rules apply?
Answer: The newer Free plan or Paid plan choice with credits
Accounts created on or after 15 July 2025 use the new Free/Paid plan model with credits. Check the Free Tier page for details.
Where does aws configure save your access keys?
Answer: In ~/.aws/credentials
Keys go in ~/.aws/credentials and settings such as region in ~/.aws/config.
Which identity type is meant for programs, not people?Related
Answer: Service account or managed identity
Service accounts and managed identities are for workloads.
Can you sign in to AWS as an IAM group?Related
Answer: No, a group only holds users and their shared permissions
Groups have no credentials of their own; they only collect users.
Which tool shows resources shared with outside accounts and unused permissions?Related
Answer: IAM Access Analyzer
Access Analyzer finds external access, unused access and can help build least-privilege policies.
Which project identifier can never be changed after the project is created?Related
Answer: Project ID
The project ID is permanent and globally unique. The name and labels can change, and the billing link can be moved.
Pass the quiz (60% or more) or mark this topic as done when you are ready.
Your progress is saved on this device only.
Next steps
- 3 more topics in “AWS account, IAM and billing” before its exam: IAM: users, groups, roles and least privilege, IAM policy JSON and how AWS decides, Pricing, billing and cost control.
- Module 2 exam: AWS account, IAM and billing · 13 questions · 20 min, without help. 4 topics of this module still to finish first.
- Then the next module, Compute and storage: EC2 and S3. 50 topics left in the course before the final exam.