Skip to main content

Event Information

  • The CreateAccessKey event in AWS for IAM refers to the action of creating an access key for an IAM user.
  • An access key is a set of credentials (access key ID and secret access key) that allows programmatic access to AWS services and resources.
  • This event indicates that a new access key has been generated for an IAM user, which can be used to authenticate and authorize API requests to AWS services.

Examples

  • Unauthorized access: Creating an access key without proper authorization can lead to unauthorized individuals gaining access to sensitive resources and data within the AWS account.
  • Credential exposure: If the access key is not securely stored or transmitted, it can be intercepted or leaked, potentially exposing the AWS account to unauthorized access.
  • Lack of accountability: Without proper monitoring and auditing, it becomes difficult to track and attribute actions performed using the access key, making it challenging to identify and mitigate security incidents.

Remediation

Using Console

  1. Example 1: Enforce strong password policy for IAM users
    • Step 1: Login to the AWS Management Console.
    • Step 2: Go to the IAM service.
    • Step 3: Click on “Account settings” in the left navigation pane.
    • Step 4: Under the “Password policy” section, click on “Edit”.
    • Step 5: Configure the password policy settings according to your requirements, such as minimum password length, password complexity requirements, and password expiration.
    • Step 6: Click on “Apply password policy” to save the changes.
  2. Example 2: Enable multi-factor authentication (MFA) for IAM users
    • Step 1: Login to the AWS Management Console.
    • Step 2: Go to the IAM service.
    • Step 3: Click on “Users” in the left navigation pane.
    • Step 4: Select the IAM user for which you want to enable MFA.
    • Step 5: Click on the “Security credentials” tab.
    • Step 6: Under the “Multi-factor authentication (MFA)” section, click on “Manage MFA”.
    • Step 7: Follow the on-screen instructions to set up MFA for the user, either by using a virtual MFA device or a hardware MFA device.
  3. Example 3: Enable AWS CloudTrail for logging IAM events
    • Step 1: Login to the AWS Management Console.
    • Step 2: Go to the CloudTrail service.
    • Step 3: Click on “Trails” in the left navigation pane.
    • Step 4: Click on “Create trail”.
    • Step 5: Provide a name for the trail and choose the S3 bucket where the CloudTrail logs will be stored.
    • Step 6: Under the “Management events” section, enable logging for IAM events.
    • Step 7: Configure any additional settings as required, such as log file encryption and log file validation.
    • Step 8: Click on “Create” to create the trail and start logging IAM events.

Using CLI

  1. Ensure IAM users have strong passwords:
  • Use the update-login-profile command to enforce a strong password policy for IAM users:
  1. Enable multi-factor authentication (MFA) for IAM users:
  • Use the enable-mfa-device command to enable MFA for an IAM user:
  1. Rotate access keys regularly:
  • Use the create-access-key command to generate a new access key for an IAM user:
  • Use the delete-access-key command to delete the old access key:

Using Python

  1. Ensure IAM users have strong passwords:
    • Use the boto3 library in Python to retrieve a list of IAM users.
    • For each user, check if their password meets the desired complexity requirements (e.g., minimum length, use of uppercase, lowercase, numbers, and special characters).
    • If a user’s password does not meet the requirements, use the update_login_profile method to force a password reset for that user.
  1. Monitor and log IAM activity:
    • Use the boto3 library in Python to enable CloudTrail for the AWS account.
    • Configure CloudTrail to log IAM events by specifying the appropriate resource ARNs and event types.
    • Use the boto3 library to retrieve and analyze the CloudTrail logs for IAM-related events.
  1. Implement least privilege access:
    • Use the boto3 library in Python to retrieve a list of IAM roles and their associated policies.
    • For each role, analyze the policies to identify any overly permissive permissions.
    • Modify the policies to enforce least privilege access by removing unnecessary permissions.
Please note that the provided code snippets are just examples and may require customization based on your specific requirements and environment.