Bird
Raised Fist0
AWScloud~5 mins

IAM best practices in AWS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the principle of least privilege in IAM?
It means giving users and roles only the permissions they need to do their job, and no more. This helps reduce security risks.
Click to reveal answer
beginner
Why should you avoid using root account for daily tasks?
The root account has full access to everything. Using it daily increases risk of accidental or malicious changes. Instead, create users with limited permissions.
Click to reveal answer
beginner
What is MFA and why is it important in IAM?
MFA stands for Multi-Factor Authentication. It adds an extra step to login, like a code from your phone, making accounts harder to hack.
Click to reveal answer
intermediate
How do IAM roles help improve security?
IAM roles let you assign permissions to services or users temporarily without sharing long-term credentials. This limits exposure and improves control.
Click to reveal answer
intermediate
Why is it important to regularly review IAM policies and permissions?
Regular reviews help find and fix overly broad permissions or unused accounts, keeping your environment secure and tidy.
Click to reveal answer
What should you do before granting permissions to a new IAM user?
AShare passwords with other users
BGive full admin access by default
CUse the root account credentials
DGrant only the permissions needed for their tasks
Which of the following is a best practice for securing the AWS root account?
AEnable MFA and avoid using it for daily tasks
BShare root credentials with team members
CUse root account for all API calls
DDisable MFA for easier access
What is the main benefit of using IAM roles instead of long-term user credentials?
ARoles allow unlimited access to all resources
BRoles require no permissions
CRoles provide temporary permissions without sharing passwords
DRoles are only for root users
How often should you review IAM policies and permissions?
ANever, once set they are permanent
BRegularly, to remove unnecessary permissions
COnly when a security breach happens
DOnce every 10 years
What does MFA add to the login process?
AAn extra verification step like a code from a device
BA longer password requirement
CAutomatic password reset
DAccess without a password
Explain the principle of least privilege and why it is important in IAM.
Think about giving only the keys someone needs, not all keys.
You got /3 concepts.
    Describe how enabling MFA improves the security of AWS accounts.
    Consider how a second lock on a door adds safety.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main reason to follow the principle of least privilege in AWS IAM?
      easy
      A. To create permanent access keys for all users
      B. To allow users full access to all AWS services
      C. To give users only the permissions they need to do their job
      D. To disable multi-factor authentication (MFA) for easier access

      Solution

      1. Step 1: Understand least privilege concept

        Least privilege means giving users only the permissions they need, nothing more.
      2. Step 2: Identify correct option

        To give users only the permissions they need to do their job matches this concept by limiting permissions to what is necessary.
      3. Final Answer:

        To give users only the permissions they need to do their job -> Option C
      4. Quick Check:

        Least privilege = minimal permissions [OK]
      Hint: Least privilege means minimal needed permissions only [OK]
      Common Mistakes:
      • Giving users full access unnecessarily
      • Using permanent keys instead of temporary credentials
      • Ignoring MFA setup
      2. Which of the following is the correct way to assign permissions to an AWS service using IAM?
      easy
      A. Create an IAM role and assign it to the AWS service
      B. Generate permanent access keys and embed them in the service code
      C. Create an IAM user and attach policies directly to the user
      D. Use root account credentials for the service

      Solution

      1. Step 1: Understand IAM roles for services

        IAM roles allow AWS services to assume permissions temporarily without permanent keys.
      2. Step 2: Identify best practice

        Assigning an IAM role to the service is the recommended way to grant permissions securely.
      3. Final Answer:

        Create an IAM role and assign it to the AWS service -> Option A
      4. Quick Check:

        Use roles for services, not permanent keys [OK]
      Hint: Use roles for AWS services, not permanent keys [OK]
      Common Mistakes:
      • Attaching policies directly to users for services
      • Embedding permanent keys in code
      • Using root account credentials
      3. Consider this IAM policy snippet attached to a user:
      {
        "Version": "2012-10-17",
        "Statement": [{
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": ["arn:aws:s3:::example-bucket"]
        }]
      }

      What can this user do?
      medium
      A. Upload files to example-bucket
      B. List the contents of the example-bucket
      C. Delete files from example-bucket
      D. Access all S3 buckets

      Solution

      1. Step 1: Analyze the policy actions

        The policy allows only the "s3:ListBucket" action on the specific bucket resource.
      2. Step 2: Determine allowed operations

        "s3:ListBucket" lets the user see the list of objects but not upload or delete.
      3. Final Answer:

        List the contents of the example-bucket -> Option B
      4. Quick Check:

        Action = s3:ListBucket means list only [OK]
      Hint: Check the Action field to know allowed operations [OK]
      Common Mistakes:
      • Assuming upload or delete permissions from list permission
      • Thinking the policy applies to all buckets
      • Ignoring the specific resource ARN
      4. You created an IAM user with full S3 access but forgot to enable MFA. What is the best way to fix this?
      medium
      A. Attach an MFA policy and require MFA for sensitive actions
      B. Delete the user and create a new one with MFA enabled
      C. Remove all permissions from the user
      D. Share the root account credentials with the user

      Solution

      1. Step 1: Understand MFA enforcement

        MFA can be required by attaching policies that enforce MFA for sensitive actions.
      2. Step 2: Apply best practice

        Attaching an MFA policy is better than deleting the user or removing permissions.
      3. Final Answer:

        Attach an MFA policy and require MFA for sensitive actions -> Option A
      4. Quick Check:

        Enable MFA via policy, don't delete users [OK]
      Hint: Use policies to enforce MFA, not user deletion [OK]
      Common Mistakes:
      • Deleting users unnecessarily
      • Removing all permissions without MFA
      • Sharing root credentials
      5. Your company wants to allow temporary access to AWS resources for contractors without creating permanent IAM users. Which approach follows best IAM practices?
      hard
      A. Give contractors permanent access keys with admin permissions
      B. Create permanent IAM users with full access for contractors
      C. Share your root account credentials with contractors
      D. Create IAM roles with limited permissions and let contractors assume them

      Solution

      1. Step 1: Identify temporary access method

        IAM roles allow temporary credentials that contractors can assume without permanent users.
      2. Step 2: Match best practice

        Creating roles with limited permissions follows least privilege and avoids permanent keys.
      3. Final Answer:

        Create IAM roles with limited permissions and let contractors assume them -> Option D
      4. Quick Check:

        Temporary roles for contractors = best practice [OK]
      Hint: Use roles for temporary access, avoid permanent users [OK]
      Common Mistakes:
      • Creating permanent users for contractors
      • Sharing root credentials
      • Giving admin permissions unnecessarily