Skip to main content

Posture Monitoring Checks

NameOverviewVendorCloud ServiceInputRelated RequirementsRelated ControlsSeverityItem TypesRelated Item TypesActions
Account Does Not Have Auto Scaling GroupsChecks whether an AWS account that has EC2 instances includes at least one Auto Scaling group. This reduces attacker dwell time, increases resiliency, and improves vulnerability management....AWSAccountCSMM v1 WKL-03.21Custom::AWS::Account
Account Does Not Have An Incident Response Admin RoleChecks that an AWS account has at least one full admin role for incident responders to use during critical incidents....AWSAccountThe name of the admin role for incident responders.CSMM v1 IR-04.31Custom::AWS::Account
Account Does Not Have An Incident Response Reader RoleChecks that an AWS account has at least one full read-only role for incident responders to use during critical incidents....AWSAccountThe name of the reader role for incident responders.CSMM v1 IR-03.21Custom::AWS::Account
Most Compute Workloads Are Not Serverless or AutoscaledMost compute workloads, including instances and containers, are autoscaled. Autoscaling is a cloud-native architectural pattern that increases resliency of running workloads. Autoscaling can be i...AWSAccountCSMM v1 BCR-04.12Custom::AWS::Account
Accounts Are Not Used To Manage Blast RadiusMultiple accounts should be used within a hierarchical structure (multiple OUs) to reduce the impact of security issues within any single account....AWSAccountCSMM v1 ORM-04.12Custom::AWS::Account
Service Control Policies Are Not Adequately Used Within AWS OrganizationsService Control Policies (SCPs) are essential for centrally managing permissions across all accounts in your organization, acting as guardrails that limit the actions administrators can delegate to IA...AWSAccountCSMM v1 ORM-04.22Custom::AWS::Account
Macie Is Not EnabledChecks that an AWS account has AWS Macie enabled....AWSAccountCSMM v1 DAT-05.11Custom::AWS::Account
Account Does Not Have Properly Configured Service Control PoliciesChecks whether the following conditions are met: * An SCP for the account exists and denies certain regions * An SCP for the account exists and denies more than 3 services ...AWSAccountCSMM v1 CA-04.22Custom::AWS::Account
Account Does Not Have Sufficient Security Sources EnabledChecks that more than 3 of the following security sources are enabled: * S3 data events * Lambda data events * Security Hub * Access Analyzer * VPC Flow Logs * Config * Security Lake * AWS WAF Log...AWSAccountCSMM v1 LOG-04.11Custom::AWS::Account
Identity Provider Is Not In UseThis is an informational check that determines if any identity providers are in use. This information is used in CSMM controls....AWSAccountCSMM v1 IAM-02.21Custom::AWS::AccountCustom::AWS::IAM::IdentityCenter, AWS::IAM::OIDCProvider, AWS::IAM::SAMLProvider
Fault Injection Simulator Is Not Used In AccountThis check determines if FIS is in use in an account to provide continuous security monitoring against malicious or unauthorized activity. Enabling FIS enhances threat detection and helps safeguard AW...AWSFISCSMM v1 BCR-05.21Custom::AWS::AccountAWS::Fis::Experiment
ACM Certificate Pending ValidationThere is an SSL/TLS certificate present that is in renewal state "Pending Validation." This condition arises when the ACM service has not yet been able to validate one or more domain names in the cert...AWSACM2AWS::CertificateManager::Certificate
ACM Certificate Has Transparency Logs DisabledACM Certificate Transparency logging is required by Google Chrome and other browsers. Although enabled by default, it can be disabled on a per-certificate basis. This could be problematic for certi...AWSACM3AWS::CertificateManager::Certificate
ACM Certificate To Expire In Specific Days Or LessAmazon Certificate Manager certificates may expire without active intervention. This could potentially break existing application and service functionality. This finding will trigger 1 week before ...AWSACMACM.14AWS::CertificateManager::Certificate
ACM Managed RSA Certificate Does Not Use Key Bit Length Of 2048 Or LargerThis check evaluates AWS Certificate Manager-managed RSA certificates to ensure that their key length is a minimum of 2,048 bits. Failure of the control occurs when the key length falls below the 2...AWSACM4AWS::CertificateManager::Certificate
API Gateway API Key Needs to Be RotatedChanging API Gateway API keys on a regular schedule is a well-known security best practice because it shortens the period an access key is active and therefore reduces the business impact if it is com...AWSAPI GatewayMax API key age in days3AWS::ApiGateway::ApiKey
API Gateway Endpoint is PublicChecks if API Gateway endpoint configuration is private or not. API Gateway endpoints should only be accessible over the Internet if required. API endpoints are a common attack vector and, genera...AWSAPI Gateway3AWS::ApiGateway::RestApi
API Gateway Client Certificate is DisabledChecks whether the API Gateway Stage has client certificates enabled for accessing your backend endpoint. API Gateways support the use of client certificates for specific APIs and stages. These a...AWSAPI GatewayAPIGateway.23AWS::ApiGateway::RestApi
API Gateway Logging is DisabledCheck if API Gateway Stage has logging enabled. API Gateway supports both execution and access logging. Without logging enabling, service usage monitoring becomes impossible. To achieve real-tim...AWSAPI GatewayAPIGateway.13AWS::ApiGateway::RestApi
API Gateway Authorizer is not EnabledAn API Gateway without an authorizer allows connections to potentially trigger any of the supported APIs. Unless other API authorization techniques are used behind the API Gateway this could allow ...AWSAPI Gateway3AWS::ApiGateway::RestApi
API Gateway Does Not Have WAF ACL AttachedChecks if API Gateway Stage has a WAF ACL attached. Amazon supports protecting API Gateways with the AWS WAF. This is especially important for Internet-accessible API endpoints. However, you may ...AWSAPI GatewayAPIGateway.4, CSMM v1 APP-03.33AWS::ApiGateway::RestApi
API Gateway REST API Stage Does Not Have X-Ray Tracing EnabledThis check assesses whether active tracing with AWS X-Ray is turned on for the stages within your Amazon API Gateway REST API. Enabling X-Ray active tracing allows for a quicker response to fluctua...AWSAPI GatewayAPIGateway.33AWS::ApiGateway::RestApi
API Gateway REST API Cache Data Is Not EncryptedThis checks whether all methods in API Gateway REST API stages that have cache enabled are encrypted. The check fails if any method in an API Gateway REST API stage is configured to cache and the cach...AWSAPI GatewayAPIGateway.53AWS::ApiGateway::RestApi
API Gateway V2 Does Not Have Access Logging EnabledThis check verifies whether access logging is configured for stages within Amazon API Gateway V2. The control reports a failure if access log settings are not defined. Access logs in API Gateway...AWSAPI Gateway V2APIGateway.93AWS::ApiGatewayV2::Api
Athena Data Catalog Is Not TaggedThis check ensures that an AWS Athena DataCatalog has tags with the specific keys defined in the parameter Required Tag Keys. The control fails if the DataCatalog doesn't have any tag keys or if it ...AWSAthenaRequired Tag KeysAthena.23AWS::Athena::DataCatalog
Athena Workgroup Is Not Encrypted At RestUPDATE: Security Hub retired this control and removed it from all standards. Athena workgroups send logs to Amazon Simple Storage Service (Amazon S3) buckets. Amazon S3 now provides default encryption...AWSAthena1AWS::Athena::WorkGroup
Athena Workgroup Configuration Is Not EnforcedThis Athena WorkGroup does not enforce the workgroup configuration, so it can be overridden by the client-side settings....AWSAthena3AWS::Athena::WorkGroup
Athena WorkGroup Does Not Have CloudWatch Logging EnabledEnabling logging for a workgroup provides valuable insights into query activity, including user actions, query execution details, and potential security events. Without logging enabled, it can be diff...AWSAthenaAthena.43AWS::Athena::WorkGroup
Athena WorkGroup Is Not TaggedThis check ensures that an AWS Athena WorkGroup has tags with the specific keys defined in the parameter Required Tag Keys. The control fails if the WorkGroup doesn't have any tag keys or if it does...AWSAthenaRequired Tag KeysAthena.33AWS::Athena::WorkGroup
ELB Healthcheck not Enabled for Auto Scaling GroupElastic Load Balancing automatically distributes your incoming application traffic across your EC2 instances. ELBs (and classic load balancers) can be attached to your Auto Scaling group. By default...AWSAuto ScalingPCI DSS 2.2AutoScaling.11AWS::AutoScaling::AutoScalingGroup
Auto Scaling Group Does Not Cover Multiple Availability ZonesThis check assesses whether an Auto Scaling group extends across various Availability Zones. The assessment results in failure if the Auto Scaling group lacks presence in multiple Availability Zone...AWSAuto ScalingCSMM v1 BCR-02.1, AutoScaling.23AWS::AutoScaling::AutoScalingGroup
Auto Scaling Group Launch Configuration Does Not Require IMDSv2His oversight verifies the activation status of IMDSv2 on every instance initiated through Amazon EC2 Auto Scaling groups. The verification is unsuccessful if the launch configuration lacks the Ins...AWSAuto ScalingAutoScaling.34AWS::AutoScaling::LaunchConfiguration
Auto Scaling Group Launch Configuration Has Metadata Response Hop Limit Greater Than 1.UPDATE: Security Hub retired this control and removed it from all standards. Metadata response hop limits for Amazon Elastic Compute Cloud (Amazon EC2) instances are workload dependent. This con...AWSAuto Scaling1AWS::AutoScaling::LaunchConfiguration
Auto Scaling Group Does Not Use EC2 Launch TemplateThis check assesses whether an Amazon EC2 Auto Scaling group has been generated using an EC2 launch template. The check does not pass if an Amazon EC2 Auto Scaling group is formed without a launch ...AWSAuto ScalingAutoScaling.93AWS::AutoScaling::AutoScalingGroup
Auto Scaling Group Does Not Use Multiple Instance Types Across Multiple AZsThis check verifies if an Amazon EC2 Auto Scaling group employs diverse instance types. The check does not pass if the Auto Scaling group is configured with only a single instance type. Boosting...AWSAuto ScalingAutoScaling.63AWS::AutoScaling::AutoScalingGroup
Auto Scaling Group Launch Configuration Has Public IP AddressThis control checks whether an Auto Scaling group's associated launch configuration assigns a public IP address to the group's instances. Amazon EC2 instances in an Auto Scaling group launch configura...AWSAuto ScalingAutoscaling.54AWS::AutoScaling::LaunchConfiguration
Backup Plan Does Not Copy Vaults Cross-RegionChecks thats an AWS Backup Plan includes a rule that copies the vault to a different region for resilience....AWSBackupCSMM v1 BCR-04.31AWS::Backup::BackupPlan
CloudFormation Stack Does Not Have Termination Protection EnabledEnable termination protection for CloudFormation stacks to prevent accidental deletion of critical resources. Termination protection acts as a safeguard, ensuring that essential stacks are not m...AWSCloudFormation3AWS::CloudFormation::Stack
CloudFormation Stack Is Not Integrated With SNSUPDATE: Per AWS, Integrating AWS CloudFormation stacks with Amazon SNS topics is no longer a security best practice. This check assesses the presence of an Amazon Simple Notification Service (SNS...AWSCloudFormation1AWS::CloudFormation::Stack
CloudFront Distribution Does Not Have Field-Level Encryption EnabledEnsure that CloudFront distributions have Field Level Encryption (FLE) enabled, which enables you to safeguard specific data during system processing, granting access only to authorized application...AWSCloudFrontCloudFront.32AWS::CloudFront::Distribution
CloudFront Distribution Does Not Have Geo-Restrictions EnabledVerify whether Geo restrictions are enabled in CloudFront distributions. These restrictions are essential to comply with legal or regulatory requirements that mandate service access limitations in ...AWSCloudFront2AWS::CloudFront::Distribution
CloudFront Distribution Does Not Have HTTPS EnabledEnsure that CloudFront distributions are configured to use HTTPS. Failure to enable HTTPS can lead to the exposure of sensitive information during transit, posing risks such as surveillance and oth...AWSCloudFrontCloudFront.83AWS::CloudFront::Distribution
CloudFront Distribution Does Not Have Logging EnabledChecks whether logging is enabled for CloudFront distributions. If logging is not enabled, monitoring the usage of the service becomes impossible. To achieve real-time monitoring, you can direct Cl...AWSCloudFrontCloudFront.53AWS::CloudFront::Distribution
CloudFront Distribution Is Using Deprecated SSLThis check examines if CloudFront distributions are employing outdated SSL protocols, which might compromise the security of data during transmission. It's advisable to adopt a security policy t...AWSCloudFrontCloudFront.102AWS::CloudFront::Distribution
CloudFront Distribution Is Not Using WAFCheck whether CloudFront distributions are utilizing AWS WAF. The presence of potential attacks or misuse of the service becomes more pronounced, especially for internet-facing applications. Employ...AWSCloudFrontCSMM v1 APP-03.3, CloudFront.63AWS::CloudFront::Distribution
CloudFront Distribution Has Origin Access Control EnabledThis check verifies the presence of origin access control (OAC) in an Amazon CloudFront distribution linked to an Amazon S3 origin. Failure occurs if OAC is not configured for the CloudFront distribut...AWSCloudFront3AWS::CloudFront::Distribution
CloudFront Distribution Does Not Use Custom SSL CertificatesThis assessment examines whether CloudFront distributions employ CloudFront's provided default SSL/TLS certificate. The assessment succeeds if a custom SSL/TLS certificate is utilized by the CloudFron...AWSCloudFrontCloudFront.73AWS::CloudFront::Distribution
CloudFront Distribution Does Not Have Origin Failover ConfiguredThis check verifies the presence of an origin group in an Amazon CloudFront distribution that comprises a minimum of two origins. The utilization of CloudFront origin failover can enhance availabil...AWSCloudFrontCloudFront.42AWS::CloudFront::Distribution
CloudFront Distribution Does Not Have Default Root Object ConfiguredThis check examines whether an Amazon CloudFront distribution is set up to deliver a particular object as the default root object. The evaluation is unsuccessful if the CloudFront distribution lacks a...AWSCloudFrontCloudFront.15AWS::CloudFront::Distribution
CloudFront Distribution Points to Non-existent S3 OriginThis check validates whether Amazon CloudFront distributions are associated with Amazon S3 origins that do not exist. If a CloudFront distribution is configured to direct to a non-existent bucket, thi...AWSCloudFrontCloudFront.124AWS::CloudFront::Distribution
CloudFront Distribution Does Not Encrypt Traffic to Custom OriginsThis check verifies whether Amazon CloudFront distributions are applying encryption to traffic directed towards custom origins. The assessment result is considered a failure for a CloudFront distri...AWSCloudFrontCloudFront.93AWS::CloudFront::Distribution
Log Metric Filter and Alarm Do Not Exist for CloudTrail Configuration ChangesReal-time monitoring of CloudTrail configuration changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring CloudTrail...AWSCloudTrailCIS AWS v1.5.0 4.5, CIS3.AWS.4.51Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for AWS Management Console Authentication FailuresReal-time monitoring of AWS Management Console authentication failures can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitor...AWSCloudTrailCIS AWS v1.5.0 4.6, CIS3.AWS.4.61Custom::AWS::Account
Log Metric Filter and Alarm Do Not Exist for Disabling or Scheduled Deletion of Customer Created CMKsReal-time monitoring of disabling or scheduled deletion of customer created CMKs can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarm...AWSCloudTrailCIS AWS v1.5.0 4.7, CIS3.AWS.4.71Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for IAM Policy ChangesReal-time monitoring of IAM policy changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring IAM policy changes will ...AWSCloudTrailCIS AWS v1.5.0 4.4, CIS3.AWS.4.41Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for Usage of Root AccountReal-time monitoring of usage of root account can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring usage of root account...AWSCloudTrailCIS AWS v1.5.0 4.3, CIS3.AWS.4.31Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for Management Console Sign-in Without MFAReal-time monitoring of Management Console sign-in without MFA can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring Mana...AWSCloudTrailCIS AWS v1.5.0 4.2, CIS AWS v1.5.0 4.21Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for Unauthorized API CallsReal-time monitoring of unauthorized API calls can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring unauthorized API cal...AWSCloudTrailCIS AWS v1.5.0 4.1, CIS3.AWS.4.11Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for S3 Bucket Policy ChangesReal-time monitoring of S3 bucket policy changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring S3 bucket policy c...AWSCloudTrailCIS AWS v1.5.0 4.8, CIS3.AWS.4.81Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for AWS Config ChangesReal-time monitoring of AWS Config changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring AWS Config changes will ...AWSCloudTrailCIS AWS v1.5.0 4.9, CIS3.AWS.4.91Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for Security Group ChangesReal-time monitoring of security group changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring security group chang...AWSCloudTrailCIS AWS v1.5.0 4.10, CIS3.AWS.4.101Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for Network Access Control List ChangesReal-time monitoring of NACL changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring NACL changes will help reveal ...AWSCloudTrailCIS AWS v1.5.0 4.11, CIS3.AWS.4.111Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for Network Gateway ChangesReal-time monitoring of Network Gateway changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring Network Gateway cha...AWSCloudTrailCIS AWS v1.5.0 4.12, CIS3.AWS.4.121Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for Route Table ChangesReal-time monitoring of route table changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring route table changes wil...AWSCloudTrailCIS AWS v1.5.0 4.13, CIS3.AWS.4.131Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for VPC ChangesReal-time monitoring of VPC changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring VPC changes will help reveal ap...AWSCloudTrailCIS AWS v1.5.0 4.14, CIS3.AWS.4.141Custom::AWS::AccountAWS::CloudTrail::Trail
Log Metric Filter and Alarm Do Not Exist for AWS Organizations ChangesReal-time monitoring of AWS Organizations changes can be achieved by directing CloudTrail Logs to CloudWatch Logs and establishing corresponding metric filters and alarms. Monitoring AWS Organizations...AWSCloudTrailCIS AWS v1.5.0 4.15, CIS3.AWS.4.151Custom::AWS::AccountAWS::CloudTrail::Trail
CloudTrail Does Not Track All API Activity In All RegionsAn AWS account should contain at least one CloudTrail Trail that meets the following requirements: - Logging enabled - Multi-region enabled - Records all API Activity (i.e. Read and Write Managemen...AWSCloudTrailCIS AWS v1.5.0 3.1, CSMM v1 LOG-03.1, CloudTrail.14Custom::AWS::AccountAWS::CloudTrail::Trail
CloudTrail Trail Insights ExistCloudTrail Insights provides a powerful way to search and analyze CloudTrail log data using pre-built queries and machine learning algorithms. This can help you to identify potential security th...AWSCloudTrail1AWS::CloudTrail::Trail
CloudTrail Trail Log File Integrity Validation Not EnabledCloudTrail log file validation creates a digitally signed digest file containing a hash of each log that CloudTrail writes to S3. These digest files can be used to determine whether a log file was cha...AWSCloudTrailCIS AWS v1.5.0 3.2, CloudTrail.43AWS::CloudTrail::Trail
CloudTrail Trail Not Sending Events to CloudWatch LogsAWS CloudTrail is a web service that records AWS API calls made in a given AWS account. The recorded information includes the identity of the API caller, the time of the API call, the source IP addres...AWSCloudTrailCIS AWS v1.5.0 3.4, CSMM v1 LOG-02.1, CloudTrail.51AWS::CloudTrail::Trail
S3 Bucket for CloudTrail Logs Is PublicCloudTrail logs a record of every API call made in your AWS account. These logs file are stored in an S3 bucket. It is recommended that the bucket policy or access control list (ACL) applied to the S3...AWSCloudTrailCIS AWS v1.5.0 3.34AWS::CloudTrail::Trail
CloudTrail Logs Are Not Encrypted With a Customer Managed Key From KMSNote that although this is a common compliance requirement, it is not always recommended when you need to send logs to an external provider. AWS CloudTrail is a web service that records AWS API calls ...AWSCloudTrailCIS AWS v1.5.0 3.7, CloudTrail.22AWS::CloudTrail::Trail
CloudTrail Log Storage Bucket Does Not Have Access Logging EnabledS3 Bucket Access Logging generates a log that contains access records for each request made to your S3 bucket. An access log record contains details about the request, such as the request type, the re...AWSCloudTrailCIS AWS v1.5.0 3.6, CloudTrail.72AWS::CloudTrail::Trail
CloudTrail Trails Do Not Send Logs To Centralized S3 BucketThis check verifies that one of the AWS CloudTrail trails in this account is configured to send logs to a specified centralized S3 bucket. Centralizing CloudTrail logs is essential for security, troub...AWSCloudTrailS3 Buckets for CloudTrail LogsCSMM v1 LOG-03.11Custom::AWS::AccountAWS::CloudTrail::Trail
CloudWatch Allows Cross-Account SharingCheck if CloudWatch permits cross-account sharing. Allowing Cross-Account access to CloudWatch may heighten the risk of exposing sensitive information across accounts. To adhere to the principle...AWSIAM3AWS::IAM::Role
CloudWatch Log Group Is Not Protected By AWS KMSVerify whether CloudWatch log groups are secured with AWS Key Management Service (KMS). Utilizing customer-managed KMS encryption for CloudWatch log groups offers enhanced confidentiality and...AWSCloudWatch3AWS::Logs::LogGroup
CloudWatch Log Group Has Retention Policy of Specific DaysEnsure that CloudWatch Log Groups possess a retention policy of a specific number of days. When log groups have a short retention period of fewer than the specified days, essential logs and v...AWSCloudWatchCloudWatch.163AWS::Logs::LogGroup
CloudWatch Alarm Does Not Have Action Configured For Alarm StateThis check assesses whether CloudWatch alarms have been configured with at least one action for the ALARM state. Failure of this control occurs when an alarm lacks an activated action for the ALARM...AWSCloudWatchCloudWatch.154AWS::CloudWatch::Alarm
CloudWatch Alarm Actions Is Not EnabledThis check verifies whether CloudWatch alarm actions have been enabled (ActionEnabled set to true). Failure of the control occurs when an alarm action associated with a CloudWatch alarm is disabled...AWSCloudWatchCloudWatch.174AWS::CloudWatch::Alarm
CodeBuild Project Source Repository URL Does Not Use OAuthThis check process examines whether the GitHub or Bitbucket source repository URL includes personal access tokens or a combination of a username and password. Storing or transmitting sign-in cre...AWSCodeBuildPCI DSS v3.2.1/8.2.1CodeBuild.15AWS::CodeBuild::Project
CodeBuild Project Environment Does Not Have Logging ConfiguredThis check examines if a CodeBuild project environment includes a minimum of one activated logging option, such as S3 or CloudWatch logs. The check results in failure if the CodeBuild project envir...AWSCodeBuildCodeBuild.43AWS::CodeBuild::Project
CodeBuild Project Has Privileged Mode EnabledUPDATE: Security Hub retired this control and removed it from all standards. Enabling privileged mode in a CodeBuild project does not impose an additional risk to the customer environment This ch...AWSCodeBuild1AWS::CodeBuild::Project
CodeBuild Project S3 Logs Are Not EncryptedThis check ensures S3 logs for an AWS CodeBuild project are encrypted. Encrypting data while it is stored is a widely advised security measure that fortifies access management for your informat...AWSCode BuildCodeBuild.32AWS::CodeBuild::Project
CodeBuild Project Contains Clear Text CredentialsThis check ensures that the project does not contain the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. These credentials should never be stored in clear-text, as it could ...AWSCodeBuildPCI DSS v3.2.1/8.2.1CodeBuild.25AWS::CodeBuild::Project
AWS Config Service Is Not ConfiguredWARNING: although required in many cases for compliance, Config can dramatically increase your AWS costs for an account. AWS Config is a web service that performs configuration management of supp...AWSConfigCIS AWS v1.5.0 3.5, Config.12Custom::AWS::RegionAWS::Config::ConfigurationRecorder
DynamoDB Table Is Not ReplicatedChecks that a DynamoDB table is replicated to at least one other region....AWSDynamoDBCSMM v1 BCR-04.31AWS::DynamoDB::Table
DynamoDB Table Does Not Have Encryption At Rest Enabled Using CMK KMSCheck if encryption at rest with a KMS customer managed key (CMK) is enabled for the DynamoDB table. All user data stored in Amazon DynamoDB is entirely secured when it is not in active use. This feat...AWSDynamoDB3AWS::DynamoDB::Table
DynamoDB Table Does Not Have Point-In-Time Recovery EnabledThis check assesses the activation status of point-in-time recovery (PITR) for an Amazon DynamoDB table. Enabling backups plays a crucial role in expediting recovery from security incidents and f...AWSDynamoDBDynamoDB.23AWS::DynamoDB::Table
DynamoDB Accelerator Cluster Is Not Encrypted At RestThis check verifies if a DAX cluster encrypts data at rest, enhancing security by limiting access to authenticated AWS users. Encryption requires specific API permissions for data decryption before re...AWSDAXDynamoDB.33AWS::DAX::Cluster
DynamoDB Table is PublicThis check helps ensure DynamoDB tables are secure by verifying they're not openly accessible when using DynamoDB's resource-based policies for fine-grained access control....AWSDynamoDB4AWS::DynamoDB::Table
EC2 Instance Exposes an Administrative Port to InternetThis EC2 instance exposes a port commonly used for system administration to all IP addresses (0.0.0.0/0) on the internet. If SSH, RDP, or a similar service is running on the instance, an attacker cou...AWSEC2Ports5AWS::EC2::InstanceAWS::EC2::SecurityGroup, AWS::EC2::RouteTableRemove Failed Security Groups
AMI Is PublicAn Amazon Machine Image is public. This could result in a data exposure and is also a common exfiltration technique in attacks. AMIs that are not properly created may contain sensitive information, cr...AWSEC25AWS::EC2::ImageSet AMI to Private
AMI Is Shared ExternallyAn Amazon Machine Image (AMI) is shared with untrusted AWS accounts (i.e. accounts not known to Cloud Defense). This could indicate a data exposure if the sharing is not intended....AWSEC2Trust All Known Accounts, Trusted AWS Account IDs3AWS::EC2::ImageRevoke Access to Untrusted Accounts
Autoscaled Instance Has SSH/RDP Ports EnabledThis check ensures that EC2 instances in an Auto Scaling group do not have SSH or RDP ports open. Open SSH or RDP ports expose instances to potential unauthorized access and malicious activities. By l...AWSEC2CSMM v1 WKL-05.11AWS::EC2::InstanceAWS::AutoScaling::AutoScalingGroup, AWS::EC2::SecurityGroup
Default EC2 Security Group Allows AccessA default security group for a VPC allows ingress and/or egress access. The default security group is applied to any resource in a VPC that is not explicitly assigned a security group on creation (typ...AWSEC2CIS AWS v1.5.0 5.4, EC2.23AWS::EC2::SecurityGroup
EBS Default Encryption DisabledElastic Compute Cloud (EC2) supports encryption at rest when using the Elastic Block Store (EBS) service. While each EBS volume's encryption can be configured individually, there is also a per-region ...AWSEC2CIS AWS v1.5.0 2.2.1, CSMM v1 DAT-02.2, EC2.72Custom::AWS::RegionEnable EBS Encryption By Default
EBS Snapshot Is Publicly AccessibleA snapshot of an EBS storage volume should not allow public access. Public EBS snapshots could result in a data exposure and is also a common exfiltration technique in attacks....AWSEC2EC2.15AWS::EC2::Snapshot
EBS Snapshot Is Not EncryptedThis check verifies if EC2 Elastic Block Store (EBS) snapshots are encrypted. Unencrypted snapshots may expose sensitive data to unauthorized users, leading to potential data breaches or compliance vi...AWSEC24AWS::EC2::Snapshot
Elastic IP Is Not In UseThis Elastic IP is not associated with any resources and may be able to be released to reduce cost....AWSEC2EC2.121AWS::EC2::EIPRelease IP Address
EC2 Security Group Has Excessive Host RulesThere are multiple ways security groups can have overly-broad permissions that lead to increased security risks. A large number of rules, especially /32 rules, often indicate developers or administra...AWSEC2Maximum host rules2AWS::EC2::SecurityGroup
Instances Are Assessed For Vulnerabilities By InspectorThis check ensures the security of your instances by confirming that they undergo regular vulnerability assessments conducted by Amazon Inspector. By routinely assessing instances, you can proactively...AWSEC2CSMM v1 WKL-02.2, CSMM v1 WKL-04.42AWS::EC2::InstanceCustom::AWS::InspectorV2::CoveredResource
EC2 Instance Does Not Have Recent SnapshotThis check assesses if an EC2 instance has a recent snapshot taken within the last 30 days. Having a recent snapshot is important for ensuring data recoverability and resilience, particularly for inst...AWSEC2CSMM v1 BCR-03.12AWS::EC2::Instance
EC2 Instance IMDSV2 Is Not EnabledChecks if EC2 Instance Metadata Service Version 2 (IMDSv2) is enabled and required. Using IMDSv2 will protect from misconfigurations and SSRF vulnerabilities. IMDSv1 will not....AWSEC2EC2.82AWS::EC2::Instance
Instance Is Not In An Auto Scaling GroupThis check ensures that EC2 instances are in an Auto Scaling group. Auto Scaling groups ensure that EC2 instances are automatically replaced if they become unhealthy or are terminated. This not only e...AWSEC2CSMM v1 WKL-05.11AWS::EC2::Instance
EC2 Instance Uses Multiple ENIsThis control examines whether an EC2 instance utilizes multiple Elastic Network Interfaces (ENIs) or Elastic Fabric Adapters (EFAs). It succeeds when a single network adapter is in use. An optional pa...AWSEC2EC2.172AWS::EC2::Instance
EC2 Instance Is Older Than Specific DaysChecks if an EC2 instance is older than the specified number of days. Older instances can potentially pose a security risk if they are not updated or patched regularly....AWSEC2Max Age (days)CSMM v1 WKL-03.33AWS::EC2::Instance
EC2 Instance has a Public IP AddressCheck to see if an instance has a public IP address (of any type) attached. Instances should not be assigned a public IP address since this potentially exposes them directly to the Internet....AWSEC2CSMM v1 NET-03.1, EC2.93AWS::EC2::Instance
EC2 Instance Is Not Managed By Systems ManagerThis checks whether the stopped and running EC2 instances in your account are managed by AWS Systems Manager. Systems Manager is an AWS service that you can use to view and control your AWS infrastruc...AWSEC2CSMM v1 WKL-02.1, SSM.13AWS::EC2::Instance
EC2 Instance Does Not Have an IAM Role AssignedEC2 Instances that perform IAM actions should have a role assigned that is used to perform those actions...AWSEC2CIS AWS v1.5.0 1.18, CIS3.AWS.1.183AWS::EC2::Instance
EC2 Instance Is Internet Facing With Instance ProfileChecks if an EC2 instance is internet-facing and has an instance profile, a configuration that might lead to unauthorized access or exposure of sensitive information. If an EC2 instance is publi...AWSEC22AWS::EC2::Instance
EC2 Instance Has Security Group That Would Expose an Administrative Port to InternetThis EC2 instance does not currently have a public IP address assigned, but it has a security group that will expose an ...AWSEC2Ports, Known CIDRs3AWS::EC2::InstanceAWS::EC2::SecurityGroup
NACL Allows Unrestricted Access To Admin PortsThe Network Access Control List (NACL) function provide stateless filtering of ingress and egress network traffic to AWS resources. It is recommended that no NACL allows unrestricted ingress access to...AWSEC2Admin portsCIS AWS v1.5.0 5.1, EC2.213AWS::EC2::NetworkAcl
Unused NACL Is Not RemovedThis control assesses the presence of unused network access control lists (ACLs). It examines the configuration of the AWS::EC2::NetworkAcl resource, analyzing the relationships associated with the...AWSEC2EC2.162AWS::EC2::NetworkAcl
EC2 Instance Type Is ParavirtualThis control verifies if an EC2 instance is paravirtual. It fails if the instance's virtualizationType is set to paravirtual. Linux Amazon Machine Images (AMIs) use either paravirtual (PV) or har...AWSEC2EC2.243AWS::EC2::Instance
Route Table Trusts Overly Broad IP RangeEnsuring that route tables have appropriately restrictive rules is a key aspect of implementing a Minimum Viable Network. This check identifies route tables that trust subnets with a prefix length sma...AWSEC2CSMM v1 NET-04.23AWS::EC2::RouteTable
Security Group Allows Ingress From 0.0.0.0/0 to Remote Server Administration PortsSecurity groups provide stateful filtering of ingress and egress network traffic to AWS resources. It is recommended that no security group allows unrestricted ingress access to remote server administ...AWSEC2PortsCIS AWS v1.5.0 5.2, EC2.13, EC2.14, EC2.533AWS::EC2::SecurityGroup
Security Group Allows Ingress From ::/0 to Remote Server Administration PortsSecurity groups provide stateful filtering of ingress and egress network traffic to AWS resources. It is recommended that no security group allows unrestricted ingress access to remote server administ...AWSEC2PortsCIS AWS v1.5.0 5.3, EC2.543AWS::EC2::SecurityGroup
Security Group is Created From EC2 Launch WizardChecks if security group name is launch-wizard. Security Groups Created on the AWS Console using the EC2 wizard may allow port 22 from 0.0.0.0/0. ...AWSEC23AWS::EC2::SecurityGroup
Security Group Allows Excessive Inbound Port RangesChecks that the security group allows no more than five (5) TCP or UDP ports. You should minimize potential attack paths by using tightly scoped security group rules, even on non-Internet facing reso...AWSEC2CSMM v1 NET-03.22AWS::EC2::SecurityGroup
EC2 Security Group Is Not UsedEnsures there are no Security Groups not being used....AWSEC2EC2.222AWS::EC2::SecurityGroup
Security Group Rule Allows Ingress From 0.0.0.0/0 or ::/0 to a Wide Port RangeSecurity groups provide stateful filtering of ingress and egress network traffic to AWS resources. Security Group Rules configured with a wide port range can indicate that network access is over-provi...AWSEC2Port Width3AWS::EC2::SecurityGroup
Security Group Allows Unrestricted Incoming Traffic For Unauthorized PortsChecks whether an Amazon EC2 security group permits unrestricted incoming traffic from unauthorized ports. The result is determined as follows: If you use the default value for authorizedTcpPorts, th...AWSEC2Authorized TCP Ports, Authorized UDP PortsNIST.800-53.r5 AC-4, NIST.800-53.r5 AC-4(21), NIST.800-53.r5 SC-7, NIST.800-53.r5 SC-7(11), NIST.800-53.r5 SC-7(16), NIST.800-53.r5 SC-7(21), NIST.800-53.r5 SC-7(4), NIST.800-53.r5 SC-7(5)EC2.184AWS::EC2::SecurityGroup
Security Group Allows Unrestricted Access To Ports With High RiskChecks whether unrestricted incoming traffic for an Amazon EC2 security group is accessible to the specified ports that are considered to be high risk. This check fails if any of the rules in a secur...AWSEC2NIST.800-53.r5 AC-4, NIST.800-53.r5 AC-4(21), NIST.800-53.r5 CA-9(1), NIST.800-53.r5 CM-2, NIST.800-53.r5 CM-2(2), NIST.800-53.r5 CM-7, NIST.800-53.r5 SC-7, NIST.800-53.r5 SC-7(11), NIST.800-53.r5 SC-7(16), NIST.800-53.r5 SC-7(21), NIST.800-53.r5 SC-7(4), NIST.800-53.r5 SC-7(5)EC2.195AWS::EC2::SecurityGroup
EC2 Security Group References ItselfDetects security groups with rules that are self-referencing and contain a wide port range. This can pose a security risk. If not needed, the rules should be revoked or restricted....AWSEC2Maximum number of self-referencing ports per security group3AWS::EC2::SecurityGroupRevoke Security Group Rules
Sensitive Ports are Exposed To InternetChecks if instance was found to be exposed to the internet, by ensuring no security groups allow ingress from 0.0.0.0/0 or ::/0 or other Internet-accessible CIDR ranges, to the following ports: - ...AWSEC2PortsCSMM v1 NET-02.14AWS::EC2::InstanceAWS::EC2::SecurityGroupRemove Failed Security Groups
Sensitive Ports On Windows System Exposed To InternetA Windows-based instance was identified that exposes sensitive ports to the Internet. These include: Port 3389, which is used for remote administration Ports 445, 139, 137, and 138 which are used...AWSEC2Ports5AWS::EC2::InstanceAWS::EC2::SecurityGroupRemove Failed Security Groups
EC2 Transit Gateway Automatically Accept VPC Attachment RequestsThis check verifies if EC2 transit gateways automatically accept shared VPC attachments, failing if they do. Enabling AutoAcceptSharedAttachments allows automatic approval of cross-account VPC a...AWSEC2EC2.234AWS::EC2::TransitGateway
Transit Gateway Flow Logs Are Not EnabledTransit Gateway Flow Logs provide visibility into the IP traffic flowing through your transit gateway. You can use this information to troubleshoot connectivity issues, investigate security and networ...AWSEC2CSMM v1 NET-04.23AWS::EC2::TransitGatewayAWS::EC2::FlowLog
EBS Volume is not EncryptedElastic Block Store (EBS) volumes can be configured to be encrypted by default, proving encryption at rest and in transit. Customer Master Keys (CMKs) are used to perform EBS volume encryption. The ...AWSEC21AWS::EC2::Volume
VPC is Missing a VPC EndpointThis check ensures each VPC has an Amazon EC2 service endpoint; failure occurs if one is absent. The assessment is limited to resources within a single AWS account. Due to AWS Config and Securit...AWSEC2EC2.103AWS::EC2::VPC
VPC Has Excessive SubnetsImplementing a Minimum Viable Network (MVN) is crucial for reducing the attack surface and improving the security posture of cloud infrastructure. This check identifies VPCs that have more than 20 sub...AWSEC2CSMM v1 NET-04.22AWS::EC2::VPCAWS::EC2::Subnet
VPC Does Not Have Flow LogNote: Although VPC flow logs are required in every VPC in some compliance standards, like CIS, this is not always recommended. FireMon suggests enabling VPC Flow Logs based on the risk assessment of t...AWSEC2CIS AWS v1.5.0 3.9, EC2.61AWS::EC2::VPC
VPC Route Table Has Excessive PrivilegesIn cloud networking the best practice is to create a Minimum Viable Network that consists only of the routes and security group rules to support application/project functionality. This typically mea...AWSEC2CSMM v1 NET-04.22AWS::EC2::VpcPeeringConnection
VPC Subnet Automatically Assigns IP AddressesWhen this is enabled, all new resources in the subnet will be assigned a public IP address when created. This could result in inadvertent Internet exposure of resources, even when security groups a...AWSEC2EC2.153AWS::EC2::Subnet
VPC Are Not Implemented Using Infrastructure as CodeThis check ensures that VPCs are implemented using Infrastructure as Code (IaC). Implementing VPCs through IaC ensures that the infrastructure is consistently deployed, easily auditable, and can be ve...AWSEC2Stack tagsCSMM v1 NET-04.11AWS::EC2::VPC
ECR Private Repository Does Not Have Image Scanning ConfiguredThis check verifies the presence of image scanning configuration in a private Amazon ECR repository. The check result is unsuccessful if the private ECR repository lacks configuration for either sc...AWSECRECR.14AWS::ECR::Repository
ECR Private Repository Does Not Have Tag Immutability ConfiguredThis control assesses tag immutability in a private Amazon ECR repository. It fails if tag immutability is disabled and succeeds when enabled with the value "IMMUTABLE." Amazon ECR Tag Immuta...AWSECRECR.23AWS::ECR::Repository
ECS Is Not In UseThis is an informational check that determines if ECS is in use. This information is used in CSMM controls....AWSECSCSMM v1 WKL-03.11AWS::ECS::Task
ECS Containers Do Not Run As Non-PrivilegedThis validation assesses whether the "privileged" parameter in the container definition of Amazon ECS Task Definitions is configured as true. The check results in a failure if the parameter is set ...AWSECSECS.44AWS::ECS::TaskDefinition
ECS Task Definitions Share the Host's Process NamespaceThis check examines Amazon ECS task definitions to ensure they do not share the host's process namespace with containers, failing if such sharing is configured. PID namespaces ensure vital isola...AWSECSECS.34AWS::ECS::TaskDefinition
ECS Task Definitions Do Not Have Secure Networking Modes And User DefinitionsThis check examines active Amazon ECS task definitions using host networking mode to detect whether they include container definitions with specific privilege configurations. This control focuse...AWSECSECS.14AWS::ECS::TaskDefinition
ECS Containers Are Not Limited To Read-only Access To Root FilesystemsThis validation examines whether Amazon ECS containers are restricted to read-only access for mounted root filesystems. The check results in a failure if the readonlyRootFilesystem parameter is con...AWSECSECS.54AWS::ECS::TaskDefinition
ECS Task Definitions Do Not Have Logging ConfigurationThis check ensures that the latest active Amazon ECS task definition includes a specified logging configuration. It fails if the task definition lacks the defined logConfiguration property or if th...AWSECS4AWS::ECS::TaskDefinition
ECS Container Contains a Secret in Environment VariablesThis check verifies that the environment variable key in container definitions does not include AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, or ECS_ENGINE_AUTH_DATA. It fails if any container de...AWSECSECS.84AWS::ECS::TaskDefinition
EFS File System Encryption is DisabledData should be encrypted at rest to reduce the risk of a data breach via direct access to the storage device. EFS file system data is encrypted at rest by default when creating a file system via the ...AWSEFSKMS Key ARNCIS AWS v1.5.0 2.4.1, EFS.13AWS::EFS::FileSystem
EFS File System is PublicThis check ensures the EFS filesystem does not have a policy that allows for public access. Public accessibility could lead to exposure of sensitive data to bad actors. ...AWSEFS5AWS::EFS::FileSystem
EFS File System Does Not Have Backup Policy EnabledChecks if EFS File System has backup policy enabled. For both resiliency and to limit the potential for ransomware, EFS should have backups enabled. Failure to enable backups leaves data vuln...AWSEFSEFS.23AWS::EFS::FileSystem
EKS Control Plane Access is Not RestrictedEKS Cluster plane is checked if it has restricted access. Restricted access to the Kubernetes API server should be enabled to ensure API communication stays within our VPC. Endpoint access and access ...AWSEKS3AWS::EKS::Cluster
EKS Control Plane Logging is not Enabled or Correctly ConfiguredMakes sure logging is specifically enabled for EKS Control Plane audit for all log types....AWSEKS3AWS::EKS::Cluster
EKS Endpoint Access is not RestrictedThe EKS cluster endpoint access is checked if it has restricted access. Restricted access ensures all communication with the Kubernetes API is done within our own VPC. Internet access is also disabled...AWSEKSEKS.14AWS::EKS::Cluster
EKS Cluster Are Not Encrypted Using Customer Master Keys (CMKs)This check verifies that Kubernetes Secrets are encrypted using Customer Master Keys (CMKs). Adopting envelope encryption is regarded as a security best practice for applications that store s...AWSEKS3AWS::EKS::Cluster
EKS Is Not In UseThis is an informational check that determines if EKS is in use. This information is used in CSMM controls....AWSEKSCSMM v1 WKL-03.11AWS::EKS::Cluster
EKS Cluster Does Not Run On a Supported Kubernetes Version This check verifies if an Amazon EKS cluster operates on a Kubernetes version that is officially supported. The check results in a failure if the EKS cluster is found to be running on a version that i...AWSEKSEKS.24AWS::EKS::Cluster
ElastiCache for Redis Replication Group Is Not Encrypted At RestThis validation assesses whether ElastiCache for Redis replication groups implement encryption at rest. The check fails if an ElastiCache for Redis replication group lacks encryption at rest. ...AWSElastiCacheElastiCache.43AWS::ElastiCache::ReplicationGroup
ElastiCache for Redis Replication Group Do Not Have Automatic Failover EnabledThis verification examines whether automatic failover is enabled for ElastiCache for Redis replication groups. The check fails if automatic failover is not enabled for a Redis replication group. ...AWSElastiCacheElastiCache.33AWS::ElastiCache::ReplicationGroup
ElastiCache for Redis Replication Group Is Not Encrypted In TransitThis check assesses whether encryption in transit is implemented for ElastiCache for Redis replication groups. The check fails if the replication group lacks encryption in transit. Encrypting da...AWSElastiCacheElastiCache.53AWS::ElastiCache::ReplicationGroup
ElastiCache for Redis Replication Groups Before V6.0 Does Not Use Redis AuthFor ElastiCache Redis replication groups running versions prior to 6.0, this check verifies that Redis AUTH is enabled by confirming the presence of an AuthToken. Redis AUTH requires clients to provid...AWSElastiCacheElastiCache.63AWS::ElastiCache::ReplicationGroup
Elastic Load Balancer Is Internet FacingThis checks for internet facing Elastic Load Balancers as publicly accessible load balancers could expose sensitive data to bad actors....AWSELB3AWS::ElasticLoadBalancing::LoadBalancer
Elastic Load Balancer Does Not Have Logging EnabledCheck whether Elastic Load Balancers (ELBs) have logging functionality enabled. Without logging, it becomes impossible to monitor service utilization and perform threat analysis. It is advisable ...AWSELB3AWS::ElasticLoadBalancing::LoadBalancer
Elastic Load Balancer Has Non-encrypted ListenersEnsure that Elastic Load Balancers (ELBs) are configured with SSL listeners. Unencrypted communication can jeopardize the confidentiality of data during transit. Examine ELBs to identify those wi...AWSELBELB.33AWS::ElasticLoadBalancing::LoadBalancer
Elastic Load Balancer Has Insecure SSL ProtocolsCheck whether Elastic Load Balancers (ELBs) are configured with weak SSL ciphers. This check specfically looks at whether if the ssl policy is the secure policy 'ELBSecurityPolicy-TLS-1-2-2017-01'....AWSELB3AWS::ElasticLoadBalancing::LoadBalancer
Elastic Load Balancer Is Not Configured With Defensive Or Strictest Desync Mitigation ModeThis control assesses whether a Classic Load Balancer is set up with either defensive or the strictest desync mitigation mode. The validation does not succeed if the Classic Load Balancer is not confi...AWSELBELB.143AWS::ElasticLoadBalancing::LoadBalancer
Elastic Load Balancer Does Not Span Multiple Availability ZonesThis check assesses whether a Classic Load Balancer is set up to operate across multiple Availability Zones. The validation does not succeed if the Classic Load Balancer is not configured to span mult...AWSELBELB.103AWS::ElasticLoadBalancing::LoadBalancer
Elastic Load Balancer Does Not Have Cross-Zone Load Balancing EnabledThis check examines whether cross-zone load balancing is activated for Classic Load Balancers (CLBs). The check does not pass if cross-zone load balancing is not turned on for a CLB. A load balancer ...AWSELBELB.93AWS::ElasticLoadBalancing::LoadBalancer
Elastic Load Balancer Does Not Have Connection Draining EnabledThis check assesses whether Classic Load Balancers have activated connection draining. Enabling connection draining guarantees that the load balancer ceases forwarding requests to instances undergoing...AWSELBELB.73AWS::ElasticLoadBalancing::LoadBalancer
Application Load Balancer Is Not Protected By WAFAn Application Load Balancer (ALB) is responsible for distributing incoming web traffic across multiple targets, such as EC2 instances, to ensure optimal performance. This check verifies if the ALB is...AWSELBv2CSMM v1 APP-03.3, ELB.163AWS::ElasticLoadBalancingV2::LoadBalancer
Application Load Balancer Is Internet FacingAn Application Load Balancer (ALB) is responsible for distributing incoming web traffic across multiple targets, such as EC2 instances, to ensure optimal performance. This check verifies if the ALB is...AWSELBv22AWS::ElasticLoadBalancingV2::LoadBalancer
Elastic Load Balancer Does Not Have ListenersThis check ensures that ELBv2 has listeners underneath. The rules that are defined for a listener determine how the load balancer routes requests to its registered targets....AWSELBv23AWS::ElasticLoadBalancingV2::LoadBalancer
Elastic Load BalancerV2 Does Not Have Logging EnabledCheck whether Elastic Load Balancers (ELBs) have logging functionality enabled. Without logging, it becomes impossible to monitor service utilization and perform threat analysis. It is advisable ...AWSELBv23AWS::ElasticLoadBalancingV2::LoadBalancer
Application Load Balancer Has Non-Encrypted ListenersCheck if Application Elastic Load Balancers have SSL listeners. Unencrypted communication may compromise the privacy of information during transit. It's recommended to examine Application Load Bala...AWSELBv23AWS::ElasticLoadBalancingV2::LoadBalancer
Application Load Balancer Does Not Have Deletion Protection EnabledCheck if Application Elastic Load Balancers has deletion protection enabled. If deletion protection is not enabled, the resource is not protected against deletion. It's important to note this attri...AWSELBv23AWS::ElasticLoadBalancingV2::LoadBalancer
Application Load Balancer Has Insecure SSL ProtocolsCheck if Application Elastic Load Balancers has insecure SSL ciphers. Using insecure ciphers may affect privacy of in transit information. It's recommended to drop legacy and insecure ciphers and u...AWSELBv23AWS::ElasticLoadBalancingV2::LoadBalancer
Application Load Balancer Has Invalid Desync Mitigation ModeCheck if the Application Load Balancer is set to employ either a defensive or the strictest desync mitigation mode. If not, check whether it is configured with the "drop_invalid_header_fields" attr...AWSELBv23AWS::ElasticLoadBalancingV2::LoadBalancer
Application Load Balancer Is Not Configured To Drop HTTP HeadersThis check examines AWS Application Load Balancers to verify their configuration for discarding invalid HTTP headers. The control does not pass if the setting of routing.http.drop_invalid_header_fi...AWSELBv23AWS::ElasticLoadBalancingV2::LoadBalancer
Load Balancer Does Not Span Multiple Availability ZonesThis control checks if an Elastic Load Balancer V2 (Application, Network, or Gateway Load Balancer) has instances registered from multiple Availability Zones. The check does not pass if an Elastic Loa...AWSELBv2NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6(2), NIST.800-53.r5 SC-36, NIST.800-53.r5 SC-5(2), NIST.800-53.r5 SI-13(5)ELB.133AWS::ElasticLoadBalancingV2::LoadBalancer
Glue Connection Does Not Enforce JDBC SSLThis check determines if Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client....AWSGlue4AWS::Glue::Connection
Glue Data Catalog Does Not Encrypt Connection PasswordsThis check determines if connection password encryption for the data catalog is enabled....AWSGlue4AWS::Glue::DataCatalogEncryptionSettings
Glue Data Catalog Does Not Encrypt Metadata At RestThis check determines if at-rest encryption for metadata stored in the data catalog is enabled....AWSGlue4AWS::Glue::DataCatalogEncryptionSettings
Glue Data Catalog Is Publicly AccessibleThis check determines if a data catalog is publicly accessible due to its resource policy....AWSGlue4AWS::Glue::ResourcePolicy
Glue Development Endpoint Data Is Not EncryptedA security configuration in AWS Glue contains the properties that are needed when you write encrypted data. You create security configurations on the AWS Glue console to provide the encryption propert...AWSGlue3AWS::Glue::DevEndpointAWS::Glue::SecurityConfiguration
Glue Job Data Is Not EncryptedA security configuration in AWS Glue contains the properties that are needed when you write encrypted data. You create security configurations on the AWS Glue console to provide the encryption propert...AWSGlue3AWS::Glue::JobAWS::Glue::SecurityConfiguration
Glue Job Does Not Have CloudWatch Logging EnabledUPDATE: Security Hub retired this control and removed it from all standards. This control checks whether an AWS Glue job has logging enabled. The control fails if the job doesn't have logging enabled...AWSGlue1AWS::Glue::Job
Glue Job Is Not TaggedThis check ensures that an AWS Glue Job has tags with the specific keys defined in the parameter Required Tag Keys. The control fails if the Job doesn't have any tag keys or if it doesn't have all t...AWSGlueRequired Tag KeysGlue.14AWS::Glue::Job
Glue Machine Learning Transform Does Not Encrypt Data At RestThis check determines if an AWS Glue machine learning transform is encrypted at rest. The control fails if the machine learning transform isn't encrypted at rest....AWSGlueGlue.34AWS::Glue::MLTransform
GuardDuty Is Not EnabledThis check determines if GuardDuty is enabled to provide continuous security monitoring against malicious or unauthorized activity. Enabling GuardDuty enhances threat detection and helps safeguard AWS...AWSGuardDutyCSMM v1 LOG-03.2, GuardDuty.11Custom::AWS::RegionAWS::GuardDuty::Detector
IAM User Has Access Key(s) That Are Publicly Available OnlineExposure of IAM credentials poses a security risk to your AWS account and could lead to excessive charges from unauthorized activity....AWSIAM5AWS::IAM::UserDisable IAM User
IAM Access Key Should Be RotatedAccess keys are a static credential that consists of an access key ID and secret access key, which are used to sign programmatic requests that you make to AWS. Static credentials always represent a ri...AWSIAMCIS AWS v1.5.0 1.14, IAM.33AWS::IAM::UserDisable IAM Access Keys
IAM Account Does Not Have A Secure Password PolicyIAM password policies are crucial for ensuring strong password security and preventing unauthorized access to accounts. It is highly recommended to implement a robust password policy that enforces com...AWSIAMIAM.73Custom::AWS::IAM::AccountEnforce Password Policy Compliance
IAM Access Analyzer is Not Enabled for RegionEnable IAM Access analyzer for IAM policies about all resources in each region. IAM Access Analyzer is a technology introduced at AWS reinvent 2019. After the Analyzer is enabled in IAM, scan results ...AWSIAMCIS AWS v1.5.0 1.20, IAM.283Custom::AWS::RegionAWS::AccessAnalyzer::Analyzer
Unused IAM User CredentialsAWS IAM users can access AWS resources using different types of credentials, such as passwords or access keys. It is recommended that all credentials that have been unused in 45 or greater days be dea...AWSIAMCIS AWS v1.5.0 1.12, IAM.8, IAM.222AWS::IAM::UserDisable IAM User, Quarantine IAM User
IAM SSL/TLS Certificate Is ExpiredTo enable HTTPS connections to your website or application in AWS, you need an SSL/TLS server certificate. You can use ACM or IAM to store and deploy server certificates. Use IAM as a certificate mana...AWSIAMCIS AWS v1.5.0 1.19, CIS3.AWS.1.192AWS::IAM::ServerCertificate
IAM Password Policy Does Not Require Minimum Length of 14 or GreaterPassword policies are, in part, used to enforce password complexity requirements. Certain standards like CIS require a minimum password length of 14. The default in AWS is 8. IAM password policies can...AWSIAMCIS AWS v1.5.0 1.8, IAM.153Custom::AWS::IAM::AccountEnable Minimum Password Length of 14
IAM Password Policy Does Not Prevent ReuseIAM password policies can prevent the reuse of a given password by the same user. It is recommended that the password policy prevent the reuse of passwords. Preventing password reuse increases account...AWSIAMCIS AWS v1.5.0 1.9, IAM.163Custom::AWS::IAM::AccountEnable Password Reuse Prevention
IAM Role Has Risky PermissionsRisky permissions are individual IAM permissions that are rated with a higher security risk due to their potential for abuse, or combinations of permissions (even across different IAM policies) that c...AWSIAM4AWS::IAM::Role
Sufficient IAM Roles Using Safe Trust ConditionsThis check verifies the presence of more than two IAM roles that are not associated with an EC2 instance profile and utilize one or more of the following condition keys in their trust policies: -...AWSIAMCSMM v1 IAM-05.12Custom::AWS::IAM::Account
IAM Root Account UsageThe root user for this account has been used within the past 24 hours. Root access should be eliminated or minimized. With the creation of an AWS account, a 'root user' is created that cannot be ...AWSIAMCIS AWS v1.5.0 1.7, CIS3.AWS.1.72Custom::AWS::IAM::Account
IAM Root Account Has Access KeysThe root user for this AWS account has an access key attached to it. If the access key is compromised, it could be used to obtain full access to the AWS account and its resources. It is a best practic...AWSIAMPCI DSS 2.1, PCI DSS 2.2, PCI DSS 7.2.1CIS AWS v1.5.0 1.4, IAM.44Custom::AWS::IAM::Account
IAM Root Account Does Not Have MFA EnabledThe 'root' user account is the most privileged user in an AWS account. Multi-factor Authentication (MFA) adds an extra layer of protection on top of a username and password. With MFA enabled, when a u...AWSIAMPCI DSS 8.3.1, PCI DSS 8.3.1CIS AWS v1.5.0 1.5, IAM.6, IAM.94Custom::AWS::IAM::Account
IAM Root Account Uses Virtual MFAThe root user for this AWS account has a virtual Multifactor Authentication (MFA) token configured. You may want to replace this with a physical device to enhance security. There are a few reasonab...AWSIAMPCI DSS 8.3.1CIS AWS v1.5.0 1.6, IAM.64AWS::IAM::VirtualMFADevice
AWS Support Center Not Available to IAM UsersThe AWS managed policy 'AWSSupportAccess' is not attached to an IAM user, group, or role in your AWS account. The CIS Benchmarks for AWS require that a support role exists with access to the AWS Suppo...AWSIAMCIS AWS v1.5.0 1.17, IAM.181Custom::AWS::IAM::Account
IAM User Has Access Key Without MFA EnforcedIAM Users that access the AWS API using long-term credentials should have a policy applied that enforces MFA for most actions...AWSIAMAllowed ServicesCSMM v1 IAM-03.2, IAM.194AWS::IAM::UserDisable IAM User
New IAM User Has Access KeysThe AWS console does not create access keys by default when creating a new user since these are static credentials that would then need to be shared/communicated. Human users should create their own a...AWSIAMCIS AWS v1.5.0 1.11, CIS3.AWS.1.114AWS::IAM::UserDisable IAM User
IAM User Has Attached Policy With Admin PermissionsThe IAM user has full administrative permissions. IAM policies are the means by which privileges are granted to users, groups, or roles. It is recommended and considered a standard security advice to ...AWSIAMCIS AWS v1.5.0 1.16, CIS3.AWS.1.164AWS::IAM::User
IAM User Has Attached PoliciesIAM users should only receive permissions through groups. IAM users are granted access to services, functions, and data through IAM policies. There are three ways to define policies for a user: 1) Edi...AWSIAMCIS AWS v1.5.0 1.15, IAM.23AWS::IAM::User
User MFA not Enforced and Missing MFA DeviceNOTE: this check only validates MFA for AWS IAM users and it does not evaluate federated users since MFA for those users is managed at the Identity Provider, not within AWS. This check only looks for ...AWSIAMPCI DSS 8.3.1CIS AWS v1.5.0 1.10, CSMM v1 IAM-02.2, IAM.5, IAM.194AWS::IAM::UserDisable IAM User
IAM User Has Multiple Active Access KeysMultiple access keys may indicate that a user account was compromised, or that the user has an old key in less secure storage. Access keys are long-term credentials for an IAM user or the AWS account ...AWSIAMCIS AWS v1.5.0 1.13, CIS3.AWS.1.134AWS::IAM::User
IAM User Has Risky PermissionsRisky permissions are individual IAM permissions that are rated with a higher security risk due to their potential for abuse, or combinations of permissions (even across different IAM policies) that c...AWSIAMWhitelisted Groups4AWS::IAM::UserDisable IAM User
IAM Policy Allows Access To KMS PrivilegesCheck that no IAM policies granting unrestricted KMS privileges are generated. As KMS holds significant importance, it's imperative for IAM policies to adhere to the principle of least privilege, e...AWSIAM3AWS::IAM::ManagedPolicy
IAM Policy Allows Access To CloudTrail PrivilegesCheck that no IAM policies granting unrestricted CloudTrail privileges are generated. As CloudTrail holds significant importance, it's imperative for IAM policies to adhere to the principle of leas...AWSIAM3AWS::IAM::ManagedPolicy
IAM User Has Administrator Access With MFA DisabledCheck to ensure that users with Administrator Access policy have Multi-Factor Authentication (MFA) tokens activated. The policy could potentially grant permission to unidentified users to carry out...AWSIAM4AWS::IAM::UserDisable IAM User
IAM User Uses Virtual MFACheck whether IAM users have Hardware MFA enabled. Prioritize the use of Hardware MFA over virtual MFA. To remediate, set up a hardware MFA device for an IAM user using either the AWS Management Co...AWSIAM3AWS::IAM::User
Attached, AWS Managed Policy Allows Admin PrivilegesCheck that no AWS-managed IAM policies granting complete administrative privileges are attached. IAM policies assign privileges to users, groups, or roles. Adhering to the best practice of least pr...AWSIAM4AWS::IAM::ManagedPolicy
IAM Customer Managed Unattached Policy Allows Admin PrivilegesGuarantee the absence of IAM policies that grant complete administrative privileges, as there might be eventual consistency concerns if a temporary resource is utilizing such permissions. IAM polic...AWSIAMIAM.12AWS::IAM::ManagedPolicy
IAM Customer Managed Attached Policy Allows Admin PrivilegesCheck that no Customer-managed IAM policies granting complete administrative privileges are attached. IAM policies assign privileges to users, groups, or roles. Adhering to the best practice of lea...AWSIAMIAM.14AWS::IAM::ManagedPolicy
Too Many Users Access AWS Console Without SSOAll users should access AWS accounts through Single Sign On (SSO). A small number of IAM users may have direct console access for break-glass and emergency purposes such as the SSO portal going down. ...AWSIAMMaximum direct console access usersCSMM v1 IAM-03.12Custom::AWS::IAM::Account
IAM Role Vulnerable to CVE-2024-28056This check identifies IAM roles that are vulnerable to CVE-2024-28056. The vulnerability allows an attacker to assume an IAM ro...AWSIAM4AWS::IAM::Role
IAM Role Has ReadOnlyAccess for External AWS AccountsThe AWS-managed ReadOnlyAccess policy grants extensive permissions that can lead to data exposure if used improperly. It should be applied very carefully and only when absolutely necessary. Consider u...AWSIAM4AWS::IAM::Role
IAM Policy Allows Overly Permissive Role AssumptionChecks whether the customer managed IAM policy allows any role to be assumed (i.e. resource of * and action of sts:AssumeRole). If this is not properly restricted, this could lead to unwante...AWSIAM5AWS::IAM::ManagedPolicy
Kinesis Stream is Not Encrypted At RestThis validation examines whether Kinesis Data Streams are secured with server-side encryption for data at rest. The validation does not pass if a Kinesis stream lacks encryption at rest through server...AWSKinesisKinesis.13AWS::Kinesis::Stream
AWS Account Does Not Contain A CMK KeyChecks that the AWS Account contains at least one customer-managed key (CMK) in Key Management Service (KMS). By default, many services in cloud providers encrypt data using default keys. However, c...AWSKMSCSMM v1 DAT-03.21Custom::AWS::Account
KMS Key Exposed To PublicThe key policy for this Customer Managed Key (CMK) includes an asterisk (*) in the 'Principal' key for an 'Allow' statement. The policy may allow any AWS account to use the key, if not otherwis...AWSIAMCSMM v1 DAT-04.25AWS::KMS::Key
KMS Key Does Not Have Key Rotation EnabledAutomatic key rotation is a best practice, and enabling it may help you satisfy compliance requirements (such as PCI DSS). The [AWS Developer Guide](https://docs.aws.amazon.com/kms/latest/develop...AWSKMSPCI DSS 3.6.4CIS AWS v1.5.0 3.8, KMS.41AWS::KMS::Key
CMK KMS Key Is DisabledCheck whether there are any Customer Master Keys (CMK) within the Key Management Service (KMS) that have not been utilized. Having unused keys could lead to higher service expenses. Prior to removi...AWSKMS3AWS::KMS::Key
CMK KMS Key Is Deleted IntentionallyThis check examines whether KMS keys are in the process of being scheduled for deletion. The validation does not succeed if a KMS key is currently marked for deletion. Once a KMS key is deleted, reco...AWSKMSKMS.35AWS::KMS::Key
IAM Role is Associated With Multiple Lambda FunctionsChecks whether this Lambda function's IAM execution role is also used in other Lambda functions. Best practice is to maintain a one-to-one relationship between AWS Lambda functions and their IAM execu...AWSLambda2AWS::Lambda::Function
Lambda Function Missing Valid VPCUsually, Lambda functions are configured to connect to private subnets in AWS VPCs in order to use resources hosted there. A Lambda function that does not connect to any VPC could indicate an "orphane...AWSLambdaPCI DSS 1.2.1, PCI DSS 1.3.1, PCI DSS 1.3.2, PCI DSS 1.3.4Lambda.32AWS::Lambda::Function
Lambda Function has Resource-based Policy With Public AccessThe resource policy for the lambda function has one of the following Allow Statement Principals: * * * AWS:* * CanonicalUser:* * Services:* * Federated:* A public resource policy allows anyone ...AWSLambdaLambda.14AWS::Lambda::Function
Lambda Has Public URLLambda functions can have public URLs that allow for direct invocation. This is controlled by a combination of the function URL config and one or more resource policies. To correct this finding, remov...AWSLambda3AWS::Lambda::Function
Lambda CORS Configuration Allows All OriginsThe Lambda Function includes a wildcard ("*") in the CORS configuration AllowOrigins header, which allows all origins. This violates the principle of least privilege....AWSLambda2AWS::Lambda::Function
Lambda Function Is Not Recorded by CloudTrailLambda function events should be recorded in CloudTrail to gain visibility into when and by whom your Lambda functions are being invoked, allowing you to audit usage, identify potential security issu...AWSLambda2AWS::Lambda::FunctionAWS::CloudTrail::Trail
Lambda Function Has Secrets in EnvironmentTo increase security, AWS recommends using Secrets Manager instead of environment variables to store credentials and other sensitive values....AWSLambdaEnvironment variable keys to ignoreCSMM v1 WKL-05.24AWS::Lambda::Function
Lambda Is Using Obsolete RuntimeIdentify deprecated Lambda runtimes. If you have functions operating on a runtime that will become obsolete within the next 60 days, Lambda will notify you via email. In such cases, it's essenti...AWSLambdaLambda.23AWS::Lambda::Function
Lambda Function Has Risky PermissionsServerless functions should not have excessive privileges, especially administrative privileges. This is an extension of the IAM excessive privilege control objective as applied specifically to FaaS w...AWSLambdaCSMM v1 WKL-04.34AWS::Lambda::Function
Lambda Is Older Than Six MonthsThis check ensures that Lambda functions are not older than six months. Lambda functions should be updated regularly to ensure they are using the latest runtime and dependencies. This mitigates securi...AWSLambdaCSMM v1 WKL-05.21AWS::Lambda::Function
Lambda Function In VPC Does Not Have Multi-AZ ComplianceChecks if a VPC-connected AWS Lambda function operates in at least the specified number of availability zones. The default is two availability zones....AWSLambdaMinimum availability zonesLambda.23AWS::Lambda::Function
Neptune DB Clusters Do Not Have Automatic Backups EnabledThis check verifies if a Neptune DB cluster has active automated backups and if the backup retention period meets or exceeds the specified timeframe. The control result is deemed unsuccessful if the N...AWSRDSNeptune.53AWS::RDS::DBCluster
Neptune DB Clusters Are Not Encypted At RestThis check verifies the encryption status of a Neptune DB cluster in terms of data at rest. The check results in failure if the Neptune DB cluster is not encrypted at rest. Data at rest encompasses...AWSRDSNeptune.13AWS::RDS::DBCluster
Neptune DB Clusters Do Not Publish Logs To CloudWatch LogsThis check assesses whether a Neptune DB cluster is configured to transmit audit logs to Amazon CloudWatch Logs. The evaluation outcome is unsuccessful if a Neptune DB cluster is not actively sending ...AWSRDSNeptune.23AWS::RDS::DBCluster
Neptune DB Cluster Does Not Have Copy Tags to SnapshotThis control assesses whether a Neptune DB cluster is set up to replicate all tags to snapshots during their creation. The control result is marked as unsuccessful if the Neptune DB cluster lacks the ...AWSRDSNeptune.82AWS::RDS::DBCluster
Neptune DB Clusters Does Not Have Deletion Protection EnabledThis control assesses whether deletion protection is active for a Neptune DB cluster. The control reports a failure if the deletion protection is not enabled for the Neptune DB cluster. Activation of...AWSRDSNeptune.42AWS::RDS::DBCluster
Neptune DB Cluster Does Not Have IAM Database Authentication EnabledThis control examines whether IAM database authentication is activated for a Neptune DB cluster. The control result is negative if IAM database authentication is not enabled for the specified Neptune ...AWSRDSNeptune.73AWS::RDS::DBCluster
AWS OpenSearch Service Domain is Publicly AccessibleThis check ensures that OpenSearch service domains are not publicly accessible by looking into the domains specific access policy. Publicly accessbile domains are subject to exposure to sensitive...AWSOpenSearch5AWS::OpenSearch::Domain
AWS OpenSearch Service Domain is not in an Amazon VPCChecks if Amazon OpenSearch Service domains are in an Amazon Virtual Private Cloud (VPC). It does not evaluate the VPC subnet routing configuration to determine public access...AWSOpenSearchOpensearch.25AWS::OpenSearch::Domain
AWS OpenSearch Domain Does Not Have Audit Logging EnabledChecks if AWS OpeanSearch has audit logging enabled. Enabling fine-grained access control on your Amazon OpenSearch Service domain allows you to activate audit logs for your data. These logs are fu...AWSOpenSearchOpensearch.52AWS::OpenSearch::Domain
AWS OpenSearch Domain Encryption-At-Rest Is Not EnabledOpenSearch Service domains provide data-at-rest encryption, using AWS Key Management Service (AWS KMS) for managing encryption keys and AES-256 algorithm for encryption. When enabled, it encrypts al...AWSOpenSearchOpensearch.13AWS::OpenSearch::Domain
OpenSearch Domain Node-to-Node Encryption Is Not EnabledNode-to-node encryption adds an extra security layer, enhancing the inherent features of Amazon OpenSearch. This configuration thwarts potential attackers' attempts to intercept communication betwe...AWSOpenSearchOpensearch.33AWS::OpenSearch::Domain
OpenSearch Domain Has Cognito Authentication for Kibana DisabledCheck whether Amazon OpenSearch Service domains have enabled Amazon Cognito authentication for Kibana. Amazon OpenSearch Service offers support for employing Amazon Cognito as a means of authent...AWSOpenSearch4AWS::OpenSearch::Domain
OpenSearch Domain Has Software Version Updates AvailableCheck the availability of updates for Amazon OpenSearch Service domains. Amazon OpenSearch consistently launches system software updates to introduce enhancements or enhance the performance of your...AWSOpenSearch2AWS::OpenSearch::Domain
OpenSearch Domain Has Internal User Database DisabledCheck whether Amazon OpenSearch Service domains have activated the internal user database. The Internal User Database serves well for demonstrations; for operational environments, prefer the adopti...AWSOpenSearch3AWS::OpenSearch::Domain
OpenSearch Domain Does Not Have HTTPS EnforcedVerify whether HTTPS enforcement is enabled for Amazon OpenSearch Service domains. Failure to enable this could elevate the potential risks associated with unauthorized data access. When establi...AWSOpenSearch3AWS::OpenSearch::Domain
OpenSearch Domain Does Not Have CloudWatch Logging EnabledCheck whether logging is activated for your Amazon OpenSearch Service domains. Amazon OS provides access to four types of OpenSearch logs via Amazon CloudWatch Logs: error logs, search slow logs, i...AWSOpenSearchOpensearch.43AWS::OpenSearch::Domain
AWS OpenSearch Domain Does Not Have TLS 1.2 EncryptionThis control examines whether connections to OpenSearch domains necessitate the use of TLS 1.2. The validation will not pass if the TLSSecurityPolicy of the OpenSearch domain is not set to Policy-Min-...AWSOpenSearchOpensearch.83AWS::OpenSearch::Domain
AWS OpenSearch Domain Does Not Have Fine-grained Access Control EnabledThis validation examines whether fine-grained access control is activated in OpenSearch domains. The validation will not succeed unless fine-grained access control is enabled. Enabling fine-grained ac...AWSOpenSearchOpensearch.74AWS::OpenSearch::Domain
AWS OpenSearch Domain Does Not Have At Least Three Data NodesThis validation verifies that OpenSearch domains have been set up with a minimum of three data nodes and zoneAwarenessEnabled is set to true. The validation will not pass for an OpenSearch domain if t...AWSOpenSearchOpensearch.63AWS::OpenSearch::Domain
Account Is Not A Member Of An OrganizationAn AWS account should be part of an AWS Organization. AWS Organizations includes account management and consolidated billing capabilities that enable you to better meet the budgetary, security, and co...AWSOrganizationsCSMM v1 ORM-02.1, Account.22Custom::AWS::Account
Peered VPCs Do Not Use Transit GatewayAWSOrganizationsCSMM v1 NET-04.22Custom::AWS::Account
RDS Instance Auto Minor Version Upgrade Feature is DisabledEnsure that RDS database instances have the Auto Minor Version Upgrade flag enabled in order to receive automatically minor engine upgrades during the specified maintenance window. This way RDS instan...AWSRDSCIS AWS v1.5.0 2.3.2, RDS.133AWS::RDS::DBInstance
RDS Instance Does Not Use Cross-Region Automated BackupsChecks that the RDS instance is configured to replicate automated backups to another region for data resilience....AWSRDSCSMM v1 BCR-04.31AWS::RDS::DBInstance
RDS Instance Does Not Have a Cross-Region Read ReplicaChecks that the RDS instance has a read replica in another region for data resilience....AWSRDSCSMM v1 BCR-04.31AWS::RDS::DBInstance
RDS Database Instance Storage is not EncryptedThis RDS database instance does not have Storage Encryption enabled. Storage encryption protects the confidentiality...AWSRDSCIS AWS v1.5.0 2.3.1, RDS.31AWS::RDS::DBInstance
RDS Instance is Publicly AccessibleEnsure that no public-facing RDS database instances are provisioned in your AWS account and restrict unauthorized access in order to minimize security risks. When the RDS instance allows unrestricted ...AWSRDSCIS AWS v1.5.0 2.3.3, RDS.24AWS::RDS::DBInstance
RDS Snapshot Exposed to Public or Untrusted AccountRDS database snapshots often contain sensitive information. Anyone in control of a AWS account with access to this snapshot can view all of the data in the snapshot by copying it to their account and/...AWSRDSTrust All Known Accounts, Trusted AWS Account IDsPCI DSS 1.2.1, PCI DSS 1.3.1, PCI DSS 1.3.4, PCI DSS 1.3.6, PCI DSS 7.2.1RDS.15AWS::RDS::DBSnapshot
RDS Instance Backup is not EnabledRDS instances have automated backups that can be enabled. Instances without automated backup could be subject to vulnerable data. Data can be easily altered and modified by human error and bad actors...AWSRDSRDS.113AWS::RDS::DBInstance
RDS Instance Backup Transport is not EncryptedChecks if the RDS instance's client connections (SQL Server and PostgreSQL) are encrypted. An unencrypted instance allows for sensitive information at transit to be exposed to threats, it's importa...AWSRDS3AWS::RDS::DBInstance
RDS Instance Engine Version is DeprecatedThis check ensures that RDS is using an available engine version for the supported engine types. If the instance is using a deprecated version, RDS instances could be exposed to security vulnerab...AWSRDS3AWS::RDS::DBInstance
RDS Instance Is Not Integrated With CloudWatch LogsChecks whether RDS instances are linked with CloudWatch Logs. Without enabled logs, the ability to monitor service utilization and conduct threat analysis becomes restricted. Employ CloudWatch Logs...AWSRDS3AWS::RDS::DBInstance
RDS Instance Has Enhanced Monitoring DisabledChecks whether Enhanced Monitoring is activated for RDS instances. Opting for a shorter monitoring interval leads to more frequent updates of OS metrics. To enable Enhanced Monitoring, it's necessa...AWSRDSRDS.62AWS::RDS::DBInstance
RDS DB Instance Does Not Have Multi-AZ EnabledChecks if a RDS DB Instance has multi-AZ deployment enabled. In the event of a specific availability zone failure in a single-AZ deployment, Amazon RDS does not have the capability to automatica...AWSRDSRDS.53AWS::RDS::DBInstance
RDS DB Instance Does Not Have Deletion Protection EnabledChecks if a RDS DB Instance has deletion protection enabled. It's only possible to delete instances that do not have deletion protection enabled. ...AWSRDSRDS.83AWS::RDS::DBInstance
RDS Database Snapshot Is Not EncryptedAWSRDSRDS.44AWS::RDS::DBSnapshot
RDS Cluster Snapshot Is Not EncryptedAWSRDSRDS.44AWS::RDS::DBClusterSnapshot
Route53 Record Set In Hosted Zone Is A Dangling IPCheck the presence of dangling IPs in your Route53 Records. When an AWS ephemeral resource, like an Elastic IP (EIP), is released and returns to Amazon's Elastic IP pool, it allows potential exp...AWSRoute534AWS::Route53::HostedZone
S3 Bucket Does Not Enforce Encryption at Rest*NOTE: ALL Amazon S3 buckets have bucket encryption enabled by default. S3 supports server-side encryption at the bucket...AWSS3CIS AWS v1.5.0 2.1.11AWS::S3::Bucket
S3 Bucket Allows Cross Account AccessThis check inspects S3 bucket policies to identify any cross-account access that is not known and trusted. The check does so by comparing all cross-account "Allow" permissions in a bucket policy...AWSS3Trust All Known Accounts, Trusted AWS Account IDs, Ignore All Canonical Principals, Ignore Only Listed Canonical Principals, Ignore All Federated Principals, Ignore All Federated Principals, Ignore All Service Principals, Trusted AWS Services3AWS::S3::Bucket
S3 Bucket Has Excessive ACL PermissionsThis checks the Access Control List (ACL) for S3 buckets to identify public access (via the Everyone or **Authenticated ...AWSS34AWS::S3::Bucket
S3 Bucket Policy Has Excessive PermissionsThis checks S3 bucket policies for Statements that Allow Principals that include wildcard '*' groups. Policies that allow wildcard groups will permit any user and/or AWS account to ac...AWSS3CSMM v1 DAT-02.1, S3.64AWS::S3::Bucket
Missing or Disabled S3 Cross-Region Replication RuleThis S3 bucket does not have a Cross-Region Replication rule attached, or this S3 bucket has at least one Cross-Region Replication rule attached to it, but not enabled. Cross-Region Replication ru...AWSS3PCI DSS 2.2CSMM v1 BCR-04.3, S3.71AWS::S3::Bucket
S3 Bucket Allows HTTP RequestsAt the Amazon S3 bucket level, you can configure permissions through a bucket policy making the objects accessible only through HTTPS. By default, Amazon S3 allows both HTTP and HTTPS requests. To a...AWSS3CIS AWS v1.5.0 2.1.2, S3.53AWS::S3::Bucket
Object-level Logging for Read Events is Not Enabled for S3 BucketS3 object-level API operations such as GetObject, DeleteObject, and PutObject are called data events. By default, CloudTrail trails don't log data events. However, it is recommended to enable Object-l...AWSS3CIS AWS v1.5.0 3.11, S3.232AWS::S3::Bucket
Object-level Logging for Write Events is Not Enabled for S3 BucketS3 object-level API operations such as GetObject, DeleteObject, and PutObject are called data events. By default, CloudTrail trails don't log data events. However, it is recommended to enable Object-l...AWSS3CIS AWS v1.5.0 3.10, S3.222AWS::S3::Bucket
S3 Bucket Does Not Have Object Versioning EnabledThis checks assesses whether Amazon S3 Buckets have object versioning enabled. Object versioning is a crucial feature that enhances data protection and enables easy recovery from unintended user actio...AWSS3S3.143AWS::S3::Bucket
S3 Bucket Does Not Block Public AccessPublic S3 buckets is one of the single biggest sources of data breaches and AWS ransomware attacks. By default, S3 buckets and objects are created with public access disabled. However, an IAM principa...AWSS3CIS AWS v1.5.0 2.1.5, CSMM v1 DAT-03.1, S3.1, S3.2, S3.3, S3.84AWS::S3::Bucket
S3 Bucket Has ACLs EnabledVerify whether ACLs are enabled for S3 buckets. S3 ACLs represent an outdated form of access control that predates IAM. Presently, IAM and bucket policies are the recommended approaches. Confirm th...AWSS3S3.123AWS::S3::Bucket
S3 Bucket Does Not Have Server Access Logging EnabledCheck whether server access logging is activated for S3 buckets. Enabling server access logs can aid in security assessments, access audits, customer insights, and comprehending Amazon S3 billing. ...AWSS3S3.93AWS::S3::Bucket
S3 Bucket Has MFA Delete DisabledCheck if S3 bucket MFA Delete is not enabled. If not enabled, security credentials being compromised or unauthorized access being granted is risked. ...AWSS32AWS::S3::Bucket
S3 Bucket Does Not Have Object Lock EnabledCheck if S3 bucket Object Lock is enabled. Utilize a write-once-read-many (WORM) approach to store items, ensuring they cannot be deleted or altered for a specified duration or indefinitely. Thi...AWSS3S3.153AWS::S3::Bucket
CloudTrail Logs S3 Bucket Has MFA Delete DisabledThis check ensures that S3 buckets used by CloudTrail for storing logs have MFA Delete enabled. Enabling MFA Delete provides an extra layer of security by requiring additional authentication before al...AWSS34AWS::S3::Bucket
Secret Does Not Have Automatic Rotation EnabledAWS Secrets Manager automatic secret rotation is a key security feature that helps in managing the lifecycle of secrets. Having automatic rotation enabled ensures that secrets are rotated regularly, r...AWSSecretsManagerSecretsManager.12AWS::SecretsManager::Secret
AWS Security Hub Is Not EnabledSecurity Hub collects security data from across AWS accounts, services, and supported third-party partner products and helps you analyze your security trends and identify the highest priority security...AWSSecurityHubCIS AWS v1.5.0 4.16, CIS AWS v1.5.0 4.163Custom::AWS::RegionAWS::SecurityHub::Hub
AWS Security Hub Is Disabled Or Does Not Have NIST 800-53 EnabledAWSSecurityHubCSMM v1 GOV-04.33Custom::AWS::RegionAWS::SecurityHub::Hub
No AWS Security Hub Security Standards Are EnabledAWS Security Hub serves as a centralized dashboard for monitoring the security status of your AWS environment. This check ensures that at least one security standard is enabled in your Security Hub, e...AWSSecurityHubCSMM v1 GOV-03.21AWS::SecurityHub::Hub
SNS Topic KMS Encryption At Rest Is Not EnabledCheck that no SNS Topics lack encryption. Neglecting encryption leaves sensitive information susceptible to compromise while inactive. Implement Amazon SNS with AWS KMS as a corrective measure. ...AWSSNSSNS.14AWS::SNS::Topic
SNS Topic Policy Has Public AccessCheck whether SNS topics have been configured with a public policy, as making services publicly accessible may expose sensitive data to malicious actors. Ensure that there is a legitimate busine...AWSSNS4AWS::SNS::Topic
SQS Queue Shared With Untrusted AWS AccountThe Amazon Simple Queue Service (SQS) queue has a [resource-based policy](https://docs.aws.amazon.com/AWSSimp...AWSSQSTrust All Known Accounts, Trusted AWS Account IDs3AWS::SQS::Queue
SQS Queue Policy Has Public AccessHaving public access enabled for an SQS Queue can expose sensitive information that should not be disclosed to the general public. The policy permissions should be updated to protect against unaut...AWSSQS5AWS::SQS::Queue
SQS Queue Does Not Have Server Side Encryption EnabledCheck whether SQS queues have Server Side Encryption activated. If the encryption is not enabled, confidential data in transit will remain vulnerable. Activate encryption and utilize a Customer Mas...AWSSQSSQS.13AWS::SQS::Queue
App Service Authentication Not EnabledAuthentication for an App Services app is not enabled....AzureAppServiceCIS Azure v2.0.0 9.14Microsoft.Web.sites
Web App Does Not Redirect All HTTP Traffic to HTTPS in Azure App ServiceAzure Web Apps allows sites to run under both HTTP and HTTPS by default. Web apps can be accessed by anyone using non-secure HTTP links by default. Non-secure HTTP requests can be restricted and all H...AzureAppServiceCIS Azure v2.0.0 9.24Microsoft.Web.sites
Web App Does Not Use Latest Version of TLS EncryptionThe TLS (Transport Layer Security) protocol secures transmission of data over the internet using standard encryption technology. Encryption should be set with the latest version of TLS. App service al...AzureAppServiceCIS Azure v2.0.0 9.34Microsoft.Web.sites
Web App Does Not Have Incoming Client Certificates Set to "On"Client certificates allow for the app to request a certificate for incoming requests. Only clients that have a valid certificate will be able to reach the app. The TLS mutual authentication techn...AzureAppServiceCIS Azure v2.0.0 9.44Microsoft.Web.sites
Web App Does Not Have Azure Active Directory EnabledManaged service identity in App Service provides more security by eliminating secrets from the app, such as credentials in the connection strings. When registering with Azure Active Directory in App S...AzureAppServiceCIS Azure v2.0.0 9.54Microsoft.Web.sites
Web App Does Not Use Latest HTTP VersionPeriodically, newer versions are released for HTTP either due to security flaws or to include additional functionality. Using the latest HTTP version for web apps to take advantage of security fixes, ...AzureAppServiceCIS Azure v2.0.0 9.94Microsoft.Web.sites
Web App Does Not Have FTP Deployments DisabledBy default, Azure Functions, Web, and API Services can be deployed over FTP. If FTP is required for an essential deployment workflow, FTPS should be required for FTP login for all App Service Apps and...AzureAppServiceCIS Azure v2.0.0 9.104Microsoft.Web.sites
App Service app Slots Should Require FTPS OnlyEnable FTPS enforcement for enhanced security....AzureAppService3Microsoft.Web.sites.slots
Function Apps Should Require FTPS OnlyEnable FTPS enforcement for enhanced security....AzureAppService3Microsoft.Web.sites
Function Apps Slots Should Require FTPS OnlyEnable FTPS enforcement for enhanced security....AzureAppService3Microsoft.Web.sites.slots
Function Apps Should Have Authentication EnabledAzure App Service Authentication is a feature that can prevent anonymous HTTP requests from reaching the Function app, or authenticate those that have tokens before they reach the Function app....AzureAppService3Microsoft.Web.sites
Custom Role Has Admin PrivilegesThe principle of least privilege should be followed and only necessary privileges should be assigned instead of allowing full administrative access. Classic subscription admin roles offer basic access...AzureAccess Control (IAM)CIS Azure v2.0.0 1.233Microsoft.Authorization.roleDefinitions
Logging for Azure Key Vault is Not EnabledEnable AuditEvent logging for key vault instances to ensure interactions with key vaults are logged and available. Monitoring how and when key vaults are accessed, and by whom, enables an audit trail...AzureKeyVaultCIS Azure v2.0.0 5.1.52Microsoft.KeyVault.vaults
Key Vault Is Not RecoverableThe Key Vault contains object keys, secrets, and certificates. Accidental unavailability of a Key Vault can cause immediate data loss or loss of security functions (authentication, validation, verific...AzureKeyVaultCIS Azure v2.0.0 8.54Microsoft.KeyVault.vaults
Expiration Date Is Not Set For Key Vault SecretEnsure that all Secrets in Azure Key Vaults have an expiration date set. The Azure Key Vault enables users to store and keep secrets within the Microsoft Azure environment. Secrets in the Azure Key V...AzureKeyVaultCIS Azure v2.0.0 8.3, CIS Azure v2.0.0 8.44Microsoft.KeyVault.vaults.secrets
Expiration Date Is Not Set For Key Vault KeyEnsure that all Keys in Azure Key Vaults have an expiration date set. Azure Key Vault enables users to store and use cryptographic keys within the Microsoft Azure environment. The exp (expiration d...AzureKeyVaultCIS Azure v2.0.0 8.1, CIS Azure v2.0.0 8.24Microsoft.KeyVault.vaults.keys
Enforce SSL Is Not Enabled for MySQL Database ServerSSL connectivity helps to provide a new layer of security by connecting database server to client applications using Secure Sockets Layer (SSL). Enforcing SSL connections between database server and c...AzureMySQLCIS Azure v2.0.0 4.4.14Microsoft.DBforMySQL.servers.databases
MySQL Flexible Server TLS Version Is Not TLSV1.2TLS connectivity helps to provide a new layer of security by connecting database server to client applications using Transport Layer Security (TLS). Enforcing TLS connections between database server a...AzureMySQLCIS Azure v2.0.0 4.4.23Microsoft.DBforMySQL.flexibleservers.databases
Audit Log Is Not Enabled for MySQL Database ServerEnabling audit_log_enabled helps MySQL Database to log items such as connection attempts to the server, DDL/DML access, and more. Log data can be used to identify, troubleshoot, and repair configurati...AzureMySQLCIS Azure v2.0.0 4.4.33Microsoft.DBforMySQL.servers.databases
MySQL Server Parameter 'audit_log_events' Is Not Set To 'CONNECTION'Enabling CONNECTION helps MySQL Database to log items such as successful and failed connection attempts to the server. Log data can be used to identify, troubleshoot, and repair configuration errors a...AzureMySQLCIS Azure v2.0.0 4.4.43Microsoft.DBforMySQL.servers.databases
Enforce SSL Is Not Enabled for PostgreSQL Database ServerSSL connectivity helps to provide a new layer of security by connecting database server to client applications using Secure Sockets Layer (SSL). Enforcing SSL connections between database server and c...AzurePostgreSQLCIS Azure v2.0.0 4.3.14Microsoft.DBforPostgreSQL.servers.databases
PostgreSQL Server Parameter "log_checkpoints" Is Not EnabledEnabling log_checkpoints helps the PostgreSQL Database to Log each checkpoint in turn generates query and error logs. However, access to transaction logs is not supported. Query and error logs can be ...AzurePostgreSQLCIS Azure v2.0.0 4.3.24Microsoft.DBforPostgreSQL.servers.databases
PostgreSQL Server Parameter "log_connections" Is Not EnabledEnabling log_connections helps PostgreSQL Database to log attempted connection to the server, as well as successful completion of client authentication. Log data can be used to identify, troubleshoot,...AzurePostgreSQLCIS Azure v2.0.0 4.3.33Microsoft.DBforPostgreSQL.servers.databases
PostgreSQL Server Parameter "log_disconnections" Is Not EnabledEnabling log_disconnections helps PostgreSQL Database to Logs end of a session, including duration, which in turn generates query and error logs. Query and error logs can be used to identify, troubles...AzurePostgreSQLCIS Azure v2.0.0 4.3.43Microsoft.DBforPostgreSQL.servers.databases
PostgreSQL Server Parameter "log_retention_days" Is Not Greater Than 3 DaysConfiguring log_retention_days determines the duration in days that Azure Database for PostgreSQL retains log files. Query and error logs can be used to identify, troubleshoot, and repair configuratio...AzurePostgreSQLCIS Azure v2.0.0 4.3.63Microsoft.DBforPostgreSQL.servers.databases
PostgreSQL Server Parameter "connection_throttling" Is Not EnabledEnabling connection_throttling helps the PostgreSQL Database to Set the verbosity of logged messages. This in turn generates query and error logs with respect to concurrent connections that could lead...AzurePostgreSQLCIS Azure v2.0.0 4.3.53Microsoft.DBforPostgreSQL.servers.databases
PostgreSQL Server Does Not Restrict Access for Azure ServicesIf access from Azure services is enabled, the server's firewall will accept connections from all Azure resources, including resources not in your subscription. This is usually not a desired configurat...AzurePostgreSQLCIS Azure v2.0.0 4.3.73Microsoft.DBforPostgreSQL.servers.databases
PostgreSQL Server Parameter "infrastructure_encryption" Is Not EnabledIf Double Encryption is enabled, another layer of encryption is implemented at the hardware level before the storage or network level. Information will be encrypted before it is even accessed, prevent...AzurePostgreSQLCIS Azure v2.0.0 4.3.83Microsoft.DBforPostgreSQL.servers.databases
Azure SQL Database Allows Ingress From 0.0.0.0/0Azure SQL Server includes a firewall to block access to unauthorized connections. More granular IP addresses can be defined by referencing the range of addresses available from specific datacenters. ...AzureMsSqlDatabaseCIS Azure v2.0.0 4.1.24Microsoft.Sql.servers
Azure SQL Database 'Auditing' Is Not Set to 'On'The Azure platform allows a SQL server to be created as a service. Enabling auditing at the server level ensures that all existing and newly created databases on the SQL server instance are audited. A...AzureMsSqlDatabaseCIS Azure v2.0.0 4.1.14Microsoft.Sql.servers
SQL Server's Transparent Data Encryption (TDE) Protector Is Encrypted With Customer-Managed KeyTransparent Data Encryption (TDE) with Customer-managed key support provides increased transparency and control over the TDE Protector, increased security with an HSM-backed external service, and prom...AzureMsSqlDatabaseCIS Azure v2.0.0 4.1.34Microsoft.Sql.servers
Azure Active Directory Admin is Not Configured for SQL ServersAzure Active Directory authentication is a mechanism to connect to Microsoft Azure SQL Database and SQL Data Warehouse by using identities in Azure Active Directory (Azure AD). With Azure AD authentic...AzureMsSqlDatabaseCIS Azure v2.0.0 4.1.44Microsoft.Sql.servers
Data Encryption Is Not Enabled On SQL DatabaseAzure SQL Database transparent data encryption helps protect against the threat of malicious activity by performing real-time encryption and decryption of the database, associated backups, and transac...AzureMsSqlDatabaseCIS Azure v2.0.0 4.1.54Microsoft.Sql.servers.databases
Auditing Retention Is Less Than 90 DaysSQL Server Audit Retention should be configured to be greater than 90 days. Audit Logs can be used to check for anomalies and give insight into suspected breaches or misuse of information and access....AzureMsSqlDatabaseCIS Azure v2.0.0 4.1.63Microsoft.Sql.servers
Microsoft Defender for SQL Is Not EnabledMicrosoft Defender for SQL is a unified package for advanced SQL security capabilities. Microsoft Defender is available for Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse Analytics....AzureMsSqlDatabaseCIS Azure v2.0.0 4.2.13Microsoft.Sql.servers
Vulnerability Assessments Are Not Enabled On SQL ServerEnabling Microsoft Defender for SQL server does not enable Vulnerability Assessment capability for individual SQL databases unless storage account is set to store the scanning data and reports. T...AzureMsSqlDatabaseCIS Azure v2.0.0 4.2.23Microsoft.Sql.servers
Vulnerability Assessment Recurring Scans Not Enabled On SQL ServerVA setting 'Periodic recurring scans' schedules periodic (weekly) vulnerability scanning for the SQL server and corresponding Databases. Periodic and regular vulnerability scanning provides risk visib...AzureMsSqlDatabaseCIS Azure v2.0.0 4.2.33Microsoft.Sql.servers
Vulnerability Assessment Scan Reports Do Not Have RecipientsConfigure 'Send scan reports to' with email addresses of concerned data owners/stakeholders for a critical SQL servers. Vulnerability Assessment (VA) scan reports and alerts will be sent to email...AzureMsSqlDatabaseCIS Azure v2.0.0 4.2.43Microsoft.Sql.servers
Vulnerability Assessment Reports Are Not Sent to AdminsEnable Vulnerability Assessment (VA) setting 'Also send email notifications to admins and subscription owners'. VA scan reports and alerts will be sent to admins and subscription owners by enabling...AzureMsSqlDatabaseCIS Azure v2.0.0 4.2.53Microsoft.Sql.servers
Azure SQL Database Configured as Synapse Link SourceThis check fails if the Azure SQL Database is configured as a Synapse Link source. When enabled, Synapse Link may allow data access that bypasses standard SQL Database firewall rules, potentially expo...AzureSQL Database4Microsoft.Sql.servers.databases
Storage Account Does Not Allow Azure Service AccessSome Azure services that interact with storage accounts operate from networks that can't be granted access through network rules. To help this type of service work as intended, allow the set of trus...AzureStorageCIS Azure v2.0.0 3.93Microsoft.Storage.storageAccounts
Storage Account Does Not Require Infrastructure EncryptionAzure Storage automatically encrypts all data in a storage account at the network level using 256-bit AES encryption, which is one of the strongest, FIPS 140-2-compliant block ciphers available. Custo...AzureStorageCIS Azure v2.0.0 3.24Microsoft.Storage.storageAccounts
Storage Account Allows Public Network AccessThe default configuration for a storage account permits a user with appropriate permissions to configure public (anonymous) access to containers and blobs in a storage account. Keep in mind that publ...AzureStorageCIS Azure v2.0.0 3.73Microsoft.Storage.storageAccounts
Storage Account Does Not Require Secure TransferThe secure transfer option enhances the security of a storage account by only allowing requests to the storage account by a secure connection. For example, when calling REST APIs to access storage acc...AzureStorageCIS Azure v2.0.0 3.13Microsoft.Storage.storageAccounts
Storage Logging Is Not Enabled for Queue ServiceThe Storage Queue service stores messages that may be read by any client who has access to the storage account. A queue can contain an unlimited number of messages, each of which can be up to 64KB in ...AzureStorageCIS Azure v2.0.0 3.53Microsoft.Storage.storageAccounts
Default Network Access Rule Is Not Set to DenyRestricting default network access helps to provide a new layer of security, since storage accounts accept connections from clients on any network. To limit access to selected networks, the default ac...AzureStorageCIS Azure v2.0.0 3.83Microsoft.Storage.storageAccounts
Soft Delete Is Not Enabled for Azure Containers and Blob StorageThe Azure Storage blobs contain data like ePHI or Financial, which can be secret or personal. Data that is erroneously modified or deleted by an application or other storage account user will cause da...AzureStorageCIS Azure v2.0.0 3.113Microsoft.Storage.storageAccounts
Private Endpoints Are Not Used for Storage AccountsUse private endpoints for your Azure Storage accounts to allow clients and services to securely access data located over a network via an encrypted Private Link. To do this, the private endpoint uses ...AzureStorageCIS Azure v2.0.0 3.103Microsoft.Storage.storageAccounts
Storage Logging Is Not Enabled for Blob Service RequestsThe Storage Blob service provides scalable, cost-efficient object storage in the cloud. Storage Logging happens server-side and allows details for both successful and failed requests to be recorded in...AzureStorageCIS Azure v2.0.0 3.133Microsoft.Storage.storageAccounts
Storage Logging Is Not Enabled for Table Service RequestsAzure Table storage is a service that stores structured NoSQL data in the cloud, providing a key/attribute store with a schema-less design. Storage Logging happens server-side and allows details for b...AzureStorageCIS Azure v2.0.0 3.143Microsoft.Storage.storageAccounts
Activity Log Alert Does Not Exist for Create or Update Network Security GroupCreate an activity log alert for the Create or Update Network Security Group event. Monitoring for Create or Update Network Security Group events gives insight into network access changes and may red...AzureMonitorCIS Azure v2.0.0 5.2.33Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Create Policy AssignmentCreate an activity log alert for the Create Policy Assignment event. Monitoring for create policy assignment events gives insight into changes done in "Azure policy - assignments" and can reduce the ...AzureMonitorCIS Azure v2.0.0 5.2.13Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Delete Policy AssignmentCreate an activity log alert for the Delete Policy Assignment event. Monitoring for delete policy assignment events gives insight into changes done in "Azure policy - assignments" and can reduce the ...AzureMonitorCIS Azure v2.0.0 5.2.23Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Delete Network Security GroupCreate an activity log alert for the Delete Network Security Group event. Monitoring for Delete Network Security Group events gives insight into network access changes and may reduce the time it take...AzureMonitorCIS Azure v2.0.0 5.2.43Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Create or Update Security SolutionCreate an activity log alert for the Create or Update Security Solution event. Monitoring for Create or Update Security Solution events gives insight into changes to the active security solutions a...AzureMonitorCIS Azure v2.0.0 5.2.53Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Delete Security SolutionCreate an activity log alert for the Delete Security Solution event. Monitoring for Delete Security Solution events gives insight into changes to the active security solutions and may reduce the ti...AzureMonitorCIS Azure v2.0.0 5.2.63Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Create or Update SQL Server Firewall RuleCreate an activity log alert for the Create or Update SQL Server Firewall Rule event. Monitoring for Create or Update SQL Server Firewall Rule events gives insight into network access changes and may...AzureMonitorCIS Azure v2.0.0 5.2.73Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Delete SQL Server Firewall RuleCreate an activity log alert for the Delete SQL Server Firewall Rule event. Monitoring for Delete SQL Server Firewall Rule events gives insight into network access changes and may reduce the time it ...AzureMonitorCIS Azure v2.0.0 5.2.83Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Create or Update Public IP Address RuleCreate an activity log alert for the Create or Update Public IP Address rule. Monitoring for Create or Update Public IP Address events gives insight into network access changes and may reduce the tim...AzureMonitorCIS Azure v2.0.0 5.2.93Custom::Microsoft::Subscription
Activity Log Alert Does Not Exist for Delete Public IP Address RuleCreate an activity log alert for the Delete Public IP Address rule. Monitoring for Delete Public IP Address events gives insight into network access changes and may reduce the time it takes to dete...AzureMonitorCIS Azure v2.0.0 5.2.103Custom::Microsoft::Subscription
Application Insights Are Not ConfiguredApplication Insights within Azure act as an Application Performance Monitoring solution providing valuable data into how well an application performs and additional information when performing inciden...AzureMonitorCIS Azure v2.0.0 5.3.13Custom::Microsoft::Subscription
Storage Account With Activity Logs is Not Encrypted With Customer Managed KeyStorage accounts with the activity log exports can be configured to use Customer Managed Keys (CMK). Configuring the storage account with the activity log export container to use CMKs provides add...AzureMonitorCIS Azure v2.0.0 5.1.43Custom::Microsoft::Subscription
Subscription Does Not Contain Proper Diagnostic Settings CategoriesA diagnostic setting controls how the diagnostic log is exported. Capturing the diagnostic setting categories for appropriate control/management plane activities allows proper alerting. Remediation f...AzureMonitorCIS Azure v2.0.0 5.1.22Custom::Microsoft::Subscription
The Storage Container Storing the Activity Logs is Publicly AccessibleThe storage account container containing the activity log export should not be publicly accessible. Allowing public access to activity log content may aid an adversary in identifying weaknesses in th...AzureMonitorCIS Azure v2.0.0 5.1.34Custom::Microsoft::Subscription
Security Alert Emails to Subscription Owners Not EnabledEnabling security alert emails to subscription owners ensures that they receive security alert emails from Microsoft. This ensures that they are aware of any potential security issues and can mitigate...AzureCIS Azure v2.0.0 2.1.183Custom::Microsoft::Subscription
Security Contact Email Not ConfiguredMicrosoft Defender for Cloud emails the Subscription Owner to notify them about security alerts. Adding your Security Contact's email address to the 'Additional email addresses' field ensures that you...AzureCIS Azure v2.0.0 2.1.193Custom::Microsoft::Subscription
Security Alert Severity Not Set to HighEnabling security alert emails ensures that security alert emails are received from Microsoft. This ensures that the right people are aware of any potential security issues and are able to mitigate th...AzureCIS Azure v2.0.0 2.1.203Custom::Microsoft::Subscription
Cosmos DB Does Not Have Virtual Network Filtering EnabledSelecting certain networks for your Cosmos DB to communicate restricts the number of networks including the internet that can interact with what is stored within the database. Failure to whitelist the...AzureAzure Cosmos DBCIS Azure v2.0.0 4.5.13Microsoft.DocumentDB.databaseAccounts.accounts
Resource is Using Basic or Free SKUThe use of Basic or Free SKUs in Azure whilst cost effective have significant limitations in terms of what can be monitored and what support can be realized from Microsoft. Typically, these SKU’s do n...AzureNetwork ManagerCIS Azure v2.0.0 5.52Microsoft.Network.publicIPAddresses, Microsoft.Network.loadBalancers, Microsoft.Cache.Redis, Microsoft.Sql.servers.databases, Microsoft.Network.virtualNetworkGateways
Bastion Host Does Not ExistThe Azure Bastion service allows secure remote access to Azure Virtual Machines over the Internet without exposing remote access protocol ports and services directly to the Internet. The Azure Bastion...AzureNetwork ManagerCIS Azure v2.0.0 7.13Custom::Microsoft::Subscription
Network Security Group Flow Log Retention Is Not Greater Than 90 DaysNetwork Security Group Flow Logs should be enabled and the retention period set to greater than or equal to 90 days. Flow logs enable capturing information about IP traffic flowing in and out of ne...AzureNetwork ManagerCIS Azure v2.0.0 6.53Microsoft.Network.networkSecurityGroups
Network Security Group Does Not Restrict HTTP Access From The InternetNetwork security groups should be periodically evaluated for port misconfigurations. Where certain ports and protocols may be exposed to the Internet, they should be evaluated for necessity and restri...AzureNetwork ManagerCIS Azure v2.0.0 6.43Microsoft.Network.networkSecurityGroups
Hub Virtual Network Connection Default Route Propagation is MisconfiguredThis setting allows Virtual Hub to propagate a learned default route to this connection. This flag enables default route propagation to a connection only if the default route is already learned by the...AzureVirtual WANEnable this Check, Propagate Default Route1Microsoft.Network.virtualHubs.hubVirtualNetworkConnections
Network Security Group Is Not Assigned To A SubnetFails if a network security group is not associated with at least one subnet....AzureNetwork ManagerEnable this Check1Microsoft.Network.networkSecurityGroups
Azure Public IP Address ExistsThis check fails if a public IP address exists in the Azure environment. Public IP addresses expose resources directly to the internet, which can increase the attack surface of your infrastructure....AzureNetworkingEnable this Check4Microsoft.Network.publicIPAddresses
Network Security Group Does Not Restrict RDP Access From The InternetNetwork security groups should be periodically evaluated for port misconfigurations. Where certain ports and protocols may be exposed to the Internet, they should be evaluated for necessity and restri...AzureNetwork ManagerCIS Azure v2.0.0 6.13Microsoft.Network.networkSecurityGroups
Network Security Group Does Not Restrict SSH Access From The InternetNetwork security groups should be periodically evaluated for port misconfigurations. Where certain ports and protocols may be exposed to the Internet, they should be evaluated for necessity and restri...AzureNetwork ManagerCIS Azure v2.0.0 6.23Microsoft.Network.networkSecurityGroups
Azure Synapse Workspace Public Network Access EnabledChecks if public network access is enabled for Azure Synapse workspaces....AzureSynapse4Microsoft.Synapse.workspaces
Network Security Group Does Not Restrict UDP Access From The InternetNetwork security groups should be periodically evaluated for port misconfigurations. Where certain ports and protocols may be exposed to the Internet, they should be evaluated for necessity and restri...AzureNetwork ManagerCIS Azure v2.0.0 6.33Microsoft.Network.networkSecurityGroups
Virtual Network With Application Gateway Is Not Protected By Azure DDoS ProtectionProtect your virtual networks that have Application Gateways attached against volumetric and protocol attacks with Azure DDoS Protection. For more information, visit [https://aka.ms/ddosprotectiondocs...AzureNetwork4Microsoft.Network.virtualNetworks
Virtual Network Does Not Have Security GroupNetwork Security Groups on Virtual Networks in Azure are important for maintaining robust security controls. They act as a firewall, managing inbound and outbound network traffic, which helps to preve...AzureNetwork ManagerEnable this Check1Microsoft.Network.virtualNetworks
Virtual Network Has a VPN GatewayFails if a subnet within an Azure virtual network has a VPN gateway attached....AzureNetwork ManagerEnable this Check1Microsoft.Network.virtualNetworks
Network Watcher Is Not EnabledEnable Network Watcher for Azure subscriptions. Network diagnostic and visualization tools available with Network Watcher help users understand, diagnose, and gain insights to the network in Azure. ...AzureNetwork WatcherCIS Azure v2.0.0 6.63Custom::Microsoft::Subscription
Virtual Machine Does Not Use Managed DiskMigrate blob-based VHDs to Managed Disks on Virtual Machines to exploit the default features of this configuration. Managed disks are by default encrypted on the underlying hardware, so no additi...AzureComputeCIS Azure v2.0.0 7.23Microsoft.Compute.VirtualMachine
Virtual Machine Disks Are Not Encrypted With Customer Managed KeyEnsure that OS disks (boot volumes) and data disks (non-boot volumes) are encrypted with CMK (Customer Managed Keys). Customer Managed keys can be either ADE or Server Side Encryption (SSE). Encrypt...AzureComputeCIS Azure v2.0.0 7.33Microsoft.Compute.VirtualMachine
Unattached Disks Are Not Encrypted With Customer Managed KeyEnsure that unattached disks in a subscription are encrypted with a Customer Managed Key (CMK). Managed disks are encrypted by default with Platform-managed keys. Using Customer- managed keys may...AzureComputeCIS Azure v2.0.0 7.43Microsoft.Compute.Disks
Virtual Machine Has Public IPThis check verifies that an Azure Virtual Machine does not have a public IP address assigned to it. If a Virtual Machine needs to communicate with the internet, consider using a service that provides ...AzureCompute3Microsoft.Compute.VirtualMachineMicrosoft.Network.networkInterfaces