Security Checks

AWS Security Checks

Each of the 426 checks, across 62 AWS services, is evaluated directly against your accounts. GuardKite reports which ones changed and which findings are reachable, and every check's page says how to fix what it finds.

ACM

Medium
Imported and ACM-issued certificates should be renewed after a specified time period

Checks that an ACM certificate, imported or issued by ACM, does not expire within 30 days, AWS's default period; an expired one fails too. ACM ne...

High
RSA certificates managed by ACM should use a key length of at least 2,048 bits

Verifies that RSA certificates managed by ACM use a key length of at least 2,048 bits, as shorter keys are considered cryptographically weak. Certific...

APIGateway

Medium
API Gateway REST and WebSocket API execution logging should be enabled

Checks that execution logging is on at the ERROR or INFO level for all methods of the REST or WebSocket API stage, recording how API Gateway handled e...

Medium
API Gateway REST API stages should be configured to use SSL certificates for backend authentication

Checks that the REST API stage has a client certificate, which API Gateway presents on calls to HTTP integrations so the backend can verify they come ...

Low
API Gateway REST API stages should have AWS X-Ray tracing enabled

Checks that AWS X-Ray active tracing is on for the REST API stage. Active tracing samples requests and follows them through the API and the services i...

Medium
API Gateway should be associated with a WAF Web ACL

Checks that the REST API stage is associated with an AWS WAF web ACL, whose rules allow, block or count requests to protect the API from attacks such ...

Medium
API Gateway REST API cache data should be encrypted at rest

Checks that every method in the REST API stage that caches responses has its cache data encrypted at rest; a stage where no method caches passes. Encr...

Medium
API Gateway routes should specify an authorization type

Checks that the HTTP or WebSocket API route has an authorization type, so only authorized users or processes can call it. Only the field's presen...

Medium
Access logging should be configured for API Gateway V2 Stages

Checks that the HTTP or WebSocket API stage has access logging set up with a destination log group. Access logs record who called the API and how, for...

Medium
API Gateway V2 integrations should use HTTPS for private connections

Checks that the API's private integration over a VPC link has a TLS configuration, so traffic to the private backend uses HTTPS. A VPC link is pr...

Medium
API Gateway domain names should use recommended security policies

Checks that the API Gateway custom domain name does not use the legacy TLS_1_0 security policy, which accepts TLS 1.0 with its known weaknesses. TLS_1...

Account

Medium
Security contact information should be provided for an AWS account

Checks that the AWS account has a security alternate contact with a name, email address and phone number, so AWS can reach someone besides the root us...

High
AWS account should be part of an AWS Organizations organization

Checks that the AWS account is a member of an AWS Organizations organization, so it can be managed with your other accounts as a single unit, with cen...

AppSync

Medium
AWS AppSync should have field-level logging enabled

Checks that an AWS AppSync GraphQL API sends field-level resolver logs to CloudWatch Logs at the Error or All level; None, Info and Debug fail. Field-...

High
AWS AppSync GraphQL APIs should not be authenticated with API keys

Flags AppSync GraphQL APIs whose default authorization mode is API key. A key is a hard-coded value that, if compromised, exposes the endpoint to unau...

Athena

Medium
Athena workgroups should have logging enabled

Checks that the Athena workgroup publishes query metrics to CloudWatch, which is what AWS's control counts as logging for a workgroup; one with t...

AutoScaling

Low
Auto scaling groups associated with a load balancer should use ELB health checks

Checks that an Auto Scaling group attached to a Classic Load Balancer or a target group uses ELB health checks, so instances the load balancer reports...

Medium
Amazon EC2 Auto Scaling group should cover multiple Availability Zones

Checks that the Auto Scaling group spans at least two Availability Zones, so it can launch instances in another zone when one becomes unavailable. A s...

High
Auto Scaling group launch configurations should configure EC2 instances to require Instance Metadata Service Version 2 (IMDSv2)

Checks that the launch configuration requires IMDSv2 (MetadataOptions HttpTokens set to required), whose session tokens protect instance metadata, inc...

High
Amazon EC2 instances launched using Auto Scaling group launch configurations should not have Public IP addresses

Checks that the launch configuration does not assign public IP addresses to its instances (AssociatePublicIpAddress true); they should be reached thro...

Medium
Auto Scaling groups should use multiple instance types in multiple Availability Zones

Checks that the Auto Scaling group defines more than one instance type in its mixed instances policy, so it can launch another type when one runs shor...

Medium
EC2 Auto Scaling groups should use EC2 launch templates

Checks that the Auto Scaling group launches from an EC2 launch template, directly or in a mixed instances policy, rather than a launch configuration. ...

Backup

Medium
AWS Backup recovery points should be encrypted at rest

Checks that the latest AWS Backup recovery point of the protected resource is encrypted at rest; older recovery points are not read. Backups of EBS, E...

Bedrock

Low
Amazon Bedrock data sources should be encrypted with customer managed AWS KMS keys

Checks that an Amazon Bedrock knowledge base data source names a customer managed KMS key for the transient data Bedrock stores while ingesting it. Wi...

BedrockAgentCore

High
Bedrock AgentCore runtimes should be configured with VPC network mode

Checks that an Amazon Bedrock AgentCore runtime uses VPC network mode, and fails one set to PUBLIC. A PUBLIC runtime talks to the internet directly; i...

High
Bedrock AgentCore Gateways should require authorization for inbound requests

Checks that an Amazon Bedrock AgentCore gateway authorizes inbound requests with AWS_IAM or CUSTOM_JWT. Without it, anyone who can reach the endpoint ...

Low
Bedrock AgentCore Memory should be encrypted with customer managed AWS KMS keys

Checks that an Amazon Bedrock AgentCore Memory is encrypted at rest with a customer managed KMS key. Without an encryptionKeyArn its data is still enc...

Low
Bedrock AgentCore Gateway should be encrypted with customer managed AWS KMS keys

Checks that an Amazon Bedrock AgentCore gateway is encrypted at rest with a customer managed KMS key. Without a kmsKeyArn it is still encrypted, under...

High
Bedrock AgentCore custom browsers should not use public network mode

Checks that an Amazon Bedrock AgentCore custom browser does not use PUBLIC network mode. A PUBLIC browser reaches the internet directly; in VPC mode i...

Medium
Bedrock AgentCore custom browsers should have session recording enabled

Checks that an Amazon Bedrock AgentCore custom browser records its sessions to an S3 location. A recording keeps each session's page changes, use...

High
Bedrock AgentCore custom code interpreters should use a private network configuration

Checks that an Amazon Bedrock AgentCore custom code interpreter uses VPC network mode; PUBLIC and SANDBOX both fail. In VPC mode the code runs behind ...

CloudFormation

Medium
CloudFormation stacks should have termination protection enabled

Checks that a CloudFormation stack has termination protection enabled, so a request to delete it fails and the stack and every resource it manages sta...

Medium
CloudFormation stacks should have associated service roles

Checks that a CloudFormation stack has a service role, so CloudFormation acts with that role's permissions instead of those of whoever runs the o...

CloudFront

High
CloudFront distributions should have a default root object configured

Checks that a CloudFront distribution with an S3 origin has a default root object, so a request for the root URL returns that object rather than passi...

Medium
CloudFront distributions should require encryption in transit

Checks that every cache behavior on the CloudFront distribution, the default one and each path pattern, requires HTTPS or redirects HTTP to HTTPS, so ...

Low
CloudFront distributions should have origin failover configured

Checks that the CloudFront distribution has an origin group of two origins, so CloudFront can send a request the primary origin fails to the secondary...

Medium
CloudFront distributions should have logging enabled

Checks that standard logging (legacy) is on for the CloudFront distribution, recording every request for security audits and investigations. As in AWS...

Medium
CloudFront distributions should have WAF enabled

Checks that the CloudFront distribution is associated with an AWS WAF or AWS WAF Classic web ACL, which filters malicious requests before they reach t...

Low
CloudFront distributions should use custom SSL/TLS certificates

Checks that the CloudFront distribution uses a custom SSL/TLS certificate rather than the default *.cloudfront.net one, so viewers reach it on your ow...

Low
CloudFront distributions should use SNI to serve HTTPS requests

Checks that the CloudFront distribution serves HTTPS with SNI rather than a dedicated IP address in every edge location, which carries a monthly charg...

Medium
CloudFront distributions should encrypt traffic to custom origins

Checks that CloudFront encrypts traffic to each custom origin, so it cannot be read or altered between the edge and the origin. It fails on an origin ...

Medium
CloudFront distributions should not use deprecated SSL protocols between edge locations and custom origins

Checks that no custom origin on the CloudFront distribution allows SSLv3, which the IETF deprecated in 2015 as insufficiently secure. Only SSLv3 fails...

High
CloudFront distributions should not point to non-existent S3 origins

Detects CloudFront S3 origins whose bucket no longer exists: anyone can create a bucket with that name and serve their own content through the distrib...

Medium
CloudFront distributions should use origin access control

Checks that every S3 origin of a CloudFront distribution uses origin access control (OAC), which lets the bucket refuse direct requests so its content...

Medium
CloudFront distributions should use the recommended TLS security policy

Checks that a CloudFront distribution with a custom SSL/TLS certificate uses a recommended security policy for viewer connections. The policy sets the...

Medium
CloudFront distributions should use origin access control for Lambda function URL origins

Checks that every Lambda function URL origin of a CloudFront distribution uses origin access control (OAC), so CloudFront signs its requests and the U...

Medium
CloudFront distributions should use trusted key groups for signed URLs and cookies

Checks that every cache behavior of a CloudFront distribution restricts viewer access with a trusted key group. A behavior on legacy trusted signers f...

CloudTrail

High
CloudTrail should be enabled and configured with at least one multi-Region trail that includes read and write management events

Ensures a multi-Region trail, which covers the whole account, records read and write management events. A finding on a trail means its event selectors...

Low
CloudTrail should have encryption at-rest enabled

Checks that the trail encrypts the log and digest files it delivers with an AWS KMS key (SSE-KMS) rather than S3's default SSE-S3, so reading the...

High
At least one CloudTrail trail should be enabled

Verifies that each Region has at least one CloudTrail trail, which delivers a lasting record of API calls to S3 beyond the 90 days of event history Cl...

Low
CloudTrail log file validation should be enabled

Checks that log file integrity validation is on for the trail, so CloudTrail delivers signed digest files holding a hash of each log file and you can ...

Medium
CloudTrail trails should be integrated with Amazon CloudWatch Logs

Checks that the trail sends its events to a CloudWatch Logs log group, where metric filters and alarms can flag account activity as it happens instead...

Critical
Ensure the S3 bucket used to store CloudTrail logs is not publicly accessible

Checks whether the S3 bucket a trail delivers its logs to allows public read through its ACL or bucket policy (Principal * or NotPrincipal, and wildca...

Low
Ensure S3 bucket access logging is enabled on the CloudTrail S3 bucket

Checks that server access logging is on for the S3 bucket the trail delivers its logs to, so every request made to that bucket, including reads and de...

CloudWatch

High
CloudWatch alarms should have specified actions configured

Verifies that CloudWatch metric alarms have at least one action for the ALARM state, so a breached threshold notifies someone or triggers a response. ...

Medium
CloudWatch log groups should be retained for a specified time period

Checks that the CloudWatch Logs log group keeps its log events for at least 365 days, the default of AWS's control, so the logs are still there f...

High
CloudWatch alarm actions should be enabled

Ensures CloudWatch metric alarms have actions enabled so they trigger the configured response when a state change occurs. With actions disabled, the a...

CodeBuild

Critical
CodeBuild Bitbucket source repository URLs should not contain sensitive credentials

Checks that a CodeBuild project's primary source URL has no user name or password before the host, as in https://user:token@host/repo. Anyone who...

Critical
CodeBuild project environment variables should not contain clear text credentials

Checks that no CodeBuild project environment variable named exactly AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, PASSWORD or TOKEN has the plain-text typ...

Low
CodeBuild S3 logs should be encrypted

Checks that a CodeBuild project writing build logs to S3 keeps them encrypted; a project with S3 log encryption disabled fails, and one without S3 log...

Medium
CodeBuild project environments should have a logging configuration

Checks that a CodeBuild project has at least one log destination enabled, S3 or CloudWatch Logs; a project with both disabled fails. Build logs are th...

Medium
CodeBuild report group exports should be encrypted at rest

Checks that the test results a CodeBuild report group exports to S3 are encrypted at rest; a group with artifact encryption disabled fails. A group th...

Cognito

Medium
Cognito user pools should have threat protection activated with full function enforcement mode for standard authentication

Checks that a Cognito user pool has threat protection, formerly advanced security features, active in Full function mode for standard authentication; ...

Medium
Cognito identity pools should not allow unauthenticated identities

Checks that a Cognito identity pool does not allow unauthenticated identities (guest access). With guest access, the pool gives temporary AWS credenti...

Medium
Password policies for Cognito user pools should have strong configurations

Checks that a Cognito user pool's password policy requires at least 8 characters, an uppercase letter, a lowercase letter, a number and a symbol,...

Medium
Cognito user pools should have threat protection activated with full function enforcement mode for custom authentication

Checks that a Cognito user pool has threat protection in Full function mode for both standard and custom authentication (sign-in through custom challe...

Medium
MFA should be enabled for Cognito user pools

Checks that a Cognito user pool with a password-only sign-in policy has MFA required or optional; off fails. MFA adds a second factor, something the u...

Medium
Cognito user pools should have deletion protection enabled

Checks that a Cognito user pool has deletion protection active. Without it, a single DeleteUserPool call removes the pool and every user account in it...

Connect

Medium
Amazon Connect instances should have CloudWatch logging enabled

Checks that an Amazon Connect instance has flow logs turned on, which sends events from its flows to a CloudWatch log group for finding errors, monito...

DMS

Critical
Database Migration Service replication instances should not be public

Flags DMS replication instances that are publicly accessible. A private replication instance has only a private IP address, so it cannot be reached fr...

Medium
DMS replication instances should have automatic minor version upgrade enabled

Checks that automatic version upgrade is on for the DMS replication instance. With it on, DMS moves the instance off a deprecated engine version durin...

Medium
DMS replication tasks for the target database should have logging enabled

Checks that the replication task logs its TARGET_APPLY and TARGET_LOAD components to CloudWatch at LOGGER_SEVERITY_DEFAULT or higher, so the statement...

Medium
DMS replication tasks for the source database should have logging enabled

Checks that the replication task logs its SOURCE_CAPTURE and SOURCE_UNLOAD components to CloudWatch at LOGGER_SEVERITY_DEFAULT or higher, so the chang...

Medium
DMS endpoints should use SSL

Checks that the DMS endpoint's SSL mode is require, verify-ca or verify-full, so the connection between the replication instance and the database...

Medium
DMS endpoints for Neptune databases should have IAM authorization enabled

Checks that a DMS endpoint for an Amazon Neptune target has IAM authorization enabled, so DMS reaches the Neptune cluster through the endpoint's ...

Medium
DMS endpoints for MongoDB should have an authentication mechanism enabled

Checks that a DMS endpoint for a MongoDB source uses password authentication rather than none, so only a MongoDB user with valid credentials can read ...

Medium
DMS endpoints for Redis OSS should have TLS enabled

Checks that a DMS endpoint for a Redis OSS target connects with TLS (SSL encryption rather than plain text), so the data DMS writes to the Redis OSS c...

Medium
DMS replication instances should be configured to use multiple Availability Zones

Checks that the DMS replication instance is a Multi-AZ deployment. DMS then keeps a synchronously replicated standby in another Availability Zone, and...

DataSync

Medium
DataSync tasks should have logging enabled

Checks that the DataSync task publishes logs to CloudWatch Logs, recording transfer errors or every file moved and verified, for investigations and au...

DocumentDB

Medium
Amazon DocumentDB clusters should be encrypted at rest

Checks that a DocumentDB cluster is encrypted at rest with an AWS KMS key. Cluster encryption also covers its instances, automated backups, snapshots ...

Medium
Amazon DocumentDB clusters should have an adequate backup retention period

Checks that a DocumentDB cluster keeps automated backups for at least 7 days; new clusters default to 1. The retention period bounds how far back a po...

Critical
Amazon DocumentDB manual cluster snapshots should not be public

Checks whether a DocumentDB manual cluster snapshot is public, which lets any AWS account copy or restore its data. A copy made while it was public is...

Medium
Amazon DocumentDB clusters should publish audit logs to CloudWatch Logs

Checks that a DocumentDB cluster exports audit logs to CloudWatch Logs, so authentication attempts, dropped collections, new indexes and user changes ...

Medium
Amazon DocumentDB clusters should have deletion protection enabled

Checks that a DocumentDB cluster has deletion protection enabled, so a request to delete the cluster fails until someone first turns the setting off. ...

Medium
Amazon DocumentDB clusters should be encrypted in transit

Checks that a DocumentDB cluster requires TLS 1.2 or later: the tls parameter in its cluster parameter group must be tls1.2+, tls1.3+ or fips-140-3, s...

DynamoDB

Medium
DynamoDB tables should automatically scale capacity with demand

Checks that the DynamoDB table uses on-demand capacity mode, or provisioned mode with auto scaling configured. A table whose capacity follows demand a...

Medium
DynamoDB tables should have point-in-time recovery enabled

Checks that point-in-time recovery (PITR) is turned on for the DynamoDB table. PITR backs the table up continuously, so after an accidental write or d...

Medium
DynamoDB Accelerator (DAX) clusters should be encrypted at rest

Checks that the DAX cluster is encrypted at rest. DAX writes cached data to disk as it propagates changes from the primary node to read replicas, and ...

Medium
DynamoDB tables should be present in a backup plan

Confirms that each DynamoDB table is selected by an AWS Backup plan in the same Region (no backup has to have run yet) or already has a recovery point...

Medium
DynamoDB tables should have deletion protection enabled

Checks that deletion protection is turned on for the DynamoDB table. While it is on, no one can delete the table, whatever their IAM permissions, whic...

Medium
DynamoDB Accelerator clusters should be encrypted in transit

Checks that the DAX cluster's endpoint encryption type is TLS, so requests and responses between your application and the cluster are encrypted a...

EC2

Critical
EBS snapshots should not be configured to be publicly restorable

Checks whether an EBS snapshot's createVolumePermission grants the all group, which lets any AWS account create a volume holding all of the snaps...

High
VPC default security groups should not allow inbound or outbound traffic

Confirms that each VPC's default security group has no inbound or outbound rules. AWS attaches this group to resources launched without one and i...

Medium
Attached EBS volumes should be encrypted at-rest

Confirms that EBS volumes attached to an instance are encrypted at rest, which also protects their snapshots and the data moving between volume and in...

Medium
Stopped EC2 instances should be removed after a specified time period

Flags EC2 instances stopped for more than 30 days. A stopped instance gets no patches, so it rejoins the network carrying every vulnerability fixed wh...

Medium
VPC flow logging should be enabled in all VPCs

Verifies that each VPC has a flow log, which records the traffic crossing it for detecting anomalies and investigating incidents. Only a flow log on t...

Medium
EBS default encryption should be enabled

Verifies that EBS encryption by default is on for the account in this Region, so every new EBS volume and snapshot copy is encrypted at rest with no c...

High
EC2 instances should use Instance Metadata Service Version 2 (IMDSv2)

Verifies that EC2 instances require IMDSv2 (HttpTokens set to required). Its session tokens protect instance metadata, including the role credentials ...

High
EC2 instances should not have a public IPv4 address

Flags EC2 instances that have a public IPv4 address, whether auto-assigned or an Elastic IP. With a route to an internet gateway, that address makes t...

Medium
Amazon EC2 should be configured to use VPC endpoints that are created for the Amazon EC2 service

Confirms that each VPC with EC2 instances has an interface endpoint for the EC2 service, so the instances' EC2 API calls stay on the AWS network....

Low
Unused EC2 EIPs should be removed

Flags an Elastic IP address attached neither to an EC2 instance nor to a network interface in use. AWS bills every Elastic IP address held, in use or ...

High
Security groups should not allow ingress from 0.0.0.0/0 or ::/0 to port 22

Flags security groups that allow TCP ingress from 0.0.0.0/0 or ::/0 to port 22 (SSH), letting anyone on the internet try to log in to what the group p...

High
Security groups should not allow ingress from 0.0.0.0/0 or ::/0 to port 3389

Flags security groups that allow TCP ingress from 0.0.0.0/0 or ::/0 to port 3389 (RDP), letting anyone on the internet try to log in to what the group...

Medium
EC2 subnets should not automatically assign public IP addresses

Flags EC2 subnets configured to automatically assign public IPv4 addresses or IPv6 addresses to instances at launch, which gives new instances there a...

Low
Unused Network Access Control Lists should be removed

Flags a custom network ACL that is associated with no subnet. Unassociated, its rules filter nothing, which matters most where someone wrote deny rule...

Low
EC2 instances should not use multiple ENIs

Flags an EC2 instance with more than one network interface attached, EFAs included. A second interface usually puts the instance in two subnets, a pat...

High
Security groups should only allow unrestricted incoming traffic for authorized ports

Verifies that security groups allow ingress from 0.0.0.0/0 or ::/0, or from a managed prefix list holding either, only on TCP 80 and TCP 443 as single...

Critical
Security groups should not allow unrestricted access to ports with high risk

Flags security groups that allow TCP ingress from 0.0.0.0/0 or ::/0 to a high-risk port (20, 21, 22, 23, 25, 110, 135, 143, 445, 1433, 1434, 3000, 330...

Medium
Both VPN tunnels for an AWS Site-to-Site VPN connection should be up

Checks that both tunnels of the Site-to-Site VPN connection are UP; each ends in a different Availability Zone, so two keep the connection available w...

Medium
Network ACLs should not allow ingress from 0.0.0.0/0 to port 22 or port 3389

Flags network ACLs with an inbound rule allowing 0.0.0.0/0 or ::/0 to SSH (port 22) or RDP (port 3389), opening remote administration to the internet....

Medium
Unused EC2 security groups should be removed

Flags security groups attached to no network interface, counting those of EC2 instances and the ones load balancers, RDS, Lambda and VPC endpoints cre...

High
EC2 Transit Gateways should not automatically accept VPC attachment requests

Checks that the transit gateway does not accept shared VPC attachment requests automatically (AutoAcceptSharedAttachments set to enable). With it on, ...

Medium
EC2 paravirtual instance types should not be used

Checks that the EC2 instance does not use paravirtual (PV) virtualization, a legacy type that cannot use enhanced networking and that current generati...

High
EC2 launch templates should not assign public IPs to network interfaces

Checks that the launch template's default version does not assign a public IP address to any network interface, which would make the instances it...

Low
EBS volumes should be in a backup plan

Confirms that each in-use EBS volume is selected by an AWS Backup plan in the same Region (no backup has to have run yet) or already has a recovery po...

Low
EC2 Client VPN endpoints should have client connection logging enabled

Checks that the Client VPN endpoint logs client connections to CloudWatch Logs: each connection attempt, its result and the disconnect time, so you ca...

High
EC2 security groups should not allow ingress from 0.0.0.0/0 to remote server administration ports

Flags security groups that allow ingress from 0.0.0.0/0 to the remote administration ports 22 (SSH) or 3389 (RDP), letting anyone on the internet try ...

High
EC2 security groups should not allow ingress from ::/0 to remote server administration ports

Flags security groups that allow ingress from ::/0 to the remote administration ports 22 (SSH) or 3389 (RDP), letting anyone on the internet with IPv6...

Medium
VPCs should be configured with an interface endpoint for ECR API

Checks that each VPC with EC2 instances has an interface endpoint for the Amazon ECR API (com.amazonaws.<region>.ecr.api, or its FIPS name), so ...

Medium
VPCs should be configured with an interface endpoint for Docker Registry

Checks that each VPC with EC2 instances has an interface endpoint for the Amazon ECR Docker registry (com.amazonaws.<region>.ecr.dkr, or its FIP...

Medium
VPCs should be configured with an interface endpoint for Systems Manager

Checks that each VPC with EC2 instances has an interface endpoint for AWS Systems Manager (com.amazonaws.<region>.ssm, or its FIPS name), so the...

Low
EC2 launch templates should use Instance Metadata Service Version 2 (IMDSv2)

Checks that the launch template's default version requires IMDSv2 (HttpTokens set to required), whose session tokens keep instance metadata, incl...

Medium
EC2 VPN connections should have logging enabled

Checks that the Site-to-Site VPN connection sends tunnel activity logs to CloudWatch Logs from both tunnels; a connection logging only one fails. The ...

Medium
EC2 VPC Block Public Access settings should block internet gateway traffic

Verifies that VPC Block Public Access is on in this Region in Bidirectional or Ingress-only mode. It is one switch per account and Region that blocks ...

Medium
EC2 Spot Fleet requests with launch parameters should enable encryption for attached EBS volumes

Checks that a Spot Fleet request whose launch parameters set EBS encryption sets it on for every volume, so the instances it launches keep their data ...

Medium
EC2 network interfaces should have source/destination checking enabled

Verifies that source/destination checking is enabled on user-managed EC2 network interfaces, so each handles only traffic it sends or receives itself....

Medium
EC2 launch templates should enable encryption for attached EBS volumes

Checks that the launch template's default version does not set encryption off for any EBS volume, so instances launched from it get encrypted vol...

High
Block public access settings should be enabled for Amazon EBS snapshots

Flags Regions where block public access for EBS snapshots is off. Without it, any snapshot can be shared publicly, by intent or by mistake, and its da...

Medium
EC2 VPN connections should use IKEv2 protocol

Checks that every tunnel of the Site-to-Site VPN connection permits IKEv2 only. IKEv1 has known weaknesses in its key exchange, and a tunnel that also...

ECR

High
ECR private repositories should have image scanning configured

Verifies that private ECR repositories are covered by a scan on push or continuous scanning rule (manual scanning does not count), so images are check...

Medium
ECR private repositories should have tag immutability configured

Checks that the private ECR repository's tags are immutable, so a tag always names the same image and a push cannot replace an image already depl...

Medium
ECR repositories should have at least one lifecycle policy configured

Checks that the ECR repository has a lifecycle policy, so unused images are expired or archived by age or count instead of accumulating, which also ma...

Low
ECR repositories should be encrypted with customer managed AWS KMS keys

Checks that the ECR repository is encrypted at rest with a customer managed KMS key. The default, AES256, is already encrypted but uses no KMS key, an...

ECS

High
ECS services should not have public IP addresses assigned to them automatically

Checks that the ECS service does not assign public IP addresses to its tasks automatically (assignPublicIp ENABLED). A task with a public IP address i...

High
ECS task definitions should not share the host's process namespace

Checks that the task definition family's latest active revision does not set pidMode to host; older revisions a service may still run are not rea...

High
ECS containers should run as non-privileged

Checks that no container in the task definition family's latest active revision sets privileged to true; older revisions a service may still run ...

High
ECS task definitions should configure containers to be limited to read-only access to root filesystems

Checks that every container in the task definition family's latest active revision sets readonlyRootFilesystem to true; older revisions are not r...

High
Secrets should not be passed as container environment variables

Checks that no container in the task definition family's latest active revision has an environment variable named exactly AWS_ACCESS_KEY_ID, AWS_...

High
ECS task definitions should have a logging configuration

Checks that every container in the task definition family's latest active revision has a logConfiguration with a logDriver set; any driver passes...

Medium
ECS Fargate services should run on the latest Fargate platform version

Checks that each ECS service on Fargate, by launch type or a FARGATE or FARGATE_SPOT capacity provider, sets its platform version to LATEST, or to 1.4...

Medium
ECS clusters should use Container Insights

Checks that the ECS cluster's containerInsights setting is enabled or enhanced (Container Insights with enhanced observability). Container Insigh...

High
ECS task sets should not automatically assign public IP addresses

Checks that no task set on the ECS service assigns public IP addresses automatically (assignPublicIp ENABLED). The finding names the service and fails...

Medium
ECS task definitions should not use host network mode

Checks that the task definition family's latest active revision does not set networkMode to host; older revisions a service may still run are not...

Medium
ECS Task Definitions should use in-transit encryption for EFS volumes

Checks that every EFS volume in the task definition family's latest active revision sets transitEncryption to ENABLED; revisions with no EFS volu...

Medium
ECS capacity providers should have managed termination protection enabled

Checks that each ECS capacity provider backed by an Auto Scaling group has managed termination protection enabled; Fargate providers are skipped. With...

Medium
ECS task definitions should configure non-root users in Linux container definitions

Checks that every container in the task definition family's latest active revision sets user to a non-root user; empty, root and 0 fail, with or ...

Medium
ECS task definitions should configure non-administrator users in Windows container definitions

Checks that every container in the task definition family's latest active revision sets user to an account other than ContainerAdministrator or A...

EFS

Medium
Elastic File System should be configured to encrypt file data at-rest using AWS KMS

Checks that the EFS file system is encrypted at rest with AWS KMS, which protects the confidentiality of its stored files and reduces the risk that an...

Medium
Amazon EFS volumes should be in backup plans

Confirms that each EFS file system is in an AWS Backup plan in the same Region, protecting it from deletion and data loss: EFS automatic backups are o...

Medium
EFS access points should enforce a root directory

Checks that the EFS access point enforces a root directory other than /, the file system's own root. Clients that mount through it then reach onl...

Medium
EFS access points should enforce a user identity

Checks that the EFS access point enforces a POSIX user identity, so every file system request through it runs as that user and group instead of the ID...

Medium
EFS mount targets should not be associated with subnets that assign public IP addresses on launch

Checks that no mount target of the EFS file system is in a subnet that assigns public IPv4 addresses on launch or IPv6 addresses on creation, where in...

Medium
EFS file systems should have automatic backups enabled

Checks that automatic backups are on for the EFS file system, so AWS Backup backs it up daily under the default EFS backup plan, which keeps each back...

Medium
EFS file systems should be encrypted at rest

Checks that the EFS file system encrypts its data at rest with AWS KMS, which protects the confidentiality of stored files and reduces the risk that a...

EKS

High
EKS cluster endpoints should not be publicly accessible

Checks whether the EKS cluster's Kubernetes API server endpoint is reachable from the internet, where only IAM, Kubernetes RBAC and any source CI...

High
EKS clusters should run on a supported Kubernetes version

Checks that the EKS cluster's control plane runs a Kubernetes version still in AWS standard support; a release in extended support or past it fai...

Medium
EKS clusters should have audit logging enabled

Checks that the EKS cluster sends the audit control plane log type to CloudWatch Logs, recording which users, administrators and system components cha...

High
EKS node groups should run on a supported Kubernetes version

Checks that the EKS managed node group runs a Kubernetes version still in AWS standard support; a release in extended support or past it fails, and on...

ELB

Medium
Application Load Balancer should be configured to redirect all HTTP requests to HTTPS

Ensures every HTTP listener on an Application Load Balancer redirects requests to HTTPS, so no client is served over an unencrypted connection. One HT...

Medium
Classic Load Balancers with SSL/HTTPS listeners should use a certificate provided by AWS Certificate Manager

Verifies that every HTTPS or SSL listener on a Classic Load Balancer presents a certificate from AWS Certificate Manager rather than one uploaded to I...

Medium
Classic Load Balancer listeners should be configured with HTTPS or TLS termination

Verifies that every Classic Load Balancer listener uses HTTPS or SSL for front-end connections, so client traffic to the load balancer is encrypted. O...

Medium
Application load balancer should be configured to drop invalid http headers

Verifies that Application Load Balancers remove HTTP headers whose names are not valid instead of forwarding them to targets, reducing the risk of hea...

Medium
Application and Classic Load Balancers logging should be enabled

Confirms that Application and Classic Load Balancers write access logs to S3, recording each request's time, client IP address, path and response...

Medium
Application, Gateway, and Network Load Balancers should have deletion protection enabled

Confirms that deletion protection is enabled on Application, Gateway and Network Load Balancers, so the load balancer cannot be deleted, by mistake or...

Low
Classic Load Balancers should have connection draining enabled

Verifies that connection draining is enabled on Classic Load Balancers, so requests already in flight finish when an instance is deregistered instead ...

Medium
Classic Load Balancers with SSL listeners should use a predefined security policy that has strong configuration

Confirms that every HTTPS or SSL listener on a Classic Load Balancer uses the ELBSecurityPolicy-TLS-1-2-2017-01 predefined security policy, which enab...

Medium
Classic Load Balancers should have cross-zone load balancing enabled

Confirms that cross-zone load balancing is enabled for Classic Load Balancers, distributing traffic evenly across all registered instances in all enab...

Medium
Classic Load Balancer should span multiple Availability Zones

Ensures Classic Load Balancers span multiple Availability Zones for increased fault tolerance. The threshold is two zones, the default AWS sets for th...

Medium
Application Load Balancer should be configured with defensive or strictest desync mitigation mode

Ensures Application Load Balancers use defensive or strictest desync mitigation mode to protect against HTTP desync attacks. Monitor mode fails: it fo...

Medium
Application, Network and Gateway Load Balancers should span multiple Availability Zones

Ensures Application, Network, and Gateway Load Balancers span multiple Availability Zones for fault tolerance. The threshold is two zones, the default...

Medium
Classic Load Balancer should be configured with defensive or strictest desync mitigation mode

Ensures Classic Load Balancers use defensive or strictest desync mitigation mode to protect against HTTP desync attacks. Monitor mode fails: it forwar...

Medium
Application Load Balancers should be associated with an AWS WAF web ACL

Confirms that Application Load Balancers are associated with an AWS WAF web ACL to protect against web exploits that could affect availability or cons...

Medium
Application and Network Load Balancers with listeners should use recommended security policies

Verifies that every HTTPS listener on an Application Load Balancer and every TLS listener on a Network Load Balancer uses one of the eight security po...

Medium
Application and Network Load Balancer listeners should use secure protocols to encrypt data in transit

Confirms that each Application Load Balancer listener uses HTTPS and each Network Load Balancer listener uses an encrypted protocol, so client traffic...

Medium
Application and Network Load Balancer target groups should use encrypted health check protocols

Flags Elastic Load Balancing target groups, Gateway Load Balancer ones included, whose health check protocol is not HTTPS. Health-check traffic sent o...

Medium
ELB target groups should use encrypted transport protocols

Flags Elastic Load Balancing target groups whose protocol is not HTTPS, TLS or QUIC, which leaves traffic between the load balancer and its targets un...

EMR

High
Amazon EMR cluster primary nodes should not have public IP addresses

Checks that the primary node of a running or waiting EMR cluster has no public IP address, which would make it reachable from the internet. It reads t...

Critical
Amazon EMR block public access setting should be enabled

Confirms that Amazon EMR Block Public Access is enabled for the account in this Region, and that no ports other than 22 are open to the public, so a c...

Medium
Amazon EMR security configurations should have encryption at rest enabled

Checks that the EMR security configuration enables at-rest encryption, for EMRFS data in S3, local disks or both; a configuration without it fails, wh...

Medium
Amazon EMR security configurations should have encryption in transit enabled

Checks that the EMR security configuration enables in-transit encryption, which turns on TLS for the open-source applications that support it; a confi...

ElastiCache

High
ElastiCache (Redis OSS) clusters should have automatic backups enabled

Checks that node-based ElastiCache (Redis OSS) cache clusters, and Redis OSS or Valkey replication groups, keep automatic backups for at least 1 day, ...

High
ElastiCache clusters should have automatic minor version upgrades enabled

Checks that node-based ElastiCache (Redis OSS) cache clusters, including the nodes of a replication group, have automatic minor version upgrades turne...

Medium
ElastiCache replication groups should have automatic failover enabled

Checks that ElastiCache (Redis OSS or Valkey) replication groups have automatic failover enabled, so a read replica is promoted when the primary fails...

Medium
ElastiCache replication groups should be encrypted at rest

Checks that ElastiCache (Redis OSS or Valkey) replication groups are encrypted at rest, which encrypts data on disk during sync, backup and swap opera...

Medium
ElastiCache replication groups should be encrypted in transit

Checks that ElastiCache (Redis OSS or Valkey) replication groups have encryption in transit enabled, so traffic between clients and nodes, and between...

Medium
ElastiCache (Redis OSS) replication groups of earlier versions should have Redis OSS AUTH enabled

Checks that ElastiCache (Redis OSS) replication groups on engine versions below 6.0 have Redis OSS AUTH enabled, so clients must send a token before r...

High
ElastiCache clusters should not use the default subnet group

Flags ElastiCache clusters using the subnet group named default, which takes its subnets from the default VPC, instead of a custom one that limits whe...

ElasticBeanstalk

Low
Elastic Beanstalk environments should have enhanced health reporting enabled

Checks that an Elastic Beanstalk environment uses enhanced health reporting, where a health agent on each instance reads its logs and operating system...

High
Elastic Beanstalk managed platform updates should be enabled

Ensures managed platform updates are enabled for Elastic Beanstalk environments, so AWS applies platform updates in a weekly maintenance window.

High
Elastic Beanstalk should stream logs to CloudWatch

Confirms that the Elastic Beanstalk environment streams its instance logs to CloudWatch Logs, so they outlive the instance that wrote them. It reads t...

Elasticsearch

Medium
Elasticsearch domains should have encryption at-rest enabled

Checks that the Elasticsearch domain has encryption at rest enabled, so its indexes, automated snapshots, swap files and the logs kept on its nodes ar...

Critical
Elasticsearch domains should not be publicly accessible

Confirms that Elasticsearch domains are deployed within a VPC rather than publicly accessible, so only clients inside your network can reach the searc...

Medium
Elasticsearch domains should encrypt data sent between nodes

Checks that the Elasticsearch domain has node-to-node encryption enabled, so traffic between its nodes is encrypted with TLS 1.2 and data stays encryp...

Medium
Elasticsearch domain error logging to CloudWatch Logs should be enabled

Checks that the Elasticsearch domain publishes its error logs to CloudWatch Logs, so warnings, errors and failures inside the cluster are kept for dia...

Medium
Elasticsearch domains should have audit logging enabled

Checks that the Elasticsearch domain publishes audit logs to CloudWatch Logs, recording authentication successes and failures, requests, index changes...

Medium
Elasticsearch domains should have at least three data nodes

Checks that the Elasticsearch domain has at least three data nodes and zone awareness turned on, so cluster operations continue when a node or an Avai...

Medium
Elasticsearch domains should be configured with at least three dedicated master nodes

Checks that the Elasticsearch domain uses at least three dedicated master nodes. They take cluster management off the data nodes, keep the quorum need...

Medium
Connections to Elasticsearch domains should be encrypted using the latest TLS security policy

Checks that the Elasticsearch domain requires HTTPS and that its endpoint uses Policy-Min-TLS-1-2-PFS-2023-10, the policy AWS's control names as ...

EventBridge

Low
EventBridge custom event buses should have a resource-based policy attached

Checks that the custom event bus has a resource-based policy attached; any policy passes, whatever it grants. Without one, access rests on the account...

Medium
EventBridge global endpoints should have event replication enabled

Checks that event replication is enabled for the EventBridge global endpoint. Replication sends custom events to the event buses in both the primary a...

FSx

Low
FSx for OpenZFS file systems should be configured to copy tags to backups and volumes

Checks that the FSx for OpenZFS file system copies its tags to backups and to volumes; it fails unless both are on. Copied tags let each backup and vo...

Low
FSx for Lustre file systems should be configured to copy tags to backups

Checks that the FSx for Lustre file system copies its tags to its backups, so each backup can be identified, owned and governed like the file system i...

Medium
FSx for OpenZFS file systems should be configured for Multi-AZ deployment

Checks that the FSx for OpenZFS file system uses the Multi-AZ (HA) deployment type, whose file servers and storage span two Availability Zones and fai...

Medium
FSx for NetApp ONTAP file systems should be configured for Multi-AZ deployment

Checks that the FSx for NetApp ONTAP file system uses a Multi-AZ deployment type (Multi-AZ 1 or Multi-AZ 2), whose standby file server runs in a secon...

Medium
FSx for Windows File Server file systems should be configured for Multi-AZ deployment

Checks that the FSx for Windows File Server file system uses the Multi-AZ deployment type, a cluster of file servers in two Availability Zones that fa...

Glue

Medium
AWS Glue machine learning transforms should be encrypted at rest

Checks that the Glue machine learning transform encrypts its user data, the model and labels, with SSE-KMS; a transform with ML user data encryption d...

Medium
AWS Glue Spark jobs should run on supported versions of AWS Glue

Checks that a Glue Spark ETL job sets a Glue version at or above the minimum AWS's control accepts; a job with no Glue version set fails too. A v...

GuardDuty

High
GuardDuty should be enabled

Confirms that Amazon GuardDuty is enabled in each Region, so unusual or unauthorized activity is detected even in Regions you do not use. A finding on...

High
GuardDuty EKS Audit Log Monitoring should be enabled

Checks that GuardDuty EKS Audit Log Monitoring is enabled on this Region's detector, so GuardDuty reads the Kubernetes audit logs of every EKS cl...

High
GuardDuty Lambda Protection should be enabled

Checks that GuardDuty Lambda Protection is enabled on this Region's detector, so GuardDuty monitors the network activity of every Lambda function...

High
GuardDuty EKS Runtime Monitoring should be enabled

Checks that GuardDuty runtime monitoring covers EKS on this Region's detector, through Runtime Monitoring or the older EKS Runtime Monitoring, so...

High
GuardDuty Malware Protection for EC2 should be enabled

Checks that GuardDuty Malware Protection for EC2 is enabled on this Region's detector, so GuardDuty scans the EBS volumes of EC2 instances and co...

High
GuardDuty RDS Protection should be enabled

Checks that GuardDuty RDS Protection is enabled on this Region's detector, so GuardDuty profiles login activity on supported Aurora, RDS for Post...

High
GuardDuty S3 Protection should be enabled

Checks that GuardDuty S3 Protection is enabled on this Region's detector, so GuardDuty analyses object-level S3 data events on every bucket in th...

High
GuardDuty Runtime Monitoring should be enabled

Checks that GuardDuty Runtime Monitoring is enabled on this Region's detector, so OS-level, network and file events on EKS, ECS on Fargate and EC...

Medium
GuardDuty ECS Runtime Monitoring should be enabled

Checks that automated agent configuration for ECS on Fargate is enabled in GuardDuty Runtime Monitoring on this Region's detector, the only way t...

Medium
GuardDuty EC2 Runtime Monitoring should be enabled

Checks that automated agent configuration for EC2 is enabled in GuardDuty Runtime Monitoring on this Region's detector, so GuardDuty deploys its ...

IAM

High
IAM policies should not allow full "*" administrative privileges

Checks that the default version of each customer managed policy you created has no Allow statement with Action * on Resource *, which grants full admi...

Low
IAM users should not have IAM policies attached

Checks that no IAM user has a policy attached directly, managed or inline; users should get permissions from IAM groups or by assuming a role. Grants ...

Medium
IAM users' access keys should be rotated every 90 days or less

Checks that each active IAM user access key is no more than 90 days old, counted from its creation because IAM records no rotation date. Rotation limi...

Critical
IAM root user access key should not exist

Checks that the root user has no access keys. A root key gives long-term, unrestricted API access to the whole account, so programmatic work belongs o...

Medium
MFA should be enabled for all IAM users that have a console password

Checks that every IAM user with a console password has an MFA device assigned, so a stolen or guessed password alone cannot sign in. A user without a ...

Critical
Hardware MFA should be enabled for the root user

Verifies that the root user's MFA is a hardware device (a passkey or security key, or a hardware TOTP token), since an authenticator app may not ...

Medium
Password policies for IAM users should have strong configurations

Checks that the account password policy requires long, complex IAM user passwords that expire and cannot be reused, at the strictest value IAM.7 and I...

Medium
Unused IAM user credentials should be removed

Flags IAM users with a console password or active access key unused for 90 days or more; removing them narrows what an abandoned or compromised accoun...

Critical
MFA should be enabled for the root user

Checks that the root user has an MFA device, so a stolen root password alone cannot sign in to an account with complete access to everything in it. An...

Low
Ensure IAM password policy expires passwords within 90 days or less

Verifies that the IAM account password policy expires passwords within 90 days or fewer, so a leaked password stops working on its own. Expiry switche...

Low
Ensure a support role has been created to manage incidents with AWS Support

Checks that the AWSSupportAccess managed policy is attached to at least one IAM role, user or group, so authorized people can manage incidents with AW...

Medium
MFA should be enabled for all IAM users

Checks that every IAM user has an MFA device assigned, so a stolen password alone cannot sign in. Users with only access keys are in scope too: for th...

Low
IAM customer managed policies that you create should not allow wildcard actions for services

Checks that the default version of each customer managed policy you created has no Allow statement whose Action or NotAction is a whole service (servi...

Medium
IAM user credentials unused for 45 days should be removed

Flags IAM users with a console password or active access key unused for 45 days or more; removing them narrows what an abandoned or compromised accoun...

Medium
Expired SSL/TLS certificates managed in IAM should be removed

Checks that no SSL/TLS server certificate stored in IAM has expired. An expired certificate left in IAM can still be deployed to a resource by mistake...

Medium
IAM identities should not have the AWSCloudShellFullAccess policy attached

Checks that no IAM user, role or group has the AWS managed policy AWSCloudShellFullAccess attached directly. It allows file transfer between a local m...

High
IAM Access Analyzer external access analyzer should be enabled

Confirms that each Region has an active IAM Access Analyzer external access analyzer, which flags resources such as S3 buckets and IAM roles shared ou...

Inspector

High
Amazon Inspector EC2 scanning should be enabled

Confirms that Amazon Inspector EC2 scanning is enabled in each Region where the account has EC2 instances, so Inspector checks their installed package...

High
Amazon Inspector ECR scanning should be enabled

Checks that Amazon Inspector ECR scanning is enabled in each Region where the account has ECR repositories, so container images are scanned for operat...

High
Amazon Inspector Lambda code scanning should be enabled

Ensures Amazon Inspector Lambda code scanning is enabled in each Region where the account has Lambda functions, so function code is checked for flaws ...

High
Amazon Inspector Lambda standard scanning should be enabled

Confirms that Amazon Inspector Lambda standard scanning is enabled in each Region where the account has Lambda functions, so the packages in each func...

KMS

Medium
IAM customer managed policies should not allow decryption actions on all KMS keys

Checks that the default version of each customer managed policy, attached or not, allows neither kms:Decrypt nor kms:ReEncryptFrom, by name or by wild...

Medium
IAM principals should not have IAM inline policies that allow decryption actions on all KMS keys

Checks that no inline policy embedded in an IAM user, group or role allows kms:Decrypt or kms:ReEncryptFrom, by name or by wildcard, on every KMS key....

Critical
AWS KMS keys should not be deleted unintentionally

Checks whether a customer managed KMS key is scheduled for deletion. When the waiting period ends the key is deleted and data encrypted under it can n...

Medium
AWS KMS key rotation should be enabled

Checks that automatic key rotation is enabled on each customer managed symmetric encryption KMS key. Rotation gives the key new key material, yearly b...

Critical
KMS keys should not be publicly accessible

Checks whether a customer managed KMS key's policy lets everyone ("*") use the key with no condition that pins the caller and no Deny t...

Kinesis

Medium
Firehose delivery streams should be encrypted at rest

Checks that a Firehose stream's records are encrypted at rest with an AWS KMS key. A Direct PUT stream needs Firehose server-side encryption; a s...

Medium
Kinesis streams should be encrypted at rest

Checks that Kinesis data streams use server-side encryption with an AWS KMS key, so records are encrypted before they are written to the stream's...

Medium
Kinesis streams should have an adequate data retention period

Checks that Kinesis data streams keep records for at least 168 hours (7 days), the default of AWS's control, so consumers that fall behind or fai...

Lambda

Critical
Lambda function policies should prohibit public access

Verifies that Lambda function resource-based policies do not grant public access from outside the account, which would let anyone use the function. Th...

Medium
Lambda functions should use supported runtimes

Checks that the Lambda function uses a supported runtime. When a runtime's components stop receiving security updates, Lambda deprecates it: a fu...

Low
Lambda functions should be in a VPC

Checks that the Lambda function is connected to a VPC; subnet routing and public reachability are not evaluated. A function in a VPC reaches your priv...

Medium
VPC Lambda functions should operate in multiple Availability Zones

Checks that a Lambda function connected to a VPC uses subnets in at least two Availability Zones, so that the failure of a single zone does not stop t...

Low
Lambda functions should have AWS X-Ray active tracing enabled

Checks that active tracing with AWS X-Ray is enabled for the Lambda function. X-Ray breaks down each traced invocation's latency, which helps dia...

MQ

Medium
ActiveMQ brokers should stream audit logs to CloudWatch

Checks that an Amazon MQ for ActiveMQ broker streams its audit log to CloudWatch Logs. The audit log records management actions taken through JMX or t...

Low
ActiveMQ brokers should use active/standby deployment mode

Checks that an Amazon MQ for ActiveMQ broker uses active/standby deployment mode: two broker instances in two Availability Zones sharing Amazon EFS st...

Low
RabbitMQ brokers should use cluster deployment mode

Checks that an Amazon MQ for RabbitMQ broker uses cluster deployment: three broker nodes across Availability Zones with data replicated to every node....

MSK

Medium
MSK clusters should be encrypted in transit among broker nodes

Flags MSK clusters whose brokers send data to each other in plaintext rather than over TLS, so replication traffic inside the cluster can be read or a...

Low
MSK clusters should have enhanced monitoring configured

Flags MSK clusters that send CloudWatch metrics at the DEFAULT or PER_BROKER level rather than PER_TOPIC_PER_BROKER or finer. Topic-level metrics show...

Medium
MSK Connect connectors should be encrypted in transit

Flags MSK Connect connectors that exchange data with their Apache Kafka cluster in plaintext rather than over TLS, so the records they copy between th...

Critical
Amazon MSK clusters should have public access disabled

Flags Amazon MSK clusters whose public access is not turned off, so their brokers can be reached from the internet rather than only from inside the VP...

Medium
MSK connectors should have logging enabled

Flags MSK Connect connectors that deliver no worker logs to CloudWatch Logs, Amazon S3 or Amazon Data Firehose, which leaves no record for debugging a...

Medium
MSK clusters should disable unauthenticated access

Flags MSK clusters that allow unauthenticated access, which lets any client that can reach the brokers publish to, read from or delete data in Kafka t...

Macie

Medium
Macie should be enabled

Checks that Amazon Macie is enabled in the Region, so it keeps an inventory of the S3 buckets there, monitors them for security and access control, an...

High
Macie automated sensitive data discovery should be enabled

Checks that Amazon Macie automated sensitive data discovery is enabled in the Region, so Macie samples the S3 buckets there each day and reports where...

Neptune

Medium
Neptune DB clusters should be encrypted at rest

Checks that a Neptune DB cluster is encrypted at rest with an AWS KMS key, which also covers its logs, automated backups and snapshots, so the graph&#...

Medium
Neptune DB clusters should publish audit logs to CloudWatch Logs

Checks that a Neptune DB cluster publishes audit logs to CloudWatch Logs, so a record of each query and the client that sent it is kept outside the cl...

Critical
Neptune DB cluster snapshots should not be public

Checks whether a Neptune manual DB cluster snapshot is public, which lets any AWS account copy or restore its data. A copy made while it was public is...

Low
Neptune DB clusters should have deletion protection enabled

Checks that a Neptune DB cluster has deletion protection enabled, so a request to delete the cluster, accidental or unauthorized, fails until the prot...

Medium
Neptune DB clusters should have automated backups enabled

Checks that a Neptune DB cluster keeps automated backups for at least 7 days. Retention sets how far back a point-in-time restore can reach, so a shor...

Medium
Neptune DB cluster snapshots should be encrypted at rest

Checks that a Neptune DB cluster snapshot is encrypted at rest, so its data stays protected wherever it is copied, shared or restored. Neptune, Docume...

Medium
Neptune DB clusters should have IAM database authentication enabled

Checks that a Neptune DB cluster has IAM database authentication enabled, so every request is authenticated with IAM credentials and signed with AWS S...

Low
Neptune DB clusters should be configured to copy tags to snapshots

Checks that a Neptune DB cluster copies its tags to snapshots when they are created, so each snapshot carries the tags that drive cost allocation, own...

Medium
Neptune DB clusters should be deployed across multiple Availability Zones

Checks that a Neptune DB cluster has instances in more than one Availability Zone, so if the primary or its zone fails, Neptune can promote a reader i...

NetworkFirewall

Medium
Network Firewall firewalls should be deployed across multiple Availability Zones

Checks that the Network Firewall firewall has endpoints in at least two Availability Zones. With an endpoint in each zone, traffic can be balanced and...

Medium
Network Firewall logging should be enabled

Checks that the Network Firewall firewall sends at least one log type (Alert, Flow or TLS) to a destination, recording the traffic its stateful engine...

Medium
Network Firewall policies should have at least one rule group associated

Checks that the Network Firewall policy has at least one stateful or stateless rule group. The rule groups are what filter packets and traffic flows, ...

Medium
The default stateless action for Network Firewall policies should be drop or forward for full packets

Checks that the Network Firewall policy's default stateless action for full packets is Drop or Forward to stateful rule groups, not Pass, so a pa...

Medium
The default stateless action for Network Firewall policies should be drop or forward for fragmented packets

Checks that the Network Firewall policy's default stateless action for fragmented packets is Drop or Forward to stateful rule groups, not Pass, s...

Medium
Stateless network firewall rule group should not be empty

Checks that the stateless Network Firewall rule group contains at least one rule. An empty stateless rule group in a firewall policy can look as if it...

Medium
Network Firewall firewalls should have deletion protection enabled

Checks that deletion protection is on for the Network Firewall firewall, so a firewall that is inspecting traffic to, from or between VPCs cannot be d...

Medium
Network Firewall firewalls should have subnet change protection enabled

Checks that subnet change protection is on for the Network Firewall firewall, protecting its subnet associations, and so the endpoints traffic is rout...

Opensearch

Medium
OpenSearch domains should have encryption at rest enabled

Checks that the OpenSearch domain encrypts its data at rest with an AWS KMS key. That covers its indexes, logs, swap files and automated snapshots, so...

Critical
OpenSearch domains should not be publicly accessible

Confirms that OpenSearch domains are deployed within a VPC rather than exposed to the public internet, so only clients inside your network can reach t...

Medium
OpenSearch domains should encrypt data sent between nodes

Checks that the OpenSearch domain has node-to-node encryption on, so traffic between its nodes is TLS 1.2 encrypted and data stays encrypted as OpenSe...

Medium
OpenSearch domain error logging to CloudWatch Logs should be enabled

Checks that the OpenSearch domain publishes its error logs to CloudWatch Logs. They carry the warnings and errors OpenSearch raises, such as invalid q...

Medium
OpenSearch domains should have audit logging enabled

Checks that the OpenSearch domain publishes audit logs to CloudWatch Logs, recording user activity such as authentication failures, requests refused f...

Medium
OpenSearch domains should have at least three data nodes

Checks that the OpenSearch domain has at least three data nodes and zone awareness turned on, so the cluster keeps serving if a node or an Availabilit...

High
OpenSearch domains should have fine-grained access control enabled

Checks that the OpenSearch domain has fine-grained access control enabled, so each request is authorized by role at the index, document and field leve...

Medium
Connections to OpenSearch domains should be encrypted using the latest TLS security policy

Checks that the OpenSearch domain requires HTTPS and that its endpoint uses Policy-Min-TLS-1-2-PFS-2023-10, so clients connect only over TLS 1.2 or la...

Medium
OpenSearch domains should have the latest software update installed

Checks that the OpenSearch domain, on either engine, has no service software update waiting, so it runs the latest platform fixes, including security ...

Low
OpenSearch domains should have at least three dedicated primary nodes

Checks that the OpenSearch domain has at least three dedicated master (primary) nodes. They manage the cluster without holding data, and three keep th...

PrivateCA

Low
AWS Private CA root certificate authority should be disabled

Checks that an AWS Private CA root certificate authority is disabled; a root in any other state fails, and only an active one can be disabled. The roo...

RDS

Critical
RDS snapshot should be private

Confirms that RDS DB snapshots and DB cluster snapshots are not public. Any AWS account can copy or restore a public snapshot, and making it private d...

Critical
RDS DB Instances should prohibit public access, as determined by the PubliclyAccessible configuration

Flags RDS DB instances with PubliclyAccessible set, which gives the instance a public IP address and an endpoint that resolves to it from outside the ...

Medium
RDS DB instances should have encryption at-rest enabled

Verifies that RDS DB instances have storage encryption enabled, which also covers their logs, automated backups, read replicas and snapshots. For an i...

Medium
RDS cluster snapshots and database snapshots should be encrypted at rest

Verifies that RDS DB snapshots and DB cluster snapshots are encrypted at rest, so the data in them stays protected wherever they are copied or restore...

Medium
RDS DB instances should be configured with multiple Availability Zones

Confirms that RDS DB instances use a Multi-AZ deployment, which keeps a synchronous standby in a second Availability Zone and fails over to it automat...

Low
Enhanced monitoring should be configured for RDS DB instances

Confirms that RDS DB instances have Enhanced Monitoring turned on, which reads per-process CPU, memory and I/O from the operating system the database ...

Medium
RDS clusters should have deletion protection enabled

Confirms that RDS DB clusters have deletion protection enabled, so a stray delete of the cluster fails; it does not stop the data inside it being drop...

Low
RDS DB instances should have deletion protection enabled

Confirms that RDS DB instances have deletion protection enabled, so a stray delete of the instance fails; it does not stop the data inside it being dr...

Medium
RDS DB instances should publish logs to CloudWatch Logs

Verifies that RDS DB instances publish database logs to CloudWatch Logs, where they are kept for security audits and for diagnosing availability issue...

Medium
IAM authentication should be configured for RDS instances

Checks that RDS for MySQL, MariaDB and PostgreSQL DB instances, and Aurora DB instances, have IAM database authentication enabled, so clients can sign...

Medium
RDS instances should have automatic backups enabled

Ensures RDS DB instances keep automated backups for at least 7 days, so a point-in-time restore can reach back that far; a retention period of 0 turns...

Medium
IAM authentication should be configured for RDS clusters

Checks that RDS DB clusters have IAM database authentication enabled, so clients can sign in with short-lived IAM tokens instead of stored passwords. ...

High
RDS automatic minor version upgrades should be enabled

Confirms that RDS DB instances have automatic minor version upgrades enabled, so engine patches and security fixes are applied in the maintenance wind...

Medium
Amazon Aurora clusters should have backtracking enabled

Confirms that Aurora MySQL clusters have backtracking enabled, so the cluster can be rewound to an earlier point in minutes to undo a destructive chan...

Medium
RDS DB clusters should be configured for multiple Availability Zones

Confirms that RDS DB clusters have instances in more than one Availability Zone, so a failover has a running instance elsewhere to move to. The cluste...

Low
Aurora DB clusters should be configured to copy tags to DB snapshots

Checks that Aurora DB clusters copy their tags to DB snapshots when the snapshots are created, so each snapshot inherits the tags that drive cost allo...

Low
RDS DB instances should be configured to copy tags to snapshots

Checks that RDS DB instances copy their tags to snapshots when the snapshots are created, so each snapshot inherits the tags that drive cost allocatio...

Low
Existing RDS event notification subscriptions should be configured for critical cluster events

Checks that each RDS event subscription for DB clusters covers the maintenance and failure event categories, so a pending cluster maintenance action o...

Low
Existing RDS event notification subscriptions should be configured for critical database instance events

Checks that each RDS event subscription for DB instances covers the maintenance, configuration change and failure event categories, so a pending maint...

Low
An RDS event notifications subscription should be configured for critical database parameter group events

Checks that a Region with RDS event subscriptions has an active one for DB parameter groups covering configuration change, so an edit that can change ...

Low
An RDS event notifications subscription should be configured for critical database security group events

Checks that a Region with RDS event subscriptions has an active one for DB security groups covering configuration change and failure. A Region with no...

Low
RDS instances should not use a database engine default port

Flags RDS DB instances listening on their engine's default port, the one untargeted scans try first. This is one thin layer, never a substitute f...

Medium
RDS Database Clusters should use a custom administrator username

Flags RDS database clusters whose master username is admin, root, sa, oracle or postgres, in any letter case. These are the names tried first, so a cl...

Medium
RDS database instances should use a custom administrator username

Flags RDS database instances whose master username is admin, root, sa, oracle or postgres, in any letter case. These are the names tried first, so an ...

Medium
RDS DB instances should be protected by a backup plan

Confirms that each RDS DB instance is selected by an AWS Backup plan in the same Region (no backup has to have run yet) or already has a recovery poin...

Medium
RDS DB clusters should be encrypted at rest

Verifies that RDS DB clusters are encrypted at rest, which also covers the cluster's automated backups, logs and snapshots. DocumentDB and Neptun...

Medium
Aurora MySQL DB clusters should publish audit logs to CloudWatch Logs

Verifies that Aurora MySQL DB clusters publish audit logs to CloudWatch Logs, so the record of logins, data changes and schema changes is kept outside...

Medium
RDS DB clusters should have automatic minor version upgrade enabled

Ensures automatic minor version upgrade is enabled on RDS DB clusters, including Aurora, so the cluster and its instances receive minor version patche...

Medium
RDS for PostgreSQL DB instances should publish logs to CloudWatch Logs

Verifies that RDS for PostgreSQL DB instances publish the postgresql log to CloudWatch Logs, where it is kept durably and can be searched and alarmed ...

Medium
Aurora PostgreSQL DB clusters should publish logs to CloudWatch Logs

Verifies that Aurora PostgreSQL DB clusters publish the postgresql log to CloudWatch Logs, where it is kept durably and can be searched and alarmed on...

Medium
RDS for PostgreSQL DB instances should be encrypted in transit

Checks that RDS for PostgreSQL DB instances set rds.force_ssl to 1 in their DB parameter group. With it on, the database rejects any connection that d...

Medium
RDS for MySQL DB instances should be encrypted in transit

Checks that RDS for MySQL DB instances set require_secure_transport to 1 in their DB parameter group. With it on, the database refuses any connection ...

Medium
RDS for SQL Server DB instances should publish logs to CloudWatch Logs

Verifies that RDS for SQL Server DB instances publish the error log to CloudWatch Logs. RDS keeps at most 30 error logs on the instance and may delete...

Medium
RDS for SQL Server DB instances should be encrypted in transit

Checks that RDS for SQL Server DB instances set rds.force_ssl to 1 in their DB parameter group, which makes SQL Server encrypt every connection. Witho...

Medium
RDS for MariaDB DB instances should publish logs to CloudWatch Logs

Verifies that RDS for MariaDB DB instances publish the error log to CloudWatch Logs, where it is kept durably for audits and for diagnosing availabili...

Medium
RDS DB proxies should require TLS encryption for connections

Flags RDS DB proxies that do not require TLS, so a client can connect to the proxy unencrypted. The setting covers only the client-to-proxy leg: wheth...

Medium
RDS for MariaDB DB instances should be encrypted in transit

Checks that RDS for MariaDB DB instances set require_secure_transport to 1 in their DB parameter group, so the database refuses any connection that do...

Medium
Aurora MySQL DB clusters should have audit logging enabled

Confirms that Aurora MySQL DB clusters have audit logging enabled through the server_audit_logging cluster parameter, so the engine can record logins,...

High
RDS DB instances should not be deployed in public subnets with routes to internet gateways

Flags RDS DB instances whose DB subnet group includes any subnet with an active route to an internet gateway, whatever its destination; a subnet with ...

Low
RDS for PostgreSQL DB clusters should be configured to copy tags to DB snapshots

Checks that RDS for PostgreSQL DB clusters copy their tags to DB snapshots when the snapshots are created, so each snapshot inherits the tags that dri...

Low
RDS for MySQL DB clusters should be configured to copy tags to DB snapshots

Checks that RDS for MySQL DB clusters copy their tags to DB snapshots when the snapshots are created, so each snapshot inherits the tags that drive co...

Medium
RDS DB clusters should have enough backup retention period set

Flags Amazon RDS DB clusters whose backup retention period is shorter than 7 days, which limits how far back a point-in-time restore can reach and so ...

High
RDS global clusters should run on a supported Aurora MySQL version

Flags Aurora MySQL global clusters on an engine version below the minimum AWS publishes for this control, unless it is a long-term support release; su...

Redshift

Critical
Amazon Redshift clusters should prohibit public access

Flags Redshift clusters that are publicly accessible. A public cluster has an elastic IP address that clients outside the VPC can connect to, leaving ...

Medium
Connections to Amazon Redshift clusters should be encrypted in transit

Checks that Redshift clusters require encrypted connections, which means require_ssl is true in the cluster's parameter group. Without it, client...

Medium
Amazon Redshift clusters should have automatic snapshots enabled

Confirms that Redshift clusters have automated snapshots enabled and retained for at least seven days, the control's default, so a bad load or an...

Medium
Amazon Redshift clusters should have audit logging enabled

Checks that Redshift clusters have audit logging turned on, to CloudWatch Logs or Amazon S3, so connection attempts and changes to database users are ...

Medium
Amazon Redshift should have automatic upgrades to major versions enabled

Checks that Redshift clusters allow automatic major version upgrades. With them on, Redshift installs new releases, which can carry security patches a...

Medium
Redshift clusters should use enhanced VPC routing

Confirms that Redshift clusters have Enhanced VPC Routing enabled to route COPY and UNLOAD traffic through the VPC, where security groups, network ACL...

Medium
Amazon Redshift clusters should not use the default Admin username

Flags Redshift clusters whose admin username is a default or easily guessed name: awsuser, admin, root, sa, oracle or postgres. Default names are publ...

Medium
Redshift clusters should be encrypted at rest

Checks that Redshift clusters are encrypted at rest. Encryption covers the data blocks and system metadata of the cluster and its snapshots, reducing ...

High
Redshift security groups should allow ingress on the cluster port only from restricted origins

Flags Redshift clusters whose attached security groups allow ingress from 0.0.0.0/0 or ::/0 to the cluster port over any protocol, which invites unaut...

Medium
Redshift cluster subnet groups should have subnets from multiple Availability Zones

Verifies that Redshift cluster subnet groups contain subnets from at least two Availability Zones, so a cluster using the group can keep operating whe...

Medium
Redshift clusters should have Multi-AZ deployments enabled

Confirms that Multi-AZ deployment is enabled for Redshift clusters. A Multi-AZ cluster runs its compute in two Availability Zones behind one endpoint,...

RedshiftServerless

High
Amazon Redshift Serverless workgroups should use enhanced VPC routing

Flags Amazon Redshift Serverless workgroups that do not have enhanced VPC routing enabled. Without it, COPY/UNLOAD traffic between the workgroup and o...

Medium
Connections to Redshift Serverless workgroups should be required to use SSL

Verifies that Redshift Serverless workgroups require SSL for all connections, so the database refuses clients that do not negotiate TLS. A workgroup a...

High
Redshift Serverless workgroups should prohibit public access

Flags Amazon Redshift Serverless workgroups whose publiclyAccessible setting is true. A public workgroup has an elastic IP address that clients outsid...

Low
Redshift Serverless namespaces should be encrypted with customer managed AWS KMS keys

Checks that the Amazon Redshift Serverless namespace is encrypted at rest with a customer managed AWS KMS key. With your own key you control its key p...

Medium
Redshift Serverless namespaces should not use the default admin username

Flags Amazon Redshift Serverless namespaces whose admin username is a default or easily guessed name: admin, awsuser, root, sa, oracle or postgres. Th...

Medium
Redshift Serverless namespaces should export logs to CloudWatch Logs

Flags Amazon Redshift Serverless namespaces that do not export connection and user logs to CloudWatch Logs. Without these exports, failed sign-ins and...

Route53

Medium
Route 53 public hosted zones should log DNS queries

Checks that DNS query logging is enabled for the Route 53 public hosted zone, so the queries Route 53 answers for it (the name queried, record type, r...

S3

Medium
S3 general purpose buckets should have block public access settings enabled

Checks that all four S3 Block Public Access settings are on for the account. Account-level settings apply to every bucket and a bucket cannot loosen t...

Critical
S3 general purpose buckets should block public read access

Checks whether an S3 general purpose bucket's policy or ACL grants public read access that Block Public Access, on the bucket or the account, doe...

Critical
S3 general purpose buckets should block public write access

Checks whether an S3 general purpose bucket's policy or ACL grants public write access that Block Public Access, on the bucket or the account, do...

Medium
S3 general purpose buckets should require requests to use TLS

Checks that the S3 general purpose bucket's policy denies every request made without TLS, so data sent to or from the bucket cannot be read or al...

High
S3 general purpose bucket policies should restrict access to other AWS accounts

Checks that the S3 general purpose bucket's policy does not allow another AWS account, or everyone, s3:DeleteBucketPolicy, s3:PutBucketAcl, s3:Pu...

Low
S3 general purpose buckets should use cross-Region replication

Checks that the S3 general purpose bucket has an enabled replication rule to a bucket in another Region, so a copy of its data survives a Regional out...

High
S3 general purpose buckets should block public access

Checks that all four Block Public Access settings are on for the S3 general purpose bucket itself; the account-level settings do not count here. With ...

Medium
S3 general purpose buckets should have server access logging enabled

Checks that server access logging is on for the S3 general purpose bucket, recording each request for security and access audits. The bucket that rece...

Medium
S3 general purpose buckets with versioning enabled should have Lifecycle configurations

Checks that a versioned S3 general purpose bucket has at least one enabled lifecycle rule. With versioning on, every overwrite and delete keeps the pr...

Medium
S3 general purpose buckets should have event notifications enabled

Checks that the S3 general purpose bucket sends event notifications to Amazon EventBridge, an SNS topic, an SQS queue or a Lambda function, so changes...

Medium
ACLs should not be used to manage user access to S3 general purpose buckets

Checks that the S3 general purpose bucket has ACLs disabled, with Object Ownership set to Bucket owner enforced. An ACL grants access outside the buck...

Low
S3 general purpose buckets should have Lifecycle configurations

Checks that the S3 general purpose bucket has at least one enabled lifecycle rule, so S3 expires or transitions its objects on a schedule rather than ...

Low
S3 general purpose buckets should have versioning enabled

Checks that versioning is enabled on the S3 general purpose bucket; a bucket where it is suspended or was never set fails. With versioning, an overwri...

Medium
S3 general purpose buckets should have Object Lock enabled

Checks that the S3 general purpose bucket has Object Lock enabled. Object Lock stores objects write-once-read-many, so a locked object version cannot ...

Low
S3 general purpose buckets should be encrypted at rest with AWS KMS keys

Checks that the S3 general purpose bucket's default encryption uses an AWS KMS key (SSE-KMS or DSSE-KMS) rather than SSE-S3, so reading an object...

Critical
S3 access points should have block public access settings enabled

Checks that an S3 access point has all four Block Public Access settings on. S3 combines them with the bucket's and the account's settings a...

Low
S3 general purpose buckets should have MFA delete enabled

Checks that MFA delete is enabled on the S3 general purpose bucket, so permanently deleting an object version or changing versioning needs a code from...

Medium
S3 general purpose buckets should log object-level write events

Checks that at least one CloudTrail multi-Region trail logs S3 object-level write events for every bucket, recording who wrote or deleted each object....

Medium
S3 general purpose buckets should log object-level read events

Checks that at least one CloudTrail multi-Region trail logs S3 object-level read events for every bucket, recording who read each object. One trail co...

High
S3 Multi-Region Access Points should have block public access settings enabled

Checks that an S3 Multi-Region Access Point has all four Block Public Access settings on. S3 combines them with the account's and each bucket...

Low
S3 directory buckets should have lifecycle configurations

Checks that the S3 directory bucket has at least one enabled lifecycle rule, so S3 deletes objects nobody needs on a schedule instead of keeping them ...

SES

Medium
SES configuration sets should have TLS enabled for sending emails

Checks that an Amazon SES configuration set requires TLS for delivery. By default SES sends a message in plain text when the receiving mail server can...

SNS

Medium
SNS topics should be encrypted at-rest using AWS KMS

Checks that the SNS topic is encrypted at rest with an AWS KMS key; SNS's default disk encryption does not count. With a KMS key, reading a store...

Critical
SNS topic access policies should not allow public access

Checks whether an SNS topic's access policy lets everyone ("*") use the topic with no condition that pins the caller and no Deny that c...

SQS

Medium
Amazon SQS queues should be encrypted at rest

Checks that the SQS queue is encrypted at rest with SQS-managed keys (SSE-SQS) or an AWS KMS key (SSE-KMS), which protects message bodies stored on di...

Critical
SQS queue access policies should not allow public access

Checks whether an SQS queue's access policy lets everyone ("*") use the queue with no condition that pins the caller and no Deny that c...

SSM

Medium
EC2 instances should be managed by AWS Systems Manager

Checks that each running or stopped EC2 instance in the Region is a Systems Manager managed node, so it can be inventoried, patched and configured thr...

High
EC2 instances managed by Systems Manager should have a patch compliance status of COMPLIANT after a patch installation

Checks that Systems Manager Patch Manager reports no missing patches for the EC2 instance and none that failed to install in its last patching operati...

Low
EC2 instances managed by Systems Manager should have an association compliance status of COMPLIANT

Checks that the node managed by Systems Manager has an association compliance status of COMPLIANT after its State Manager associations run; one failin...

Critical
SSM documents should not be public

Checks whether an SSM document this account owns is shared with All, which makes it readable by every AWS account and can expose information about you...

Medium
SSM Automation should have CloudWatch logging enabled

Checks that Systems Manager Automation in this Region sends the output of aws:executeScript actions to CloudWatch Logs, so there is a record of the sc...

Critical
SSM documents should have the block public sharing setting enabled

Ensures the block public sharing setting for SSM documents, which is set per Region, is on in this Region. A public document can expose information ab...

SageMaker

High
Amazon SageMaker notebook instances should not have direct internet access

Checks that direct internet access is disabled on the SageMaker notebook instance. With it enabled, SageMaker routes the instance's traffic to th...

High
SageMaker notebook instances should be launched in a custom VPC

Checks that the SageMaker notebook instance is attached to a subnet. Without one it runs in the SageMaker service VPC, where your security groups and ...

High
Users should not have root access to SageMaker notebook instances

Checks that root access is disabled for users of the SageMaker notebook instance. With root, every user is an administrator who can read and change an...

Medium
SageMaker endpoint production variants should have an initial instance count greater than 1

Checks that every instance-based production variant in the endpoint configuration has an initial instance count above 1, so SageMaker can spread its i...

Medium
SageMaker models should have network isolation enabled

Checks that the SageMaker model has network isolation enabled. Inference containers have network access by default; with isolation on, the container c...

Medium
SageMaker notebook instances should run on supported platforms

Checks that the notebook instance runs on notebook-al2023-v1, the only platform AWS supports. Amazon Linux 2 reached end of support for notebook insta...

Medium
SageMaker data quality job definitions should have inter-container traffic encryption enabled

Flags Amazon SageMaker data quality monitoring job definitions whose NetworkConfig.EnableInterContainerTrafficEncryption is disabled. Without it, traf...

Medium
SageMaker model explainability job definitions should have inter-container traffic encryption enabled

Flags Amazon SageMaker model explainability monitoring job definitions whose NetworkConfig.EnableInterContainerTrafficEncryption is disabled, leaving ...

Medium
SageMaker data quality job definitions should have network isolation enabled

Flags Amazon SageMaker data quality monitoring job definitions whose NetworkConfig.EnableNetworkIsolation is disabled. Without isolation the container...

Medium
SageMaker model bias job definitions should have network isolation enabled

Flags Amazon SageMaker model bias monitoring job definitions whose NetworkConfig.EnableNetworkIsolation is disabled. Without isolation the containers ...

Medium
SageMaker model quality job definitions should have inter-container traffic encryption enabled

Flags Amazon SageMaker model quality monitoring job definitions whose NetworkConfig.EnableInterContainerTrafficEncryption is disabled, leaving traffic...

Medium
SageMaker monitoring schedules should have network isolation enabled

Flags Amazon SageMaker monitoring schedules whose job definition, inline or named, has NetworkConfig.EnableNetworkIsolation disabled; without isolatio...

Medium
SageMaker model bias job definitions should have inter-container traffic encryption enabled

Flags SageMaker model bias job definitions whose NetworkConfig.EnableInterContainerTrafficEncryption is disabled, leaving traffic between the job'...

Medium
SageMaker models should use private registry in VPC for primary containers

Checks that the model's primary container has repository access mode Vpc, pulling its image from a private Docker registry in your VPC; Platform ...

Low
SageMaker feature group offline stores should be encrypted with AWS KMS keys

Checks that the feature group's offline store names a KMS key of yours for the Amazon S3 data it writes. Without one the data is still encrypted,...

Low
SageMaker feature group online stores with standard storage should be encrypted with AWS KMS keys

Checks that the feature group's online store, on standard storage, names a KMS key of yours. Without one the records are still encrypted, under a...

Medium
SageMaker models should use private registry in VPC for multi-container inference pipelines

Checks that every container in the model's container list has repository access mode Vpc, pulling its image from a private Docker registry in you...

High
SageMaker model explainability job definitions should have network isolation enabled

Flags Amazon SageMaker model explainability monitoring job definitions whose NetworkConfig.EnableNetworkIsolation is disabled. Without isolation the c...

Low
SageMaker notebook instances should be encrypted with customer managed AWS KMS keys

Checks that a SageMaker notebook instance names a customer managed KMS key for its ML storage volume, which holds the notebooks and data under /home/e...

Medium
SageMaker monitoring schedules should have inter-container traffic encryption enabled

Flags Amazon SageMaker monitoring schedules whose job definition, inline or named, has NetworkConfig.EnableInterContainerTrafficEncryption disabled, l...

Low
SageMaker inference experiments should have instance storage volume encrypted with customer managed AWS KMS keys

Checks that a SageMaker inference experiment names a customer managed KMS key (its top-level KmsKey) for the storage volume on the ML instances hostin...

Low
SageMaker inference experiments should have data storage encrypted with customer managed AWS KMS keys

Checks that a SageMaker inference experiment with data capture names a customer managed KMS key for the requests and responses it captures to Amazon S...

High
SageMaker model quality job definitions should have network isolation enabled

Flags Amazon SageMaker model quality monitoring job definitions whose NetworkConfig.EnableNetworkIsolation is disabled. Without isolation the containe...

SecretsManager

Medium
Secrets Manager secrets should have automatic rotation enabled

Checks that a Secrets Manager secret has automatic rotation turned on. Rotation replaces long-term credentials with short-term ones, which limits how ...

Medium
Secrets Manager secrets configured with automatic rotation should rotate successfully

Checks that a Secrets Manager secret with automatic rotation turned on rotated as scheduled; it fails once a scheduled rotation is more than a day ove...

Medium
Remove unused Secrets Manager secrets

Checks that a Secrets Manager secret has been retrieved in this Region within 90 days, AWS's default period. An unused secret can still be used b...

Medium
Secrets Manager secrets should be rotated within a specified number of days

Checks that a Secrets Manager secret has rotated within 90 days, AWS's default period; one never rotated is judged by the time since it was creat...

ServiceCatalog

Medium
Service Catalog portfolios should be shared within an AWS organization only

Checks that a Service Catalog portfolio is shared only through AWS Organizations: any account-to-account share (type ACCOUNT) fails it, even one to an...

StepFunctions

Medium
Step Functions state machines should have logging turned on

Checks that the Step Functions state machine logs to CloudWatch Logs at any level other than OFF. The logs record execution history and results, which...

Transfer

Medium
Transfer Family servers should not use FTP protocol for endpoint connection

Checks that the Transfer Family server does not offer FTP; a server with FTP among its protocols fails. FTP sends files and sign-in credentials unencr...

Medium
Transfer Family connectors should have logging enabled

Checks that the Transfer Family connector has a logging role, which lets it write its events to CloudWatch Logs; a connector without one fails. The lo...

WAF

Medium
AWS WAF Classic Global Web ACL logging should be enabled

Checks that logging is enabled for the AWS WAF Classic global web ACL, which protects CloudFront distributions. Logs record each request the web ACL i...

Medium
AWS WAF Classic Regional rules should have at least one condition

Checks that the AWS WAF Classic Regional rule has at least one condition. A rule with no conditions inspects nothing, so traffic passes untouched whil...

Medium
AWS WAF Classic Regional rule groups should have at least one rule

Checks that the AWS WAF Classic Regional rule group has at least one rule. An empty rule group inspects nothing, so traffic passes untouched while a n...

Medium
AWS WAF Classic Regional web ACLs should have at least one rule or rule group

Checks that the AWS WAF Classic Regional web ACL has at least one rule or rule group. Without one, every request to its load balancers and API Gateway...

Medium
AWS WAF Classic global rules should have at least one condition

Checks that the AWS WAF Classic global rule has at least one condition. A rule with no conditions inspects nothing, so traffic passes untouched while ...

Medium
AWS WAF Classic global rule groups should have at least one rule

Checks that the AWS WAF Classic global rule group has at least one rule. An empty rule group inspects nothing, so traffic passes untouched while a nam...

Medium
AWS WAF Classic global web ACLs should have at least one rule or rule group

Checks that the AWS WAF Classic global web ACL has at least one rule or rule group. Without one, every request to its CloudFront distributions gets th...

Medium
AWS WAF web ACLs should have at least one rule or rule group

Checks that the AWS WAF web ACL (regional or CloudFront scope) has at least one rule or rule group. An empty web ACL sends every request to its defaul...

Low
AWS WAF web ACL logging should be enabled

Checks that logging is enabled for the AWS WAF web ACL (WAFv2, regional or CloudFront scope). Logs record each request the web ACL inspects and the ru...

Medium
AWS WAF rules should have CloudWatch metrics enabled

Checks that CloudWatch metrics are enabled on the AWS WAF rule group and on every rule in it; it passes only when all of them are on. Without metrics ...

WorkSpaces

Medium
WorkSpaces user volumes should be encrypted at rest

Checks that a WorkSpace's user volume (D: on Windows, /home on Linux) is encrypted at rest with an AWS KMS key, which also encrypts disk I/O and ...

Medium
WorkSpaces root volumes should be encrypted at rest

Checks that a WorkSpace's root volume (C: on Windows, / on Linux) is encrypted at rest with an AWS KMS key, which also encrypts disk I/O and the ...