AWS Security Checks

cloud-audit runs 94 security checks across 23 AWS services. Each check includes copy-paste remediation in AWS CLI and Terraform. Browse by service below.

IAM (16 checks)

CRITICAL aws-iam-001

Root account MFA

Checks if the AWS root account has MFA enabled.

HIGH aws-iam-002

IAM users MFA

Checks if all IAM users with console access have MFA enabled..

MEDIUM aws-iam-003

Access key rotation

Checks if active access keys are older than 90 days..

MEDIUM aws-iam-004

Unused access keys

Checks for active access keys that haven't been used in 30+ days or have never been used..

CRITICAL aws-iam-005

Overly permissive IAM policies

Checks for customer-managed IAM policies with Action: * and Resource: *, granting full admin access to all AWS services..

MEDIUM aws-iam-006

Password policy strength

Checks if the account password policy meets CIS requirements (min 14 chars, uppercase, lowercase, numbers, symbols)..

CRITICAL aws-iam-007

OIDC trust policy without sub condition

Checks IAM roles with OIDC federation (GitHub Actions, GitLab CI, etc.) for missing 'sub' condition.

CRITICAL aws-iam-008

Root account access keys

Checks if the root account has active access keys.

MEDIUM aws-iam-009

Multiple active access keys

Checks if any IAM user has more than one active access key.

MEDIUM aws-iam-010

Direct user policies

Checks if IAM users have policies attached directly instead of through groups.

MEDIUM aws-iam-011

Support role exists

Checks if an IAM role, user, or group has the AWSSupportAccess managed policy attached.

MEDIUM aws-iam-012

IAM Access Analyzer enabled

Checks if IAM Access Analyzer is enabled in all active regions.

MEDIUM aws-iam-013

Expired SSL/TLS certificates

Checks for expired SSL/TLS certificates stored in IAM.

MEDIUM aws-iam-014

CloudShell full access restricted

Checks if AWSCloudShellFullAccess managed policy is attached to any IAM entity.

MEDIUM aws-iam-015

Root hardware MFA

Checks if the root account uses a hardware MFA device instead of virtual MFA.

MEDIUM aws-iam-016

EC2 instance IAM roles

Checks if running EC2 instances have IAM instance profiles attached.

S3 (7 checks)

EC2 (6 checks)

VPC (5 checks)

RDS (4 checks)

CloudTrail (7 checks)

CloudWatch (15 checks)

HIGH aws-cw-001

Root account usage alarm

Checks if a CloudWatch metric filter and alarm exist to detect root account usage..

MEDIUM aws-cw-002

Unauthorized API calls alarm

Checks if a CloudWatch metric filter and alarm exist to detect unauthorized API calls (AccessDenied, UnauthorizedAccess).

MEDIUM aws-cw-003

Console sign-in without MFA alarm

Checks if a CloudWatch metric filter and alarm exist to detect console sign-ins without MFA.

MEDIUM aws-cw-004

IAM policy changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect IAM policy changes (CreatePolicy, DeletePolicy, AttachRolePolicy, etc.).

MEDIUM aws-cw-005

CloudTrail config changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect CloudTrail configuration changes (CreateTrail, DeleteTrail, UpdateTrail, StopLogging).

MEDIUM aws-cw-006

Console auth failures alarm

Checks if a CloudWatch metric filter and alarm exist to detect console authentication failures.

MEDIUM aws-cw-007

CMK disable/deletion alarm

Checks if a CloudWatch metric filter and alarm exist to detect KMS Customer Master Key disabling or scheduled deletion.

MEDIUM aws-cw-008

S3 bucket policy changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect S3 bucket policy changes (PutBucketPolicy, PutBucketAcl, DeleteBucketPolicy).

MEDIUM aws-cw-009

Config changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect AWS Config configuration changes (StopConfigurationRecorder, DeleteDeliveryChannel).

MEDIUM aws-cw-010

Security group changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect security group changes (AuthorizeSecurityGroupIngress, CreateSecurityGroup, etc.).

MEDIUM aws-cw-011

NACL changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect Network ACL changes (CreateNetworkAcl, DeleteNetworkAcl, ReplaceNetworkAclEntry).

MEDIUM aws-cw-012

Network gateway changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect network gateway changes (CreateCustomerGateway, AttachInternetGateway, DeleteInternetGateway).

MEDIUM aws-cw-013

Route table changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect route table changes (CreateRoute, DeleteRoute, ReplaceRoute, CreateRouteTable).

MEDIUM aws-cw-014

VPC changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect VPC changes (CreateVpc, DeleteVpc, ModifyVpcAttribute, AcceptVpcPeeringConnection).

MEDIUM aws-cw-015

Organizations changes alarm

Checks if a CloudWatch metric filter and alarm exist to detect AWS Organizations changes (InviteAccountToOrganization, CreateOrganization, etc.).

Config (2 checks)

ECS (3 checks)

EFS (1 check)

EIP (1 check)

GuardDuty (2 checks)

KMS (2 checks)

Lambda (3 checks)

Secrets Manager (2 checks)

Security Hub (1 check)

SSM (2 checks)

Account (1 check)

Bedrock (2 checks)

SageMaker (3 checks)

These checks are part of cloud-audit - install with pip install cloud-audit