docs.aws.amazon.com
Open in
urlscan Pro
18.66.147.76
Public Scan
Submitted URL: https://docs.aws.amazon.com/console/securityhub/IAM.16/remediation
Effective URL: https://docs.aws.amazon.com/securityhub/latest/userguide/iam-controls.html
Submission: On September 21 via api from IN — Scanned from DE
Effective URL: https://docs.aws.amazon.com/securityhub/latest/userguide/iam-controls.html
Submission: On September 21 via api from IN — Scanned from DE
Form analysis
0 forms found in the DOMText 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 Security Hub 5. User Guide Feedback Preferences AWS SECURITY HUB USER GUIDE * What is AWS Security Hub? * Terminology and concepts * Prerequisites and recommendations * Using Organizations * Enabling AWS Config * Setting up Security Hub * Enabling Security Hub manually * Managing accounts * Effects of an administrator-member relationship * Restrictions and recommendations * Making the transition to Organizations * Allowed actions for accounts * Designating a Security Hub administrator account * Managing organization member accounts * Enabling new accounts automatically * Enabling member accounts * Disassociating member accounts * Managing member accounts by invitation * Adding and inviting member accounts * Responding to an invitation * Disassociating member accounts * Deleting member accounts * Disassociating from your administrator account * Effect of account actions on Security Hub data * Cross-Region aggregation * How cross-Region aggregation works * Viewing the current configuration * Enabling cross-Region aggregation * Updating the configuration * Stopping cross-Region aggregation * Findings * Creating and updating findings * Using BatchImportFindings * Using BatchUpdateFindings * Viewing a cross-Region finding summary * Viewing finding lists and details * Filtering and grouping findings (console) * Viewing finding details * Taking action on findings * Setting the workflow status of findings * Sending findings to a custom action * Finding format * ASFF syntax * Consolidation and ASFF * ASFF examples * Required attributes * Optional top-level attributes * Resources * Resource attributes * AwsAmazonMQ * AwsApiGateway * AwsAppSync * AwsAthena * AwsAutoScaling * AwsBackup * AwsCertificateManager * AwsCloudFormation * AwsCloudFront * AwsCloudTrail * AwsCloudWatch * AwsCodeBuild * AwsDynamoDB * AwsEc2 * AwsEcr * AwsEcs * AwsEfs * AwsEks * AwsElasticBeanstalk * AwsElasticSearch * AwsElb * AwsEventBridge * AwsGuardDuty * AwsIam * AwsKinesis * AwsKms * AwsLambda * AwsNetworkFirewall * AwsOpenSearchService * AwsRds * AwsRedshift * AwsS3 * AwsSageMaker * AwsSecretsManager * AwsSns * AwsSqs * AwsSsm * AwsStepFunctions * AwsWaf * AwsXray * Container * Other * Insights * Viewing and filtering the list of insights * Viewing insight results and findings * Managed insights * Custom insights * Automations * Automation rules * Automated response and remediation * Types of EventBridge integration * EventBridge event formats * Configuring a rule for automatically sent findings * Configuring and using custom actions * Product integrations * Managing product integrations * AWS service integrations * Third-party product integrations * Using custom product integrations * Standards and controls * IAM permissions for standards and controls * Security checks and scores * AWS Config rules and security checks * Required AWS Config resources for control findings * Schedule for running security checks * Generating and updating control findings * Determining the control status * Determining security scores * Standards reference * AWS FSBP * CIS AWS Foundations Benchmark v1.2.0 and v1.4.0 * NIST SP 800-53 Rev. 5 * PCI DSS * Service-managed standards * Service-Managed Standard: AWS Control Tower * Viewing and managing security standards * Enabling and disabling standards * Viewing details for a standard * Enabling and disabling controls in specific standards * Controls reference * AWS account controls * AWS Certificate Manager controls * API Gateway controls * AWS AppSync controls * Athena controls * CloudFormation controls * CloudFront controls * CloudTrail controls * CloudWatch controls * CodeBuild controls * AWS Config controls * AWS DMS controls * Amazon DocumentDB controls * DynamoDB controls * Amazon ECR controls * Amazon ECS controls * Amazon EC2 controls * Amazon EC2 Auto Scaling controls * Amazon EC2 Systems Manager controls * Amazon EFS controls * Amazon EKS controls * ElastiCache controls * Elastic Beanstalk controls * Elastic Load Balancing controls * Amazon EMR controls * Elasticsearch controls * GuardDuty controls * IAM controls * Kinesis controls * AWS KMS controls * Lambda controls * Neptune controls * Network Firewall controls * OpenSearch Service controls * Amazon RDS controls * Amazon Redshift controls * Amazon S3 controls * SageMaker controls * Secrets Manager controls * Amazon SNS controls * Amazon SQS controls * Step Functions controls * AWS WAF controls * Viewing and managing security controls * Control categories * Enabling and disabling controls in all standards * Enabling new controls in enabled standards automatically * Controls that you might want to disable * Viewing details for a control * Filtering and sorting controls * Viewing and taking action on control findings * Viewing finding and resource details * Sample control findings * Filtering and sorting findings * Taking action on control findings * Creating resources with CloudFormation * Subscribing to Security Hub announcements * Security * Data protection * AWS Identity and Access Management * How AWS Security Hub works with IAM * Using service-linked roles * AWS managed policies * Compliance validation * Infrastructure security * VPC endpoints (AWS PrivateLink) * Logging API calls * Quotas * Regional limits * Disabling Security Hub * Controls change log * Document history AWS Identity and Access Management controls - AWS Security Hub AWSDocumentationAWS Security HubUser Guide [IAM.1] IAM policies should not allow full "*" administrative privileges[IAM.2] IAM users should not have IAM policies attached[IAM.3] IAM users' access keys should be rotated every 90 days or less[IAM.4] IAM root user access key should not exist[IAM.5] MFA should be enabled for all IAM users that have a console password[IAM.6] Hardware MFA should be enabled for the root user[IAM.7] Password policies for IAM users should have strong AWS Configurations[IAM.8] Unused IAM user credentials should be removed[IAM.9] Virtual MFA should be enabled for the root user[IAM.10] Password policies for IAM users should have strong AWS Configurations[IAM.11] Ensure IAM password policy requires at least one uppercase letter[IAM.12] Ensure IAM password policy requires at least one lowercase letter[IAM.13] Ensure IAM password policy requires at least one symbol[IAM.14] Ensure IAM password policy requires at least one number[IAM.15] Ensure IAM password policy requires minimum password length of 14 or greater[IAM.16] Ensure IAM password policy prevents password reuse[IAM.17] Ensure IAM password policy expires passwords within 90 days or less[IAM.18] Ensure a support role has been created to manage incidents with AWS Support[IAM.19] MFA should be enabled for all IAM users[IAM.20] Avoid the use of the root user[IAM.21] IAM customer managed policies that you create should not allow wildcard actions for services[IAM.22] IAM user credentials unused for 45 days should be removed AWS IDENTITY AND ACCESS MANAGEMENT CONTROLS PDFRSS These controls are related to IAM resources. These controls may not be available in all AWS Regions. For more information, see Availability of controls by Region. [IAM.1] IAM POLICIES SHOULD NOT ALLOW FULL "*" ADMINISTRATIVE PRIVILEGES Related requirements: PCI DSS v3.2.1/7.2.1, CIS AWS Foundations Benchmark v1.2.0/1.22, CIS AWS Foundations Benchmark v1.4.0/1.16, NIST.800-53.r5 AC-2, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-5, NIST.800-53.r5 AC-6, NIST.800-53.r5 AC-6(10), NIST.800-53.r5 AC-6(2), NIST.800-53.r5 AC-6(3) Category: Protect > Secure access management Severity: High Resource type: AWS::IAM::Policy AWS Config rule: iam-policy-no-statements-with-admin-access Schedule type: Change triggered Parameters: * excludePermissionBoundaryPolicy: true This control checks whether the default version of IAM policies (also known as customer managed policies) has administrator access by including a statement with "Effect": "Allow" with "Action": "*" over "Resource": "*". The control fails if you have IAM policies with such a statement. The control only checks the customer managed policies that you create. It does not check inline and AWS managed policies. IAM policies define a set of privileges that are granted to users, groups, or roles. Following standard security advice, AWS recommends that you grant least privilege, which means to grant only the permissions that are required to perform a task. When you provide full administrative privileges instead of the minimum set of permissions that the user needs, you expose the resources to potentially unwanted actions. Instead of allowing full administrative privileges, determine what users need to do and then craft policies that let the users perform only those tasks. It is more secure to start with a minimum set of permissions and grant additional permissions as necessary. Do not start with permissions that are too lenient and then try to tighten them later. You should remove IAM policies that have a statement with "Effect": "Allow" with "Action": "*" over "Resource": "*". NOTE AWS Config should be enabled in all Regions in which you use Security Hub. However, global resource recording can be enabled in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION To modify your IAM policies so that they do not allow full "*" administrative privileges, see Editing IAM policies in the IAM User Guide. [IAM.2] IAM USERS SHOULD NOT HAVE IAM POLICIES ATTACHED Related requirements: PCI DSS v3.2.1/7.2.1, CIS AWS Foundations Benchmark v1.2.0/1.16, NIST.800-53.r5 AC-2, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-6, NIST.800-53.r5 AC-6(3) Category: Protect > Secure access management Severity: Low Resource type: AWS::IAM::User AWS Config rule: iam-user-no-policies-check Schedule type: Change triggered Parameters: None This control checks that none of your IAM users have policies attached. Instead, IAM users must inherit permissions from IAM groups or roles. By default, IAM users, groups, and roles have no access to AWS resources. IAM policies grant privileges to users, groups, or roles. We recommend that you apply IAM policies directly to groups and roles but not to users. Assigning privileges at the group or role level reduces the complexity of access management as the number of users grows. Reducing access management complexity might in turn reduce the opportunity for a principal to inadvertently receive or retain excessive privileges. NOTE IAM users created by Amazon Simple Email Service are automatically created using inline policies. Security Hub automatically exempts these users from this control. AWS Config should be enabled in all Regions in which you use Security Hub. However, global resource recording can be enabled in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION To resolve this issue, create an IAM group, and attach the policy to the group. Then, add the users to the group. The policy is applied to each user in the group. To remove a policy attached directly to a user, see Adding and removing IAM identity permissions in the IAM User Guide. [IAM.3] IAM USERS' ACCESS KEYS SHOULD BE ROTATED EVERY 90 DAYS OR LESS Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.4, CIS AWS Foundations Benchmark v1.4.0/1.14, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-2(3), NIST.800-53.r5 AC-3(15) Category: Protect > Secure access management Severity: Medium Resource type: AWS::IAM::User AWS Config rule: access-keys-rotated Schedule type: Periodic Parameters: * maxAccessKeyAge: 90 This control checks whether the active access keys are rotated within 90 days. We highly recommend that you do not generate and remove all access keys in your account. Instead, the recommended best practice is to either create one or more IAM roles or to use federation through AWS IAM Identity Center (successor to AWS Single Sign-On). You can use these methods to allow your users to access the AWS Management Console and AWS CLI. Each approach has its use cases. Federation is generally better for enterprises that have an existing central directory or plan to need more than the current limit on IAM users. Applications that run outside of an AWS environment need access keys for programmatic access to AWS resources. However, if the resources that need programmatic access run inside AWS, the best practice is to use IAM roles. Roles allow you to grant a resource access without hardcoding an access key ID and secret access key into the configuration. To learn more about protecting your access keys and account, see Best practices for managing AWS access keys in the AWS General Reference. Also see the blog post Guidelines for protecting your AWS account while using programmatic access. If you already have an access key, Security Hub recommends that you rotate the access keys every 90 days. Rotating access keys reduces the chance that an access key that is associated with a compromised or terminated account is used. It also ensures that data cannot be accessed with an old key that might have been lost, cracked, or stolen. Always update your applications after you rotate access keys. Access keys consist of an access key ID and a secret access key. They are used to sign programmatic requests that you make to AWS. Users need their own access keys to make programmatic calls to AWS from the AWS CLI, Tools for Windows PowerShell, the AWS SDKs, or direct HTTP calls using the API operations for individual AWS services. If your organization uses AWS IAM Identity Center (successor to AWS Single Sign-On) (IAM Identity Center), your users can sign in to Active Directory, a built-in IAM Identity Center directory, or another identity provider (IdP) connected to IAM Identity Center. They can then be mapped to an IAM role that enables them to run AWS CLI commands or call AWS API operations without the need for access keys. To learn more, see Configuring the AWS CLI to use AWS IAM Identity Center (successor to AWS Single Sign-On) in the AWS Command Line Interface User Guide. NOTE AWS Config should be enabled in all Regions in which you use Security Hub. However, global resource recording can be enabled in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION To rotate access keys that are older than 90 days, see Rotating access keys in the IAM User Guide. Follow the instructions for any user with an Access key age greater than 90 days. [IAM.4] IAM ROOT USER ACCESS KEY SHOULD NOT EXIST Related requirements: PCI DSS v3.2.1/2.1, PCI DSS v3.2.1/2.2, PCI DSS v3.2.1/7.2.1, CIS AWS Foundations Benchmark v1.2.0/1.12, CIS AWS Foundations Benchmark v1.4.0/1.4, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-6, NIST.800-53.r5 AC-6(10), NIST.800-53.r5 AC-6(2) Category: Protect > Secure access management Severity: Critical Resource type: AWS::::Account AWS Config rule: iam-root-access-key-check Schedule type: Periodic Parameters: None This control checks whether the root user access key is present. The root user is the most privileged user in an AWS account. AWS access keys provide programmatic access to a given account. Security Hub recommends that you remove all access keys that are associated with the root user. This limits that vectors that can be used to compromise your account. It also encourages the creation and use of role-based accounts that are least privileged. REMEDIATION To delete the root user access key, see Deleting access keys for the root user in the IAM User Guide. To delete the root user access keys from an AWS account in AWS GovCloud (US), see Deleting my AWS GovCloud (US) account root user access keys in the AWS GovCloud (US) User Guide. [IAM.5] MFA SHOULD BE ENABLED FOR ALL IAM USERS THAT HAVE A CONSOLE PASSWORD Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.2, CIS AWS Foundations Benchmark v1.4.0/1.10, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3(15), NIST.800-53.r5 IA-2(1), NIST.800-53.r5 IA-2(2), NIST.800-53.r5 IA-2(6), NIST.800-53.r5 IA-2(8) Category: Protect > Secure access management Severity: Medium Resource type: AWS::IAM::User AWS Config rule: mfa-enabled-for-iam-console-access Schedule type: Periodic Parameters: None This control checks whether AWS multi-factor authentication (MFA) is enabled for all IAM users that use a console password. Multi-factor authentication (MFA) adds an extra layer of protection on top of a user name and password. With MFA enabled, when a user signs in to an AWS website, they are prompted for their user name and password. In addition, they are prompted for an authentication code from their AWS MFA device. We recommend that you enable MFA for all accounts that have a console password. MFA is designed to provide increased security for console access. The authenticating principal must possess a device that emits a time-sensitive key and must have knowledge of a credential. NOTE AWS Config should be enabled in all Regions in which you use Security Hub. However, global resource recording can be enabled in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION To add MFA for IAM users, see Using multi-factor authentication (MFA) in AWS in the IAM User Guide. We are offering a free MFA security key to eligible customers. See if you qualify, and order your free key. [IAM.6] HARDWARE MFA SHOULD BE ENABLED FOR THE ROOT USER Related requirements: PCI DSS v3.2.1/8.3.1, CIS AWS Foundations Benchmark v1.2.0/1.14, CIS AWS Foundations Benchmark v1.4.0/1.6, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3(15), NIST.800-53.r5 IA-2(1), NIST.800-53.r5 IA-2(2), NIST.800-53.r5 IA-2(6), NIST.800-53.r5 IA-2(8) Category: Protect > Secure access management Severity: Critical Resource type: AWS::::Account AWS Config rule: root-account-hardware-mfa-enabled Schedule type: Periodic Parameters: None This control checks whether your AWS account is enabled to use a hardware multi-factor authentication (MFA) device to sign in with root user credentials. The control fails if MFA isn't enabled or if any virtual MFA devices are permitted for signing in with root user credentials. Virtual MFA might not provide the same level of security as hardware MFA devices. We recommend that you use only a virtual MFA device while you wait for hardware purchase approval or for your hardware to arrive. To learn more, see Enabling a virtual multi-factor authentication (MFA) device (console) in the IAM User Guide. Both time-based one-time password (TOTP) and Universal 2nd Factor (U2F) tokens are viable as hardware MFA options. REMEDIATION To add a hardware MFA device for the root user, see Enable a hardware MFA device for the AWS account root user (console) in the IAM User Guide. We are offering a free MFA security key to eligible customers. See if you qualify, and order your free key. [IAM.7] PASSWORD POLICIES FOR IAM USERS SHOULD HAVE STRONG AWS CONFIGURATIONS Related requirements: NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-2(3), NIST.800-53.r5 AC-3(15), NIST.800-53.r5 IA-5(1) Category: Protect > Secure access management Severity: Medium Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic Parameters: * RequireUppercaseCharacters: true * RequireLowercaseCharacters: true * RequireSymbols: true * RequireNumbers: true * MinimumPasswordLength: 8 This control checks whether the account password policy for IAM users uses the recommended configurations. To access the AWS Management Console, IAM users need passwords. As a best practice, Security Hub highly recommends that instead of creating IAM users, you use federation. Federation allows users to use their existing corporate credentials to log into the AWS Management Console. Use AWS IAM Identity Center (successor to AWS Single Sign-On) (IAM Identity Center) to create or federate the user, and then assume an IAM role into an account. To learn more about identity providers and federation, see Identity providers and federation in the IAM User Guide. To learn more about IAM Identity Center, see the AWS IAM Identity Center (successor to AWS Single Sign-On) User Guide. If you need to use IAM users, Security Hub recommends that you enforce the creation of strong user passwords. You can set a password policy on your AWS account to specify complexity requirements and mandatory rotation periods for passwords. When you create or change a password policy, most of the password policy settings are enforced the next time users change their passwords. Some of the settings are enforced immediately. REMEDIATION To update your password policy to use the recommended configuration, see Setting an account password policy for IAM users in the IAM User Guide. [IAM.8] UNUSED IAM USER CREDENTIALS SHOULD BE REMOVED Related requirements: PCI DSS v3.2.1/8.1.4, CIS AWS Foundations Benchmark v1.2.0/1.3, NIST.800-53.r5 AC-2, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-2(3), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-6 Category: Protect > Secure access management Severity: Medium Resource type: AWS::IAM::User AWS Config rule: iam-user-unused-credentials-check Schedule type: Periodic Parameters: * maxCredentialUsageAge: 90 This control checks whether your IAM users have passwords or active access keys that have not been used for 90 days. IAM users can access AWS resources using different types of credentials, such as passwords or access keys. Security Hub recommends that you remove or deactivate all credentials that were unused for 90 days or more. Disabling or removing unnecessary credentials reduces the window of opportunity for credentials associated with a compromised or abandoned account to be used. NOTE AWS Config should be enabled in all Regions in which you use Security Hub. However, global resource recording can be enabled in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION When you view user information in the IAM console, there are columns for Access key age, Password age, and Last activity. If the value in any of these columns is greater than 90 days, make the credentials for those users inactive. You can also use credential reports to monitor users and identify those with no activity for 90 or more days. You can download credential reports in .csv format from the IAM console. After you identify the inactive accounts or unused credentials, deactivate them. For instructions, see Creating, changing, or deleting an IAM user password (console) in the IAM User Guide. [IAM.9] VIRTUAL MFA SHOULD BE ENABLED FOR THE ROOT USER IMPORTANT Security Hub will change the title of this control in August 2023. For more information, see Change log for Security Hub controls. Related requirements: PCI DSS v3.2.1/8.3.1, CIS AWS Foundations Benchmark v1.2.0/1.13, CIS AWS Foundations Benchmark v1.4.0/1.5, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3(15), NIST.800-53.r5 IA-2(1), NIST.800-53.r5 IA-2(2), NIST.800-53.r5 IA-2(6), NIST.800-53.r5 IA-2(8) Category: Protect > Secure access management Severity: Critical Resource type: AWS::::Account AWS Config rule: root-account-mfa-enabled Schedule type: Periodic The root user has complete access to all the services and resources in an AWS account. MFA adds an extra layer of protection on top of a user name and password. With MFA enabled, when a user signs in to the AWS Management Console, they're prompted for their user name and password and for an authentication code from their AWS MFA device. When you use virtual MFA for the root user, CIS recommends that the device used is not a personal device. Instead, use a dedicated mobile device (tablet or phone) that you manage to keep charged and secured independent of any individual personal devices. This lessens the risks of losing access to the MFA due to device loss, device trade-in, or if the individual owning the device is no longer employed at the company. REMEDIATION To enable MFA for the root user, see Activate MFA on the AWS account root user in the AWS Account Management Reference Guide. [IAM.10] PASSWORD POLICIES FOR IAM USERS SHOULD HAVE STRONG AWS CONFIGURATIONS Related requirements: PCI DSS v3.2.1/8.1.4, PCI DSS v3.2.1/8.2.3, PCI DSS v3.2.1/8.2.4, PCI DSS v3.2.1/8.2.5 Category: Protect > Secure access management Severity: Medium Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic Parameters: None This control checks whether the account password policy for IAM users uses the following minimum PCI DSS configurations. * RequireUppercaseCharacters – Require at least one uppercase character in password. (Default = true) * RequireLowercaseCharacters – Require at least one lowercase character in password. (Default = true) * RequireNumbers – Require at least one number in password. (Default = true) * MinimumPasswordLength – Password minimum length. (Default = 7 or longer) * PasswordReusePrevention – Number of passwords before allowing reuse. (Default = 4) * MaxPasswordAge – Number of days before password expiration. (Default = 90) REMEDIATION To update your password policy to use the recommended configuration, see Setting an account password policy for IAM users in the IAM User Guide. [IAM.11] ENSURE IAM PASSWORD POLICY REQUIRES AT LEAST ONE UPPERCASE LETTER Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.5 Category: Protect > Secure access management Severity: Medium Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic Password policies, in part, enforce password complexity requirements. Use IAM password policies to ensure that passwords use different character sets. CIS recommends that the password policy require at least one uppercase letter. Setting a password complexity policy increases account resiliency against brute force login attempts. REMEDIATION To change your password policy, see Setting an account password policy for IAM users in the IAM User Guide. For Password strength, select Require at least one uppercase letter from the Latin alphabet (A–Z). [IAM.12] ENSURE IAM PASSWORD POLICY REQUIRES AT LEAST ONE LOWERCASE LETTER Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.6 Category: Protect > Secure access management Severity: Medium Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic Password policies, in part, enforce password complexity requirements. Use IAM password policies to ensure that passwords use different character sets. CIS recommends that the password policy require at least one lowercase letter. Setting a password complexity policy increases account resiliency against brute force login attempts. REMEDIATION To change your password policy, see Setting an account password policy for IAM users in the IAM User Guide. For Password strength, select Require at least one lowercase letter from the Latin alphabet (A–Z). [IAM.13] ENSURE IAM PASSWORD POLICY REQUIRES AT LEAST ONE SYMBOL Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.7 Category: Protect > Secure access management Severity: Medium Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic Password policies, in part, enforce password complexity requirements. Use IAM password policies to ensure that passwords use different character sets. CIS recommends that the password policy require at least one symbol. Setting a password complexity policy increases account resiliency against brute force login attempts. REMEDIATION To change your password policy, see Setting an account password policy for IAM users in the IAM User Guide. For Password strength, select Require at least one nonalphanumeric character. [IAM.14] ENSURE IAM PASSWORD POLICY REQUIRES AT LEAST ONE NUMBER Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.8 Category: Protect > Secure access management Severity: Medium Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic Password policies, in part, enforce password complexity requirements. Use IAM password policies to ensure that passwords use different character sets. CIS recommends that the password policy require at least one number. Setting a password complexity policy increases account resiliency against brute force login attempts. REMEDIATION To change your password policy, see Setting an account password policy for IAM users in the IAM User Guide. For Password strength, select Require at least one number. [IAM.15] ENSURE IAM PASSWORD POLICY REQUIRES MINIMUM PASSWORD LENGTH OF 14 OR GREATER Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.9, CIS AWS Foundations Benchmark v1.4.0/1.8 Category: Protect > Secure access management Severity: Medium Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic Password policies, in part, enforce password complexity requirements. Use IAM password policies to ensure that passwords are at least a given length. CIS recommends that the password policy require a minimum password length of 14 characters. Setting a password complexity policy increases account resiliency against brute force login attempts. REMEDIATION To change your password policy, see Setting an account password policy for IAM users in the IAM User Guide. For Password minimum length, enter 14 or a larger number. [IAM.16] ENSURE IAM PASSWORD POLICY PREVENTS PASSWORD REUSE Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.10, CIS AWS Foundations Benchmark v1.4.0/1.9 Category: Protect > Secure access management Severity: Low Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic This control checks whether the number of passwords to remember is set to 24. The control fails if the value is not 24. IAM password policies can prevent the reuse of a given password by the same user. CIS recommends that the password policy prevent the reuse of passwords. Preventing password reuse increases account resiliency against brute force login attempts. REMEDIATION To change your password policy, see Setting an account password policy for IAM users in the IAM User Guide. For Prevent password reuse, enter 24. [IAM.17] ENSURE IAM PASSWORD POLICY EXPIRES PASSWORDS WITHIN 90 DAYS OR LESS Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.11 Category: Protect > Secure access management Severity: Low Resource type: AWS::::Account AWS Config rule: iam-password-policy Schedule type: Periodic IAM password policies can require passwords to be rotated or expired after a given number of days. CIS recommends that the password policy expire passwords after 90 days or less. Reducing the password lifetime increases account resiliency against brute force login attempts. Requiring regular password changes also helps in the following scenarios: * Passwords can be stolen or compromised without your knowledge. This can happen via a system compromise, software vulnerability, or internal threat. * Certain corporate and government web filters or proxy servers can intercept and record traffic even if it's encrypted. * Many people use the same password for many systems such as work, email, and personal. * Compromised end-user workstations might have a keystroke logger. REMEDIATION To change your password policy, see Setting an account password policy for IAM users in the IAM User Guide. For Turn on password expiration, enter 90 or a smaller number. [IAM.18] ENSURE A SUPPORT ROLE HAS BEEN CREATED TO MANAGE INCIDENTS WITH AWS SUPPORT Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.20, CIS AWS Foundations Benchmark v1.4.0/1.17 Category: Protect > Secure access management Severity: Low Resource type: AWS::::Account AWS Config rule: iam-policy-in-use Schedule type: Periodic AWS provides a support center that can be used for incident notification and response, as well as technical support and customer services. Create an IAM role to allow authorized users to manage incidents with AWS Support. By implementing least privilege for access control, an IAM role will require an appropriate IAM policy to allow support center access in order to manage incidents with AWS Support. NOTE AWS Config should be enabled in all Regions in which you use Security Hub. However, global resource recording can be enabled in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION To remediate this issue, create a role to allow authorized users to manage AWS Support incidents. TO CREATE THE ROLE TO USE FOR AWS SUPPORT ACCESS 1. Open the IAM console at https://console.aws.amazon.com/iam/. 2. In the IAM navigation pane, choose Roles, then choose Create role. 3. For Role type, choose the Another AWS account. 4. For Account ID, enter the AWS account ID of the AWS account to which you want to grant access to your resources. If the users or groups that will assume this role are in the same account, then enter the local account number. NOTE The administrator of the specified account can grant permission to assume this role to any user in that account. To do this, the administrator attaches a policy to the user or a group that grants permission for the sts:AssumeRole action. In that policy, the resource must be the role ARN. 5. Choose Next: Permissions. 6. Search for the managed policy AWSSupportAccess. 7. Select the check box for the AWSSupportAccess managed policy. 8. Choose Next: Tags. 9. (Optional) To add metadata to the role, attach tags as key-value pairs. For more information about using tags in IAM, see Tagging IAM users and roles in the IAM User Guide. 10. Choose Next: Review. 11. For Role name, enter a name for your role. Role names must be unique within your AWS account. They are not case sensitive. 12. (Optional) For Role description, enter a description for the new role. 13. Review the role, then choose Create role. Show more [IAM.19] MFA SHOULD BE ENABLED FOR ALL IAM USERS Related requirements: PCI DSS v3.2.1/8.3.1, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3(15), NIST.800-53.r5 IA-2(1), NIST.800-53.r5 IA-2(2), NIST.800-53.r5 IA-2(6), NIST.800-53.r5 IA-2(8) Category: Protect > Secure access management Severity: Medium Resource type: AWS::IAM::User AWS Config rule: iam-user-mfa-enabled Schedule type: Periodic Parameters: None This control checks whether the IAM users have multi-factor authentication (MFA) enabled. NOTE AWS Config should be enabled in all Regions in which you use Security Hub. However, global resource recording can be enabled in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION To add MFA for IAM users, see Enabling MFA devices for users in AWS in the IAM User Guide. [IAM.20] AVOID THE USE OF THE ROOT USER Related requirements: CIS AWS Foundations Benchmark v1.2.0/1.1 Category: Protect > Secure access management Severity: Low Resource type: AWS::IAM::User AWS Config rule: use-of-root-account-test (custom Security Hub rule) Schedule type: Periodic The root user has unrestricted access to all services and resources in an AWS account. We highly recommend that you avoid using the root user for daily tasks. Minimizing the use of the root user and adopting the principle of least privilege for access management reduce the risk of accidental changes and unintended disclosure of highly privileged credentials. As a best practice, use your root user credentials only when required to perform account and service management tasks. Apply IAM policies directly to groups and roles but not users. For a tutorial on how to set up an administrator for daily use, see Creating your first IAM admin user and group in the IAM User Guide To run this check, Security Hub uses custom logic to perform the exact audit steps prescribed for control 3.3 in the CIS AWS Foundations Benchmark v1.2. This control fails if the exact metric filters prescribed by CIS are not used. Additional fields or terms cannot be added to the metric filters. NOTE When Security Hub performs the check for this control, it looks for CloudTrail trails that the current account uses. These trails might be organization trails that belong to another account. Multi-Region trails also might be based in a different Region. The check results in FAILED findings in the following cases: * No trail is configured. * The available trails that are in the current Region and that are owned by current account do not meet the control requirements. The check results in a control status of NO_DATA in the following cases: * A multi-Region trail is based in a different Region. Security Hub can only generate findings in the Region where the trail is based. * A multi-Region trail belongs to a different account. Security Hub can only generate findings for the account that owns the trail. We recommend organization trails to log events from many accounts in an organization. Organization trails are multi-Region trails by default and can only be managed by the AWS Organizations management account or the CloudTrail delegated administrator account. Using an organization trail results in a control status of NO_DATA for controls evaluated in organization member accounts. In member accounts, Security Hub only generates findings for member-owned resources. Findings that pertain to organization trails are generated in the resource owner's account. You can see these findings in your Security Hub delegated administrator account by using cross-Region aggregation. For the alarm, the current account must either own the referenced Amazon SNS topic, or must get access to the Amazon SNS topic by calling ListSubscriptionsByTopic. Otherwise Security Hub generates WARNING findings for the control. REMEDIATION The steps to remediate this issue include setting up an Amazon SNS topic, a CloudTrail trail, a metric filter, and an alarm for the metric filter. TO CREATE AN AMAZON SNS TOPIC 1. Open the Amazon SNS console at https://console.aws.amazon.com/sns/v3/home. 2. Create an Amazon SNS topic that receives all CIS alarms. Create at least one subscriber to the topic. For more information, see Getting started with Amazon SNS in the Amazon Simple Notification Service Developer Guide. Next, set up an active CloudTrail that applies to all Regions. To do so, follow the remediation steps in [CloudTrail.1] CloudTrail should be enabled and configured with at least one multi-Region trail that includes read and write management events. Make a note of the name of the CloudWatch Logs log group that you associate with the CloudTrail trail. You create the metric filter for that log group. Finally, create the metric filter and alarm. TO CREATE A METRIC FILTER AND ALARM 1. Open the CloudWatch console at https://console.aws.amazon.com/cloudwatch/. 2. In the navigation pane, choose Log groups. 3. Select the check box for the CloudWatch Logs log group that is associated with the CloudTrail trail that you created. 4. From Actions, choose Create Metric Filter. 5. Under Define pattern, do the following: 1. Copy the following pattern and then paste it into the Filter Pattern field. {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"} 2. Choose Next. 6. Under Assign Metric, do the following: 1. In Filter name, enter a name for your metric filter. 2. For Metric Namespace, enter LogMetrics. If you use the same namespace for all of your CIS log metric filters, then all CIS Benchmark metrics are grouped together. 3. For Metric Name, enter a name for the metric. Remember the name of the metric. You will need to select the metric when you create the alarm. 4. For Metric value, enter 1. 5. Choose Next. 7. Under Review and create, verify the information that you provided for the new metric filter. Then, choose Create metric filter. 8. In the navigation pane, choose Log groups, and then choose the filter you created under Metric filters. 9. Select the check box for the filter. Choose Create alarm. 10. Under Specify metric and conditions, do the following: 1. Under Conditions, for Threshold, choose Static. 2. For Define the alarm condition, choose Greater/Equal. 3. For Define the threshold value, enter 1. 4. Choose Next. 11. Under Configure actions, do the following: 1. Under Alarm state trigger, choose In alarm. 2. Under Select an SNS topic, choose Select an existing SNS topic. 3. For Send a notification to, enter the name of the SNS topic that you created in the previous procedure. 4. Choose Next. 12. Under Add name and description, enter a Name and Description for the alarm, such as CIS-1.1-RootAccountUsage. Then choose Next. 13. Under Preview and create, review the alarm configuration. Then choose Create alarm. Show more [IAM.21] IAM CUSTOMER MANAGED POLICIES THAT YOU CREATE SHOULD NOT ALLOW WILDCARD ACTIONS FOR SERVICES Related requirements: NIST.800-53.r5 AC-2, NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-5, NIST.800-53.r5 AC-6, NIST.800-53.r5 AC-6(10), NIST.800-53.r5 AC-6(2), NIST.800-53.r5 AC-6(3) Category: Detect > Secure access management Severity: Low Resource type: AWS::IAM::Policy AWS Config rule: iam-policy-no-statements-with-full-access Schedule type: Change triggered Parameters: * excludePermissionBoundaryPolicy: True This control checks whether the IAM identity-based policies that you create have Allow statements that use the * wildcard to grant permissions for all actions on any service. The control fails if any policy statement includes "Effect": "Allow" with "Action": "Service:*". For example, the following statement in a policy results in a failed finding. "Statement": [ { "Sid": "EC2-Wildcard", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" } The control also fails if you use "Effect": "Allow" with "NotAction": "service:*". In that case, the NotAction element provides access to all of the actions in an AWS service, except for the actions specified in NotAction. This control only applies to customer managed IAM policies. It does not apply to IAM policies that are managed by AWS. When you assign permissions to AWS services, it is important to scope the allowed IAM actions in your IAM policies. You should restrict IAM actions to only those actions that are needed. This helps you to provision least privilege permissions. Overly permissive policies might lead to privilege escalation if the policies are attached to an IAM principal that might not require the permission. In some cases, you might want to allow IAM actions that have a similar prefix, such as DescribeFlowLogs and DescribeAvailabilityZones. In these authorized cases, you can add a suffixed wildcard to the common prefix. For example, ec2:Describe*. This control passes if you use a prefixed IAM action with a suffixed wildcard. For example, the following statement in a policy results in a passed finding. "Statement": [ { "Sid": "EC2-Wildcard", "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" } When you group related IAM actions in this way, you can also avoid exceeding the IAM policy size limits. NOTE AWS Config should be enabled in all Regions in which you use Security Hub. However, global resource recording can be enabled in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION To remediate this issue, update your IAM policies so that they do not allow full "*" administrative privileges. For details about how to edit an IAM policy, see Editing IAM policies in the IAM User Guide. [IAM.22] IAM USER CREDENTIALS UNUSED FOR 45 DAYS SHOULD BE REMOVED Related requirements: CIS AWS Foundations Benchmark v1.4.0/1.12 Category: Protect > Secure access management Severity: Medium Resource type: AWS::IAM::User AWS Config rule: iam-user-unused-credentials-check Schedule type: Periodic This control checks whether your IAM users have passwords or active access keys that have not been used for 45 days or more. To do so, it checks whether the maxCredentialUsageAge parameter of the AWS Config rule is equal to 45 or more. Users can access AWS resources using different types of credentials, such as passwords or access keys. CIS recommends that you remove or deactivate all credentials that have been unused for 45 days or more. Disabling or removing unnecessary credentials reduces the window of opportunity for credentials associated with a compromised or abandoned account to be used. The AWS Config rule for this control uses the GetCredentialReport and GenerateCredentialReport API operations, which are only updated every four hours. Changes to IAM users can take up to four hours to be visible to this control. NOTE AWS Config should be enabled in all Regions in which you use Security Hub. However, you can enable recording of global resources in a single Region. If you only record global resources in a single Region, then you can disable this control in all Regions except the Region where you record global resources. REMEDIATION When you view user information in the IAM console, there are columns for Access key age, Password age, and Last activity. If the value in any of these columns is greater than 45 days, make the credentials for those users inactive. You can also use credential reports to monitor users and identify those with no activity for 45 or more days. You can download credential reports in .csv format from the IAM console. After you identify the inactive accounts or unused credentials, deactivate them. For instructions, see Creating, changing, or deleting an IAM user password (console) in the IAM User Guide. 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 GuardDuty controls Kinesis controls 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: Kinesis controls PREVIOUS TOPIC: GuardDuty controls NEED HELP? * Connect with an AWS IQ expert PrivacySite termsCookie preferences © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. ON THIS PAGE * [IAM.1] IAM policies should not allow full "*" administrative privileges * [IAM.2] IAM users should not have IAM policies attached * [IAM.3] IAM users' access keys should be rotated every 90 days or less * [IAM.4] IAM root user access key should not exist * [IAM.5] MFA should be enabled for all IAM users that have a console password * [IAM.6] Hardware MFA should be enabled for the root user * [IAM.7] Password policies for IAM users should have strong AWS Configurations * [IAM.8] Unused IAM user credentials should be removed * [IAM.9] Virtual MFA should be enabled for the root user * [IAM.10] Password policies for IAM users should have strong AWS Configurations * [IAM.11] Ensure IAM password policy requires at least one uppercase letter * [IAM.12] Ensure IAM password policy requires at least one lowercase letter * [IAM.13] Ensure IAM password policy requires at least one symbol * [IAM.14] Ensure IAM password policy requires at least one number * [IAM.15] Ensure IAM password policy requires minimum password length of 14 or greater * [IAM.16] Ensure IAM password policy prevents password reuse * [IAM.17] Ensure IAM password policy expires passwords within 90 days or less * [IAM.18] Ensure a support role has been created to manage incidents with AWS Support * [IAM.19] MFA should be enabled for all IAM users * [IAM.20] Avoid the use of the root user * [IAM.21] IAM customer managed policies that you create should not allow wildcard actions for services * [IAM.22] IAM user credentials unused for 45 days should be removed 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