docs.aws.amazon.com Open in urlscan Pro
18.66.147.76  Public Scan

Submitted URL: http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
Effective URL: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
Submission: On June 14 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

SELECT YOUR COOKIE PREFERENCES

We use essential cookies and similar tools that are necessary to provide our
site and services. We use performance cookies to collect anonymous statistics so
we can understand how customers use our site and make improvements. Essential
cookies cannot be deactivated, but you can click “Customize cookies” to decline
performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide
useful site features, remember your preferences, and display relevant content,
including relevant advertising. To continue without accepting these cookies,
click “Continue without accepting.” To make more detailed choices or learn more,
click “Customize cookies.”

Accept all cookiesContinue without acceptingCustomize cookies


CUSTOMIZE COOKIE PREFERENCES

We use cookies and similar tools (collectively, "cookies") for the following
purposes.


ESSENTIAL

Essential cookies are necessary to provide our site and services and cannot be
deactivated. They are usually set in response to your actions on the site, such
as setting your privacy preferences, signing in, or filling in forms.




PERFORMANCE

Performance cookies provide anonymous statistics about how customers navigate
our site so we can improve site experience and performance. Approved third
parties may perform analytics on our behalf, but they cannot use the data for
their own purposes.

Allow performance category
Allowed


FUNCTIONAL

Functional cookies help us provide useful site features, remember your
preferences, and display relevant content. Approved third parties may set these
cookies to provide certain site features. If you do not allow these cookies,
then some or all of these services may not function properly.

Allow functional category
Allowed


ADVERTISING

Advertising cookies may be set through our site by us or our advertising
partners and help us deliver relevant marketing content. If you do not allow
these cookies, you will experience less relevant advertising.

Allow advertising category
Allowed

Blocking some types of cookies may impact your experience of our sites. You may
review and change your choices at any time by clicking Cookie preferences in the
footer of this site. We and selected third-parties use cookies or similar
technologies as specified in the AWS Cookie Notice

.

CancelSave preferences




UNABLE TO SAVE COOKIE PREFERENCES

We will only store essential cookies at this time, because we were unable to
save your cookie preferences.

If you want to change your cookie preferences, try again later using the link in
the AWS console footer, or contact support if the problem persists.

Dismiss


Contact Us
English


Create an AWS Account
 1. AWS
 2. ...
    
    
 3. Documentation
 4. AWS Identity and Access Management
 5. User Guide

Feedback
Preferences


AWS IDENTITY AND ACCESS MANAGEMENT


USER GUIDE

 * What is IAM?
    * When do I use IAM
    * How IAM works
    * Users in AWS
    * Permissions and policies in IAM
    * What is ABAC?
    * Security features outside IAM
    * Quick links to common tasks
    * IAM console search
    * Working with AWS SDKs

 * Getting set up
    * Your AWS account ID and its alias
       * Find your AWS account ID
       * About account aliases
       * Creating, deleting, and listing an AWS account alias

 * Getting started
 * Tutorials
    * Grant access to the billing console
    * Delegate access across AWS accounts using roles
    * Create a customer managed policy
    * Use attribute-based access control (ABAC)
       * Use SAML session tags for ABAC
   
    * Permit users to manage their credentials and MFA settings

 * Identities
    * Users
       * Adding a user
       * Controlling user access to the console
       * How IAM users sign in to AWS
          * Using MFA devices with your IAM sign-in page
      
       * Managing users
       * Changing permissions for a user
       * Managing passwords
          * Changing the root user password
          * Setting a password policy
          * Managing user passwords
          * Permitting IAM users to change their own passwords
          * How an IAM user changes their own password
      
       * Access keys
       * Retrieving lost passwords or access keys
       * Multi-factor authentication (MFA)
          * Enabling MFA devices
             * Enabling a virtual MFA device (console)
             * Enabling a FIDO security key (console)
                * Supported configurations for using FIDO security keys
            
             * Enabling a hardware TOTP token (console)
             * Enabling and managing virtual MFA devices (AWS CLI or AWS API)
         
          * Checking MFA status
          * Resynchronizing virtual and hardware MFA devices
          * Deactivating MFA devices
          * What if an MFA device is lost or stops working?
          * Configuring MFA-protected API access
          * Sample code: MFA
      
       * Finding unused credentials
       * Getting credential reports
       * Using IAM with CodeCommit
       * Using IAM with Amazon Keyspaces
       * Managing server certificates
   
    * User groups
       * Creating user groups
       * Managing user groups
          * Listing IAM user groups
          * Adding and removing users in an IAM user group
          * Attaching a policy to an IAM user group
          * Renaming an IAM user group
          * Deleting a user group
   
    * Roles
       * Terms and concepts
       * Common scenarios
          * Providing access across AWS accounts
          * Providing access for non AWS workloads
          * Providing access to third-party AWS accounts
             * Using an external ID for third-party access
         
          * Providing access to AWS services
          * The confused deputy problem
          * Providing access through identity federation
      
       * Identity providers and federation
          * About web identity federation
             * Using Amazon Cognito for mobile apps
             * Using web identity federation API operations for mobile apps
             * Identifying users with web identity federation
             * Additional resources for web identity federation
         
          * About SAML 2.0 federation
          * Creating IAM identity providers
             * Creating OIDC identity providers
                * Obtaining the thumbprint for an OIDC Identity Provider
            
             * Creating IAM SAML identity providers
                * Configuring relying party trust and claims
                * Integrating third-party SAML solution providers with AWS
                * Configuring SAML assertions for the authentication response
         
          * Enable SAML 2.0 federated users to access the AWS console
          * Enabling custom identity broker access to the AWS console
      
       * Service-linked roles
       * Creating roles
          * Creating a role for an IAM user
          * Creating a role for an AWS service
          * Creating a role for identity federation
             * Creating a role for web Identity/OIDC federation
             * Creating a role for SAML 2.0 federation
         
          * Creating a role using custom trust policies
          * Examples of policies for delegating access
      
       * Using roles
          * Granting a user permissions to switch roles
          * Granting permissions to pass a role to a service
          * Switching roles (console)
          * Switching roles (AWS CLI)
          * Switching roles (Tools for Windows PowerShell)
          * Switching roles (AWS API)
          * Using roles for applications on Amazon EC2
             * Using instance profiles
         
          * Revoking role temporary credentials
      
       * Managing roles
          * Modifying a role
             * Modifying a role (console)
             * Modifying a role (AWS CLI)
             * Modifying a role (AWS API)
         
          * Deleting roles or instance profiles
      
       * Roles vs. resource-based policies
   
    * Tagging IAM resources
       * Tagging IAM users
       * Tagging IAM roles
       * Tagging customer managed policies
       * Tagging IAM identity providers
          * Tagging OpenID Connect (OIDC) identity providers
          * Tagging IAM SAML identity providers
      
       * Tagging instance profiles
       * Tagging server certificates
       * Tagging virtual MFA devices
       * Session tags
   
    * Temporary security credentials
       * Requesting temporary security credentials
       * Using temporary credentials with AWS resources
       * Controlling permissions for temporary security credentials
          * Permissions for AssumeRole API operations
          * Monitor and control actions taken with assumed roles
          * Permissions for GetFederationToken
          * Permissions for GetSessionToken
          * Disabling permissions
          * Granting permissions to create credentials
      
       * Managing AWS STS in an AWS Region
       * Using AWS STS interface VPC endpoints
       * Using bearer tokens
       * Sample applications that use temporary credentials
       * Additional resources for temporary credentials
   
    * AWS account root user
    * Log events with CloudTrail

 * Access management
    * Policies and permissions
       * Managed policies and inline policies
          * Choosing managed or inline
          * Getting started with managed policies
          * Converting inline policy to managed
          * Deprecated AWS managed policies
      
       * Permissions boundaries
       * Identity vs resource
       * Controlling access using policies
       * Control access to IAM users and roles using tags
       * Control access to AWS resources using tags
       * Example policies
          * AWS: Specific access during a date range
          * AWS: Enable or disable AWS Regions
          * AWS: Self-manage credentials with MFA (My security credentials)
          * AWS: Specific access with MFA during a date range
          * AWS: Self-manage credentials no MFA (My security credentials)
          * AWS: Self-manage MFA device (My security credentials)
          * AWS: Self-manage console password (My security credentials)
          * AWS: Self-manage password, access keys, & SSH public keys (My
            security credentials)
          * AWS: Deny access based on requested Region
          * AWS: Deny access based on source IP
          * AWS: Deny access to Amazon S3 resources outside your account except
            AWS Data Exchange
          * Data Pipeline: Deny access to pipelines not created by user
          * DynamoDB: Access specific table
          * DynamoDB: Allow access to specific attributes
          * DynamoDB: Allow item access based on a Amazon Cognito ID
          * EC2: Attach or detach volumes to an EC2 instance
          * EC2: Attach or detach tagged EBS volumes
          * EC2: Launch instances in a subnet (includes console)
          * EC2: Manage security groups with the same tags (includes console)
          * EC2: Start or stop instances a user has tagged (includes console)
          * EC2: Start or stop instances based on tags
          * EC2: Start or stop for matching tags
          * EC2: Full access within a Region (includes console)
          * EC2: Start or stop an instance, modify security group (includes
            console)
          * EC2: Requires MFA (GetSessionToken) for operations
          * EC2: Limit terminating instances to IP range
          * IAM: Access the policy simulator API
          * IAM: Access the policy simulator console
          * IAM: Assume tagged roles
          * IAM: Allows and denies multiple services (includes console)
          * IAM: Add specific tag to tagged user
          * IAM: Add a specific tag
          * IAM: Create only tagged users
          * IAM: Generate credential reports
          * IAM: Manage group membership (includes console)
          * IAM: Manage a tag
          * IAM: Pass a role to a service
          * IAM: Read-only console access (no reporting)
          * IAM: Read-only console access
          * IAM: Specific users manage group (includes console)
          * IAM: Setting account password requirements (includes console)
          * IAM: Access the policy simulator API based on user path
          * IAM: Access the policy simulator console based on user path
            (includes console)
          * IAM: MFA self-management
          * IAM: Rotate credentials (includes console)
          * IAM: View Organizations service last accessed information for a
            policy
          * IAM: Apply limited managed policies
          * AWS: Deny access to resources outside your account except AWS
            managed IAM policies
          * Lambda: Service access to DynamoDB
          * RDS: Full access within a Region
          * RDS: Restore databases (includes console)
          * RDS: Full access for tag owners
          * S3: Access bucket if cognito
          * S3: Access federated user home directory (includes console)
          * S3: Full access with recent MFA
          * S3: Access IAM user home directory (includes console)
          * S3: Restrict management to a specific bucket
          * S3: Read and write objects to a specific bucket
          * S3: Read and write to a specific bucket (includes console)
   
    * Managing IAM policies
       * Creating IAM policies
          * Creating IAM policies (console)
          * Creating IAM policies (CLI)
          * Creating IAM policies (API)
      
       * Validating policies
       * Generating policies
       * Testing IAM policies
       * Add or remove identity permissions
       * Versioning IAM policies
       * Editing IAM policies
       * Deleting IAM policies
       * Refining permissions using access information
          * View IAM access information
          * View access information for Organizations
          * Example scenarios
   
    * Understanding policies
       * Policy summary (list of services)
          * Access levels in policy summaries
      
       * Service summary (list of actions)
       * Action summary (list of resources)
       * Example policy summaries
   
    * Permissions required
       * Example policies for IAM

 * Code examples
    * IAM examples
       * Actions
          * Add a user to a group
          * Attach a policy to a role
          * Attach a policy to a user
          * Attach an inline policy to a role
          * Create a SAML provider
          * Create a group
          * Create a policy
          * Create a policy version
          * Create a role
          * Create a service-linked role
          * Create a user
          * Create an access key
          * Create an alias for an account
          * Create an inline policy for a group
          * Create an inline policy for a user
          * Delete SAML provider
          * Delete a group
          * Delete a group policy
          * Delete a policy
          * Delete a role
          * Delete a role policy
          * Delete a server certificate
          * Delete a service-linked role
          * Delete a user
          * Delete an access key
          * Delete an account alias
          * Delete an inline policy from a user
          * Detach a policy from a role
          * Detach a policy from a user
          * Generate a credential report
          * Get a credential report
          * Get a detailed authorization report for your account
          * Get a policy
          * Get a policy version
          * Get a role
          * Get a server certificate
          * Get a service-linked role's deletion status
          * Get a summary of account usage
          * Get a user
          * Get data about the last use of an access key
          * Get the account password policy
          * List SAML providers
          * List a user's access keys
          * List account aliases
          * List groups
          * List inline policies for a role
          * List inline policies for a user
          * List policies
          * List policies attached to a role
          * List roles
          * List server certificates
          * List users
          * Remove a user from a group
          * Update a server certificate
          * Update a user
          * Update an access key
          * Upload a server certificate
      
       * Scenarios
          * Create a group and add a user
          * Create a user and assume a role
          * Create read-only and read-write users
          * Manage access keys
          * Manage policies
          * Manage roles
          * Manage your account
          * Roll back a policy version
   
    * AWS STS examples
       * Actions
          * Assume a role
          * Get a session token
      
       * Scenarios
          * Assume an IAM role that requires an MFA token
          * Construct a URL for federated users
          * Get a session token that requires an MFA token

 * Security
    * AWS security credentials
    * AWS security audit guidelines
    * Data protection
    * Logging and monitoring
    * Compliance validation
    * Resilience
    * Infrastructure security
    * Configuration and vulnerability analysis
    * Security best practices and use cases
       * Security best practices
       * Business use cases
   
    * AWS managed policies

 * IAM Access Analyzer
    * Findings for public and cross-account access
       * How IAM Access Analyzer findings work
       * Getting started with IAM Access Analyzer findings
       * Working with findings
       * Reviewing findings
       * Filtering findings
       * Archiving findings
       * Resolving findings
       * Supported resource types
       * Settings
       * Archive rules
       * Monitoring with EventBridge
       * Security Hub integration
       * Logging with CloudTrail
       * IAM Access Analyzer filter keys
       * Using service-linked roles
   
    * Preview access
       * Previewing access in Amazon S3 console
       * Previewing access with IAM Access Analyzer APIs
   
    * IAM Access Analyzer policy validation
       * Policy check reference
   
    * IAM Access Analyzer policy generation
       * IAM Access Analyzer policy generation and action last accessed support
   
    * IAM Access Analyzer quotas

 * Troubleshooting IAM
    * General issues
    * Access denied error messages
    * IAM policies
    * FIDO security keys
    * IAM roles
    * IAM and Amazon EC2
    * IAM and Amazon S3
    * SAML 2.0 federation
       * Viewing a SAML response in your browser

 * Reference
    * Amazon Resource Names (ARNs)
    * IAM identifiers
    * IAM and AWS STS quotas
    * Services that work with IAM
    * Signing AWS API requests
       * Signature Version 4 request elements
       * Create a signed request
       * Troubleshoot
   
    * Policy reference
       * JSON element reference
          * Version
          * Id
          * Statement
          * Sid
          * Effect
          * Principal
          * NotPrincipal
          * Action
          * NotAction
          * Resource
          * NotResource
          * Condition
             * Condition operators
             * Conditions with multiple keys or values
             * Single-valued vs. multivalued condition keys
         
          * Variables and tags
          * Supported data types
      
       * Policy evaluation logic
          * Cross-account policy evaluation logic
      
       * Policy grammar
       * AWS managed policies for job functions
          * Creating roles and attaching policies (console)
      
       * Global condition keys
       * IAM condition keys
       * Actions, resources, and condition keys

 * Resources
 * Making HTTP query requests
 * Document history

Security best practices in IAM - AWS Identity and Access Management
AWSDocumentationAWS Identity and Access ManagementUser Guide
Require human users to use federation with an identity provider to access AWS
using temporary credentialsRequire workloads to use temporary credentials with
IAM roles to access AWSRequire multi-factor authentication (MFA)Rotate access
keys regularly for use cases that require long-term credentialsSafeguard your
root user credentials and don't use them for everyday tasksApply least-privilege
permissionsGet started with AWS managed policies and move toward least-privilege
permissionsUse IAM Access Analyzer to generate least-privilege policies based on
access activityRegularly review and remove unused users, roles, permissions,
policies, and credentialsUse conditions in IAM policies to further restrict
accessVerify public and cross-account access to resources with IAM Access
AnalyzerUse IAM Access Analyzer to validate your IAM policies to ensure secure
and functional permissionsEstablish permissions guardrails across multiple
accountsUse permissions boundaries to delegate permissions management within an
account


SECURITY BEST PRACTICES IN IAM

PDFRSS

The AWS Identity and Access Management best practices were updated on July 14,
2022.

To help secure your AWS resources, follow these best practices for AWS Identity
and Access Management (IAM).

TOPICS

 * Require human users to use federation with an identity provider to access AWS
   using temporary credentials
 * Require workloads to use temporary credentials with IAM roles to access AWS
 * Require multi-factor authentication (MFA)
 * Rotate access keys regularly for use cases that require long-term credentials
 * Safeguard your root user credentials and don't use them for everyday tasks
 * Apply least-privilege permissions
 * Get started with AWS managed policies and move toward least-privilege
   permissions
 * Use IAM Access Analyzer to generate least-privilege policies based on access
   activity
 * Regularly review and remove unused users, roles, permissions, policies, and
   credentials
 * Use conditions in IAM policies to further restrict access
 * Verify public and cross-account access to resources with IAM Access Analyzer
 * Use IAM Access Analyzer to validate your IAM policies to ensure secure and
   functional permissions
 * Establish permissions guardrails across multiple accounts
 * Use permissions boundaries to delegate permissions management within an
   account


REQUIRE HUMAN USERS TO USE FEDERATION WITH AN IDENTITY PROVIDER TO ACCESS AWS
USING TEMPORARY CREDENTIALS

Human users, also known as human identities, are the people, administrators,
developers, operators, and consumers of your applications. They must have an
identity to access your AWS environments and applications. Human users that are
members of your organization are also known as workforce identities. Human users
can also be external users with whom you collaborate, and who interact with your
AWS resources. They can do this via a web browser, client application, mobile
app, or interactive command-line tools.

Require your human users to use temporary credentials when accessing AWS. You
can use an identity provider for your human users to provide federated access to
AWS accounts by assuming roles, which provide temporary credentials. For
centralized access management, we recommend that you use AWS IAM Identity Center
(successor to AWS Single Sign-On) (IAM Identity Center) to manage access to your
accounts and permissions within those accounts. You can manage your user
identities with IAM Identity Center, or manage access permissions for user
identities in IAM Identity Center from an external identity provider. For more
information, see What is AWS IAM Identity Center (successor to AWS Single
Sign-On) in the AWS IAM Identity Center (successor to AWS Single Sign-On) User
Guide.

For more information about roles, see Roles terms and concepts.


REQUIRE WORKLOADS TO USE TEMPORARY CREDENTIALS WITH IAM ROLES TO ACCESS AWS

A workload is a collection of resources and code that delivers business value,
such as an application or backend process. Your workload can have applications,
operational tools, and components that require an identity to make requests to
AWS services, such as requests to read data. These identities include machines
running in your AWS environments, such as Amazon EC2 instances or AWS Lambda
functions.

You can also manage machine identities for external parties who need access. To
give access to machine identities, you can use IAM roles. IAM roles have
specific permissions and provide a way to access AWS by relying on temporary
security credentials with a role session. Additionally, you might have machines
outside of AWS that need access to your AWS environments. For machines that run
outside of AWS you can use AWS Identity and Access Management Roles Anywhere.
For more information about roles, see IAM roles. For details about how to use
roles to delegate access across AWS accounts, see IAM tutorial: Delegate access
across AWS accounts using IAM roles.


REQUIRE MULTI-FACTOR AUTHENTICATION (MFA)

We recommend using IAM roles for human users and workloads that access your AWS
resources so that they use temporary credentials. However, for scenarios in
which you need an IAM user or root user in your account, require MFA for
additional security. With MFA, users have a device that generates a response to
an authentication challenge. Each user's credentials and device-generated
response are required to complete the sign-in process. For more information, see
Using multi-factor authentication (MFA) in AWS.

If you use IAM Identity Center for centralized access management for human
users, you can use the IAM Identity Center MFA capabilities when your identity
source is configured with the IAM Identity Center identity store, AWS Managed
Microsoft AD, or AD Connector. For more information about MFA in IAM Identity
Center see Multi-factor authentication in the AWS IAM Identity Center (successor
to AWS Single Sign-On) User Guide.


ROTATE ACCESS KEYS REGULARLY FOR USE CASES THAT REQUIRE LONG-TERM CREDENTIALS

Where possible, we recommend relying on temporary credentials instead of
creating long-term credentials such as access keys. However, for scenarios in
which you need IAM users with programmatic access and long-term credentials, we
recommend that you rotate access keys. Regularly rotating long-term credentials
helps you familiarize yourself with the process. This is useful in case you are
ever in a situation where you must rotate credentials, such as when an employee
leaves your company. We recommend that you use IAM access last used information
to rotate and remove access keys safely. For more information, see Rotating
access keys.

There are specific use cases that require long-term credentials with IAM users
in AWS. Some of the use cases include the following:

 * Workloads that cannot use IAM roles – You might run a workload from a
   location that needs to access AWS. In some situations, you can't use IAM
   roles to provide temporary credentials, such as for WordPress plugins. In
   these situations, use IAM user long-term access keys for that workload to
   authenticate to AWS.

 * Third-party AWS clients – If you are using tools that don’t support access
   with IAM Identity Center, such as third-party AWS clients or vendors that are
   not hosted on AWS, use IAM user long-term access keys.

 * AWS CodeCommit access – If you are using CodeCommit to store your code, you
   can use an IAM user with either SSH keys or service-specific credentials for
   CodeCommit to authenticate to your repositories. We recommend that you do
   this in addition to using a user in IAM Identity Center for normal
   authentication. Users in IAM Identity Center are the people in your workforce
   who need access to your AWS accounts or to your cloud applications. To give
   users access to your CodeCommit repositories without configuring IAM users,
   you can configure the git-remote-codecommit utility. For more information
   about IAM and CodeCommit, see Using IAM with CodeCommit: Git credentials, SSH
   keys, and AWS access keys. For more information about configuring the
   git-remote-codecommit utility, see Connecting to AWS CodeCommit repositories
   with rotating credentials in the AWS CodeCommit User Guide.

 * Amazon Keyspaces (for Apache Cassandra) access – In a situation where you are
   unable to use users in IAM Identity Center, such as for testing purposes for
   Cassandra compatibility, you can use an IAM user with service-specific
   credentials to authenticate with Amazon Keyspaces. Users in IAM Identity
   Center are the people in your workforce who need access to your AWS accounts
   or to your cloud applications. You can also connect to Amazon Keyspaces using
   temporary credentials. For more information, see Using temporary credentials
   to connect to Amazon Keyspaces using an IAM role and the SigV4 plugin in the
   Amazon Keyspaces (for Apache Cassandra) Developer Guide.


SAFEGUARD YOUR ROOT USER CREDENTIALS AND DON'T USE THEM FOR EVERYDAY TASKS

When you create an AWS account you establish a root user name and password to
sign in to the AWS Management Console. Safeguard your root user credentials the
same way you would protect other sensitive personal information. You can do this
by configuring MFA for your root user credentials. We don't recommend generating
access keys for your root user, because they allow full access to all your
resources for all AWS services, including your billing information. Don’t use
your root user for everyday tasks. Use the root user to complete the tasks that
only the root user can perform. For the complete list of tasks that require you
to sign in as the root user, see Tasks that require root user credentials in the
AWS Account Management Reference Guide.

For additional best practices, see Best practices to protect your account's root
user in the AWS Account Management User Guide.


APPLY LEAST-PRIVILEGE PERMISSIONS

When you set permissions with IAM policies, grant only the permissions required
to perform a task. You do this by defining the actions that can be taken on
specific resources under specific conditions, also known as least-privilege
permissions. You might start with broad permissions while you explore the
permissions that are required for your workload or use case. As your use case
matures, you can work to reduce the permissions that you grant to work toward
least privilege. For more information about using IAM to apply permissions, see
Policies and permissions in IAM.


GET STARTED WITH AWS MANAGED POLICIES AND MOVE TOWARD LEAST-PRIVILEGE
PERMISSIONS

To get started granting permissions to your users and workloads, use the AWS
managed policies that grant permissions for many common use cases. They are
available in your AWS account. Keep in mind that AWS managed policies might not
grant least-privilege permissions for your specific use cases because they are
available for use by all AWS customers. As a result, we recommend that you
reduce permissions further by defining customer managed policies that are
specific to your use cases. For more information, see AWS managed policies. For
more information about AWS managed policies that are designed for specific job
functions, see AWS managed policies for job functions.


USE IAM ACCESS ANALYZER TO GENERATE LEAST-PRIVILEGE POLICIES BASED ON ACCESS
ACTIVITY

To grant only the permissions required to perform a task, you can generate
policies based on your access activity that is logged in AWS CloudTrail. IAM
Access Analyzer analyzes the services and actions that your IAM roles use, and
then generates a fine-grained policy that you can use. After you test each
generated policy, you can deploy the policy to your production environment. This
ensures that you grant only the required permissions to your workloads. For more
information about policy generation, see IAM Access Analyzer policy generation.


REGULARLY REVIEW AND REMOVE UNUSED USERS, ROLES, PERMISSIONS, POLICIES, AND
CREDENTIALS

You might have IAM users, roles, permissions, policies, or credentials that you
no longer need in your AWS account. IAM provides last accessed information to
help you identify the users, roles, permissions, policies, and credentials that
you no longer need so that you can remove them. This helps you reduce the number
of users, roles, permissions, policies, and credentials that you have to
monitor. You can also use this information to refine your IAM policies to better
adhere to least-privilege permissions. For more information, see Refining
permissions in AWS using last accessed information.


USE CONDITIONS IN IAM POLICIES TO FURTHER RESTRICT ACCESS

You can specify conditions under which a policy statement is in effect. That
way, you can grant access to actions and resources, but only if the access
request meets specific conditions. For example, you can write a policy condition
to specify that all requests must be sent using SSL. You can also use conditions
to grant access to service actions, but only if they are used through a specific
AWS service, such as AWS CloudFormation. For more information, see IAM JSON
policy elements: Condition.


VERIFY PUBLIC AND CROSS-ACCOUNT ACCESS TO RESOURCES WITH IAM ACCESS ANALYZER

Before you grant permissions for public or cross-account access in AWS, we
recommend that you verify if such access is required. You can use IAM Access
Analyzer to help you preview and analyze public and cross-account access for
supported resource types. You do this by reviewing the findings that IAM Access
Analyzer generates. These findings help you verify that your resource access
controls grant the access that you expect. Additionally, as you update public
and cross-account permissions, you can verify the effect of your changes before
deploying new access controls to your resources. IAM Access Analyzer also
monitors supported resource types continuously and generates a finding for
resources that allow public or cross-account access. For more information, see
Previewing access with IAM Access Analyzer APIs.


USE IAM ACCESS ANALYZER TO VALIDATE YOUR IAM POLICIES TO ENSURE SECURE AND
FUNCTIONAL PERMISSIONS

Validate the policies you create to ensure that they adhere to the IAM policy
language (JSON) and IAM best practices. You can validate your policies by using
IAM Access Analyzer policy validation. IAM Access Analyzer provides more than
100 policy checks and actionable recommendations to help you author secure and
functional policies. As you author new policies or edit existing policies in the
console, IAM Access Analyzer provides recommendations to help you refine and
validate your policies before you save them. Additionally, we recommend that you
review and validate all of your existing policies. For more information, see IAM
Access Analyzer policy validation. For more information about policy checks
provided by IAM Access Analyzer, see IAM Access Analyzer policy check reference.


ESTABLISH PERMISSIONS GUARDRAILS ACROSS MULTIPLE ACCOUNTS

As you scale your workloads, separate them by using multiple accounts that are
managed with AWS Organizations. We recommend that you use Organizations service
control policies (SCPs) to establish permissions guardrails to control access
for all IAM users and roles across your accounts. SCPs are a type of
organization policy that you can use to manage permissions in your organization
at the AWS organization, OU, or account level. The permissions guardrails that
you establish apply to all users and roles within the covered accounts. However,
SCPs alone are insufficient to grant permissions to the accounts in your
organization. To do this, your administrator must attach identity-based or
resource-based policies to IAM users, IAM roles, or the resources in your
accounts. For more information, see AWS Organizations, accounts, and IAM
guardrails.


USE PERMISSIONS BOUNDARIES TO DELEGATE PERMISSIONS MANAGEMENT WITHIN AN ACCOUNT

In some scenarios, you might want to delegate permissions management within an
account to others. For example, you could allow developers to create and manage
roles for their workloads. When you delegate permissions to others, use
permissions boundaries to set the maximum permissions that you delegate. A
permissions boundary is an advanced feature for using a managed policy to set
the maximum permissions that an identity-based policy can grant to an IAM role.
A permissions boundary does not grant permissions on its own. For more
information, see Permissions boundaries for IAM entities.

Javascript is disabled or is unavailable in your browser.

To use the Amazon Web Services Documentation, Javascript must be enabled. Please
refer to your browser's Help pages for instructions.

Document Conventions
Security best practices and use cases
Business use cases
Did this page help you? - Yes

Thanks for letting us know we're doing a good job!

If you've got a moment, please tell us what we did right so we can do more of
it.



Did this page help you? - No

Thanks for letting us know this page needs work. We're sorry we let you down.

If you've got a moment, please tell us how we can make the documentation better.




Did this page help you?
Yes
No
Provide feedback
Next topic:Business use cases
Previous topic:Security best practices and use cases
Need help?
 * Try AWS re:Post 
 * Connect with an AWS IQ expert 

PrivacySite termsCookie preferences
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.


ON THIS PAGE

--------------------------------------------------------------------------------

 * Require human users to use federation with an identity provider to access AWS
   using temporary credentials
 * Require workloads to use temporary credentials with IAM roles to access AWS
 * Require multi-factor authentication (MFA)
 * Rotate access keys regularly for use cases that require long-term credentials
 * Safeguard your root user credentials and don't use them for everyday tasks
 * Apply least-privilege permissions
 * Get started with AWS managed policies and move toward least-privilege
   permissions
 * Use IAM Access Analyzer to generate least-privilege policies based on access
   activity
 * Regularly review and remove unused users, roles, permissions, policies, and
   credentials
 * Use conditions in IAM policies to further restrict access
 * Verify public and cross-account access to resources with IAM Access Analyzer
 * Use IAM Access Analyzer to validate your IAM policies to ensure secure and
   functional permissions
 * Establish permissions guardrails across multiple accounts
 * Use permissions boundaries to delegate permissions management within an
   account





DID THIS PAGE HELP YOU? - NO



Thanks for letting us know this page needs work. We're sorry we let you down.

If you've got a moment, please tell us how we can make the documentation better.




Feedback