Netskope named a Leader in the 2024 Gartner® Magic Quadrant™ for Security Service Edge. Get the report

  • Why Netskope chevron

    Changing the way networking and security work together.

  • Our Customers chevron

    Netskope serves more than 3,000 customers worldwide including more than 25 of the Fortune 100

  • Our Partners chevron

    We partner with security leaders to help you secure your journey to the cloud.

Still Highest in Execution.
Still Furthest in Vision.

Learn why 2024 Gartner® Magic Quadrant™ named Netskope a Leader for Security Service Edge the third consecutive year.

Get the report
Netskope Named a Leader in the 2024 Gartner® Magic Quadrant™ for Security Service Edge graphic for menu
We help our customers to be Ready for Anything

See our customers
Woman smiling with glasses looking out window
Netskope’s partner-centric go-to-market strategy enables our partners to maximize their growth and profitability while transforming enterprise security.

Learn about Netskope Partners
Group of diverse young professionals smiling
Your Network of Tomorrow

Plan your path toward a faster, more secure, and more resilient network designed for the applications and users that you support.

Get the white paper
Your Network of Tomorrow
Introducing the Netskope One Platform

Netskope One is a cloud-native platform that offers converged security and networking services to enable your SASE and zero trust transformation.

Learn about Netskope One
Abstract with blue lighting
Embrace a Secure Access Service Edge (SASE) architecture

Netskope NewEdge is the world’s largest, highest-performing security private cloud and provides customers with unparalleled service coverage, performance and resilience.

Learn about NewEdge
Netskope Cloud Exchange

The Netskope Cloud Exchange (CE) provides customers with powerful integration tools to leverage investments across their security posture.

Learn about Cloud Exchange
Netskope video
The platform of the future is Netskope

Intelligent Security Service Edge (SSE), Cloud Access Security Broker (CASB), Cloud Firewall, Next Generation Secure Web Gateway (SWG), and Private Access for ZTNA built natively into a single solution to help every business on its journey to Secure Access Service Edge (SASE) architecture.

Go to Products Overview
Netskope video
Next Gen SASE Branch is hybrid — connected, secured, and automated

Netskope Next Gen SASE Branch converges Context-Aware SASE Fabric, Zero-Trust Hybrid Security, and SkopeAI-powered Cloud Orchestrator into a unified cloud offering, ushering in a fully modernized branch experience for the borderless enterprise.

Learn about Next Gen SASE Branch
People at the open space office
Designing a SASE Architecture For Dummies

Get your complimentary copy of the only guide to SASE design you’ll ever need.

Get the eBook
Make the move to market-leading cloud security services with minimal latency and high reliability.

Learn about NewEdge
Lighted highway through mountainside switchbacks
Safely enable the use of generative AI applications with application access control, real-time user coaching, and best-in-class data protection.

Learn how we secure generative AI use
Safely Enable ChatGPT and Generative AI
Zero trust solutions for SSE and SASE deployments

Learn about Zero Trust
Boat driving through open sea
Netskope achieves FedRAMP High Authorization

Choose Netskope GovCloud to accelerate your agency’s transformation.

Learn about Netskope GovCloud
Netskope GovCloud
  • Resources chevron

    Learn more about how Netskope can help you secure your journey to the cloud.

  • Blog chevron

    Learn how Netskope enables security and networking transformation through security service edge (SSE)

  • Events and Workshops chevron

    Stay ahead of the latest security trends and connect with your peers.

  • Security Defined chevron

    Everything you need to know in our cybersecurity encyclopedia.

Security Visionaries Podcast

On Patents, Trolls, and Innovation
In this episode host Emily Wearmouth chats with Suzanne Oliver, an intellectual property expert, and Krishna Narayanaswamy, co-founder and CTO of Netskope, about the world of patents.

Play the podcast
On Patents, Trolls, and Innovation
Latest Blogs

Read how Netskope can enable the Zero Trust and SASE journey through security service edge (SSE) capabilities.

Read the blog
Sunrise and cloudy sky
SASE Week 2023: Your SASE journey starts now!

Replay sessions from the fourth annual SASE Week.

Explore sessions
SASE Week 2023
What is Security Service Edge?

Explore the security side of SASE, the future of network and protection in the cloud.

Learn about Security Service Edge
Four-way roundabout
  • Company chevron

    We help you stay ahead of cloud, data, and network security challenges.

  • Leadership chevron

    Our leadership team is fiercely committed to doing everything it takes to make our customers successful.

  • Customer Solutions chevron

    We are here for you and with you every step of the way, ensuring your success with Netskope.

  • Training and Certification chevron

    Netskope training will help you become a cloud security expert.

Supporting sustainability through data security

Netskope is proud to participate in Vision 2045: an initiative aimed to raise awareness on private industry’s role in sustainability.

Find out more
Supporting Sustainability Through Data Security
Thinkers, builders, dreamers, innovators. Together, we deliver cutting-edge cloud security solutions to help our customers protect their data and people.

Meet our team
Group of hikers scaling a snowy mountain
Netskope’s talented and experienced Professional Services team provides a prescriptive approach to your successful implementation.

Learn about Professional Services
Netskope Professional Services
Secure your digital transformation journey and make the most of your cloud, web, and private applications with Netskope training.

Learn about Training and Certifications
Group of young professionals working

A Real-World Look at AWS Best Practices: IAM User Accounts

May 06 2021


Best practices for securing an AWS environment have been well-documented and generally accepted, such as AWS’s guidance. However, organizations may still find it challenging on how to begin applying this guidance to their specific environments.

  • Which controls should be applied out-of-the-box vs. customized?
  • What pitfalls exist in implementing the various controls or checks?
  • How do you prioritize remediation of the “sea of red” violations?

In this blog series, we’ll analyze anonymized data from Netskope customers that include security settings of 650,000 entities from 1,143 AWS accounts across several hundred organizations. We’ll look at the configuration from the perspective of the best practices, see what’s commonly occurring in the real world and:

  • Discuss specific risk areas that should be prioritized
  • Identify underlying root causes and potential pitfalls
  • Focus on practical guidance for applying the Benchmark to your specific environment

This blog post continues looking at real-world data for common IAM security controls for regular users. Based on the Netskope dataset analyzed, we will highlight six opportunities to improve security by making simple IAM changes:

  1. MFA is not consistently enforced with regular IAM User accounts, with 6% of users without MFA.
  1. Many IAM User accounts are unused and should be disabled. 40% of access keys are more than a year old.
  1. 11% of users had access keys set up at the time of user account setup, which can lead to unnecessary or unused access keys that can be compromised.
  1. 6.7% of IAM users have two access keys, leading to unnecessary access keys that can be compromised.
  1. 7,580 (60.8%) IAM Users have access keys that have not been rotated in 90d
  1. 6,211 (50%) IAM User accounts have not been used in the last 90d

IAM Users past

“I told you these were shadows of the things that have been. That they are what they are, do not blame me!”

— The Ghost, Christmas Carol by Charles Dickens

These five best practices relating to regular IAM Users were analyzed against 12,478 IAM Users in 1,143 accounts:

#Best Practice# Violations%
1Ensure multi-factor authentication (MFA) is enabled for all IAM users that have a console password7736.2
2Do not set up access keys during initial user setup for all IAM users that have a console password1,33110.7
3Ensure there is only one active access key available for any single IAM user8306.7
4Ensure access keys are rotated every 90 days or less7,58060.8
5Ensure credentials unused for 90 days or greater are disabled6,21149.8

1. MFA: IAM Users

Background: Multi-factor authentication is also recommended for regular IAM Users who have a Console login enabled.

Data: 773 (6.2%) IAM User accounts do not have MFA enabled. 

Analysis: We again need to look at the effective MFA policy for regular IAM Users, including SCP policies. As SCP policy data was not available in this dataset, we instead will focus on standalone AWS accounts: 178 accounts are not part of an AWS organization and do not have MFA enforced by an SCP. In these 178 accounts, 773 (6.2%) IAM User accounts definitively do not have MFA enabled. 


  • Detection/Audit
    • Detecting whether MFA is enabled or not can be done by checking the mfa_active field in the IAM credential report or via SCP settings at the AWS Organization/OU/root level:
      aws organizations list-policies|describe-policies
    • Using the AWS Config rule:  mfa-enabled-for-iam-console-access will also detect whether MFA is enabled for IAM Users’ Console access.
  • Preventing/Auditing
    • Best practices recommend MFA be enabled for all IAM Users. For multiple accounts, it is easier to apply MFA with a Service Control Policy within an AWS Organization or if using a federated identity system, to set MFA policy there.

2. No initial access key setup

Background: Best practices recommend not provisioning access keys during initial user setup, and instead enforce more strict requests via ticketing to minimize unused keys.

Data: Based on the creation time of the user account and the access key, 1331 or 10.7% of the IAM user accounts were set up with an access key by the customer at the same time (during provisioning of the user account).

Analysis: Setting up access keys at the same time as a user account, rather than when needed, leads to a larger attack surface of access keys that can remain unused and lead to compromise. We define “at the same time” if the user creation time and access key creation time are within 10 seconds of each other.


  • Detection/Audit
    • Detecting access key provisioning at the time of user provisioning can be done by auditing the IAM User credential report, checking on the user_creation_time against the last_rotation_time of both access keys if they are enabled.
    • If they exist, the users can be notified and their access key(s) could be disabled to enforce a separate change request process to clarify requirements for access keys.
  • Prevention/Mitigation
    • If you choose to enforce this, a process for opening up tickets or change requests to issue access keys can be implemented.

3. One access key

Background: For normal use, it is recommended to have only one access key for a given IAM User at a time, with the exception being during the key rotation period, when two active keys may exist for a short period of time. Two permanent access keys are unnecessary and increase the chance of compromised keys.

Data: Out of 12,478 total IAM Users in this dataset, 830 (6.7%) have two active access keys. 

Analysis: Since a valid scenario for having two keys is during a key rotation period, we look further into how long the keys have been in existence based on their last rotated time. Here is the breakdown of the 12,478 IAM Users in this dataset by age of the keys, normalized against the number of IAM Users that existed in that timeframe:

# IAM Users with two access key%
>30 days old12,1007996.6%
>90 days old11,3957206.3%
>365 days old8,0014455.6%

Overall, between 5-6% of IAM Users in this dataset have two access keys regardless of age. 31 out of 830 users have access keys that are newer than 30d and this may be due to key rotation, but the majority of users appear to have two permanent access keys e.g. 8,001 (5.6%) IAM Users have two access keys over a year old.


  • Detection/Audit
    • Detecting two access keys can be done by auditing the IAM User credential report on a regular basis, incorporating last_key_rotation time to filter out potential false positives due to key rotation.
  • Prevention/Mitigation
    • Remediating the issue can be done at the same time by generating appropriate alerts and/or disabling one of the access keys.

4. Access key rotation

Background: Regular key rotation is recommended in order to mitigate the effects of compromised credentials, especially in the case of access keys where the key secrets may be stored externally on various client endpoints.

Data: Out of the 12,478 access keys in this dataset, 7,580 (60.8%) IAM Users have access keys that have not been rotated in 90d.

Of these users, 4,931 (40%) IAM Users have access keys that are over a year old, 245 IAM Users have access keys over five years old, with the oldest key being from August 2011.

Analysis: Clearly, at some point, the lack of key rotation equates to “never rotates.” The percentage of users with access keys over 90d is 60.8% and with keys over year old is 40%. The older age of access keys leads to more exposure once a key is compromised as the time window for use is that much longer. When looking at year-long timeframes, it is likely that the keys are not under any key rotation policy (which is typically recommended as 90d or less).


  • Detection/Audit
    • Auditing of key access age can be done by checking last_rotated_time in the IAM User Credential report or by using the AWS Config rule: access-keys-rotated
    • It is useful to break down the access key age into tiers to prioritize risk and address underlying causes more effectively. This can reduce false positives due to key rotation, identify “permanent” keys (and users), and help affect change in policies to minimize future problems.
  • Prevention/Mitigation
    • To remediate the situation, key rotations should be enforced with communication and coordination to all involved users.

5. Unused IAM accounts

Background: Unused accounts significantly increase the risk for compromised accounts and increase the administrative overhead for securing the environment.

Data: Out of a total of 12,478 IAM User accounts in this dataset, 6,211 (50%) IAM User accounts have not been used in the last 90d (i.e. no Console login and no API key use).

Of these user accounts, 3,549 (28.4%) user accounts have not been used in the past year, and the oldest, unused IAM User Console account was last used in March 2014, and the oldest, unused active access key was last used in April 2015.

Analysis: Half (50%) of IAM User accounts are not used regularly (last 90d), and over 28% have not been used in 365d. The latter category should be the immediate priority for remediation as it reduces account risk proportionally. Best practices would recommend culling (disabling) user accounts that have been unused for 90d or more.


  • Detection/Audit
    • Regular auditing of unused access keys or console logins should be done, and those keys and user accounts should be disabled. 
    • Unused accounts can be done by auditing the IAM credential report. Care should be taken to perform the check properly in case the access key or console login has never been used. In these cases, the password_last_used or access_key_last_used_date will not be set, and the password_last_changed or access_key_last_rotated fields must be used from the credential report.
    • Using the AWS Config Rule: iam-user-unused-credentials-check will also identify unused credentials.
  • Prevention/Mitigation
    • Unnecessary creation of IAM User accounts should be avoided in the first place. In some cases, it may make sense to use roles (AssumeRole), which use temporary credentials and avoid creation of a separate IAM User account.


Many best practices have been codified but many AWS environments lag behind in implementing these best practices. Remediating the issues is straightforward for many of the security settings, and there exists specific prescriptive guidance on auditing and remediating your configurations in these areas, which can result in a large reduction in risk.

Here are some basic measures that can be done to address some of the common risk areas due to IAM configuration in your AWS environment:

  1. MFA should be enabled on regular IAM User accounts using account-level policies or Service Control Policies and enforced using resource or IAM policies or SCPs.
  1. Audit and disable unused IAM User accounts and access keys to reduce credential attack surface.
  1. Access keys should not be set up during user account provisioning. Instead utilize an explicit request on the need for access keys.
  1. IAM Users should only have at most one access key. Disable unnecessary access keys.
  1. Rotate access keys within 90 days.
  1. Disable any IAM User accounts that have been unused for over 90 days.

In upcoming blogs, we’ll continue to explore other best practices and how individual organizations can apply these best practices specifically to their environment.

Additionally, Netskope’s Public Cloud Security platform also can automate configuration checking of your AWS environment, implementing both compliance standards, as well as custom configuration checks.

Dataset and Methodology

Time Period: Data was sampled/analyzed from January 24, 2021. 

Source: The analysis presented in this blog post is based on anonymized usage data collected by the Netskope Security Cloud platform relating to a subset of Netskope customers with prior authorization.

Data Scope: The data included 1143 AWS accounts and several hundred organizations. 

The data was composed of configuration settings across tens of thousands of AWS entities including IAM Users, IAM policies, password policy, buckets, databases, CloudTrail logs, compute instances, and security groups.

Logic: The analysis followed the logic of core root account security checks found in best practices regarding AWS configuration settings with a few adjustments for the dataset and methodology. Some best practices might define “recent usage” for the root account as a last logged in time occurring within the past 24 hours to determine whether the root account has been used recently. Because this dataset comes from a point-in-time snapshot, this was changed to within the past 7 days prior to the audit date.

author image
Jenko Hwong
Jenko has 15+ years of experience in research, product management, and engineering in cloud security, AV/AS, routers/appliances, threat intel, Windows security, vulnerability scanning and compliance. At Netskope, he researches new cloud attacks.

Stay informed!

Subscribe for the latest from the Netskope Blog