More Info:

Unused AWS EC2 key pairs should be decommissioned to follow best practices.

Risk Level

Medium

Address

Security

Compliance Standards

AWSWAF

Remediation

Using Console

Sure, here are the step-by-step instructions to remediate the issue of Unused AWS EC2 Key Pairs Should Be Removed in AWS using AWS console:

  1. Login to AWS console and navigate to the EC2 dashboard.

  2. Click on the “Key Pairs” option from the left-hand side menu.

  3. Review the list of key pairs that are available. Identify the key pairs that are not being used by any instances.

  4. Select the unused key pairs and click on “Actions” button.

  5. From the drop-down menu, select “Delete Key Pair”.

  6. A confirmation window will appear, click on “Delete” to confirm the deletion of the key pair.

  7. Repeat this process for all unused key pairs.

By following the above steps, you will be able to remediate the issue of Unused AWS EC2 Key Pairs Should Be Removed in AWS using AWS console.

Using CLI

Here are the step-by-step instructions to remediate the issue of unused AWS EC2 Key Pairs using AWS CLI:

  1. Open the AWS CLI on your local machine or EC2 instance.
  2. Use the following command to list all the available key pairs:
aws ec2 describe-key-pairs
  1. Identify the key pairs that are not in use and note down their key pair names.
  2. Use the following command to delete the unused key pairs:
aws ec2 delete-key-pair --key-name <key-pair-name>
  1. Replace <key-pair-name> with the actual name of the key pair you want to delete.
  2. Repeat step 4 for all the unused key pairs.
  3. Verify that the unused key pairs have been removed by running the command in step 2 again.

Note: Before deleting any key pair, make sure it is not being used by any running instances. If it is being used, first remove it from the instance and then delete it.

Using Python

Sure, here are the step-by-step instructions to remediate the misconfiguration of unused AWS EC2 key pairs using Python:

  1. Import the necessary libraries:
import boto3
  1. Create a boto3 EC2 client:
ec2 = boto3.client('ec2')
  1. Retrieve all the key pairs in the AWS account:
key_pairs = ec2.describe_key_pairs()
  1. Loop through the key pairs and check if they are associated with any running instances:
for key_pair in key_pairs['KeyPairs']:
    key_name = key_pair['KeyName']
    instances = ec2.describe_instances(Filters=[{'Name': 'key-name', 'Values': [key_name]}])
    if len(instances['Reservations']) == 0:
        print('Deleting key pair:', key_name)
        ec2.delete_key_pair(KeyName=key_name)
  1. The above code will delete all the unused key pairs in the AWS account.

Note: Please make sure to test the code in a non-production environment before running it in a production environment.

Additional Reading: