# Cis AWS Foundations 2.4

> Cis AWS Foundations 2.4 is an Agent Skill for devops & security published in the CyberStrikeus/CyberStrike repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Ensure no 'root' user account access key exists

- Skill name: `cis-aws-foundations-2.4`
- Category: [DevOps & Security](https://www.openparable.com/skill/devops-security/1)
- Source: https://github.com/CyberStrikeus/CyberStrike/blob/HEAD/.cyberstrike/skill/CIS_benchmarks/Cloud_Providers/AWS/CIS_Amazon_Web_Services_Foundations_Benchmark_v7.0.0/cis-aws-foundations-2.4/SKILL.md
- Repository: CyberStrikeus/CyberStrike (1,211 GitHub stars when collected)

## SKILL.md

# Ensure no 'root' user account access key exists

## Description

The 'root' user account is the most privileged user in an AWS account. AWS access keys provide programmatic access to a given AWS account. It is recommended that all access keys associated with the 'root' user account be deleted.

## Rationale

Deleting access keys associated with the 'root' user account limits the vectors by which the account can be compromised. Additionally, removing 'root' access keys encourages the use of role-based access with least privilege.

## Impact

Root access keys significantly increase the risk of account compromise, as they provide unrestricted programmatic access with no built-in scope limitations.

## Audit Procedure

### Using AWS Console

1. Login to the IAM Management Console (https://console.aws.amazon.com/iam).
2. Click on `Credential Report`.
3. Download the `.csv` file which contains credential usage for all IAM users within an AWS Account.
4. Open the file.
5. For the `root` user, ensure the `access_key_1_active` and `access_key_2_active` fields are set to `FALSE`.

### Using AWS CLI

1. Run the following command:

```bash
aws iam get-account-summary | grep "AccountAccessKeysPresent"
```

2. If no 'root' access keys exist the output will show `"AccountAccessKeysPresent": 0,`
3. If the output shows a "1", then 'root' keys exist and should be deleted.

## Expected Result

`"AccountAccessKeysPresent": 0` -- no root access keys exist.

## Remediation

### Using AWS Console

1. Sign in to the AWS Management Console as 'root' and open the IAM console at https://console.aws.amazon.com/iam/.
2. Click on `<root_account>` at the top right and select `Security Credentials` from the drop down list.
3. Click on `Access Keys` (Access Key ID and Secret Access Key).
4. If there are active keys:
   - Deactivate the key under `Status`.
   - Click `Delete` (Deleted keys cannot be recovered).

**Note:** While a key can be made inactive, it will still appear in CLI audit output and may result in a false positive. Keys should be deleted to ensure compliance.

### Using AWS CLI

There is no AWS CLI command to delete root access keys. This must be done via the AWS Console.

## Default Value

By default, the AWS root user has no access keys created. Access keys are only present if they have been explicitly generated by the account owner.

## References

1. http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html
2. http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html
3. http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountSummary.html
4. CCE-78910-7
5. https://aws.amazon.com/blogs/security/an-easier-way-to-determine-the-presence-of-aws-account-access-keys/

## Additional Information

- In AWS GovCloud environments, root access is linked to the associated standard AWS account and should be restricted and monitored in the same manner as commercial AWS accounts.
- Implement regular checks and alerts for any creation or use of root credentials, including access keys and console logins, to promptly detect and respond to unauthorized or accidental activity.
- CloudTrail must be enabled and configured to capture activity across all regions and accounts (using a multi-region or organization trail) to ensure all root account activity is logged and monitored.

## CIS Controls

| Controls Version | Control                                                                   | IG 1 | IG 2 | IG 3 |
| ---------------- | ------------------------------------------------------------------------- | ---- | ---- | ---- |
| v8               | 5.4 Restrict Administrator Privileges to Dedicated Administrator Accounts | x    | x    | x    |
| v8               | 6.8 Define and Maintain Role-Based Access Control                         |      |      | x    |
| v7               | 4.3 Ensure the Use of Dedicated Administrative Accounts                   | x    | x    | x    |

## MITRE ATT&CK Mappings

| Techniques / Sub-techniques | Tactics        | Mitigations |
| --------------------------- | -------------- | ----------- |
| T1078.004                   | TA0001, TA0004 | M1026       |

## Profile

Level 1 | Automated

---

Source: https://www.openparable.com/skill/devops-security/cis-aws-foundations-2-4 (OpenParable). Cite the canonical URL above.
