View a markdown version of this page

Quotas - Automated Security Response on AWS

Quotas

Service quotas, also referred to as limits, are the maximum number of service resources or operations for your AWS account.

Quotas for AWS services in this solution

Make sure you have sufficient quota for each of the services implemented in this solution. For more information, refer to AWS service quotas.

Use the following links to go to the page for that service. To view the Service Quotas for all AWS services in the documentation without switching pages, view the information in the Service endpoints and quotas page in the PDF instead.

AWS CloudFormation quotas

Your AWS account has AWS CloudFormation quotas that you should be aware of when launching the stack in this solution. By understanding these quotas, you can avoid limitation errors that would prevent you from deploying this solution successfully. For more information, see AWS CloudFormation quotas in the AWS CloudFormation User Guide.

Amazon CloudWatch quotas

Your AWS account has Amazon CloudWatch quotas tied to CloudWatch Resource Policies, which allow only 10 resource policies per Region per account and cannot be increased. For more information, see Amazon CloudWatch Logs Quotas in the Amazon CloudWatch User Guide. Before your deployment, check your current usage to ensure you won’t cross this threshold when deploying the solution.

AWS Organizations

The solution’s Lambda functions make calls to the AWS Organizations API in order to fetch the alias of the current account to include in messages published to the solution’s SNS topic. This enables human-readable account names to be visible in the solution’s notifications for debugging and tracking purposes.

AWS Organizations imposes limits on how often customers can invoke their API endpoints. If you find that the solution is exceeding the limits set for your account, you can disable the feature that fetches and displays the account alias.

To do this, navigate to the Lambda function named SO0111-ASR-sendNotifications located in the region and account where you deployed the Admin stack. Then, locate the environment variable named DISABLE_ACCOUNT_ALIAS_LOOKUP and change the value from "False" to "True". The account alias field in the solution’s notifications will now be "Unknown" however this will not impact the functionality of the solution.

Solution limits and defaults

In addition to the AWS service quotas described above, the solution applies its own default limits that are set in the AWS CDK configuration. These are configurable and sit well below the underlying AWS service quotas. They exist as safety floors to contain unexpected load or runaway loops, not as tight per-user quotas. The tables below list the values that differ from the corresponding AWS service default.

Limit Solution default AWS service default

Amazon API Gateway stage throttle (account-wide)

500 requests/second steady, 1,000 burst

10,000 requests/second, 5,000 burst

AWS WAF per-user rate limit (60-second window)

1,000 requests

No default rule

AWS WAF per-IP rate limit (60-second window)

2,000 requests

No default rule

AWS WAF sensitive-write rate limit (60-second window)

300 requests

No default rule

Note

The per-user rate limits aggregate on the caller’s access token; requests without one are covered by the per-IP rule. Requests that exceed an AWS WAF rate-based rule are blocked and receive an HTTP 429 (Too Many Requests) response with a JSON body.

The solution also configures the following CloudWatch alarm thresholds for observability. These alarms notify operators; they do not block requests.

Alarm Threshold

Control state changes

5 per minute

Sensitive writes

20 per minute

The following compute and processing defaults apply:

Limit Solution default AWS service default

Orchestrator (AWS Step Functions) execution timeout

23 hours

1 year (maximum)

Notification dispatcher Lambda function memory

256 MB

128 MB

Notification dispatcher Lambda function reserved concurrency

10

None (unreserved)

Notification dispatcher Lambda function timeout

30 seconds (60 seconds for webhook delivery)

3 seconds

Amazon SQS message retention

14 days

4 days

AWS KMS data key reuse period

60 minutes

5 minutes

The solution sets the following data retention (Amazon DynamoDB TTL and Amazon S3) and export limits:

Item Solution default

Findings retention

8 days

Remediation History retention

365 days

Export file retention

30 days

Pre-signed URL validity

1 day

Maximum export time per request

26,000 milliseconds

Maximum records per export

50,000