Skip to content

Commit 4f919c1

Browse files
CSOAR-3203 : modified the existing doc as per new documentation content
1 parent 0d55cb9 commit 4f919c1

File tree

2 files changed

+181
-2
lines changed
  • docs/platform-services/automation-service/app-central/integrations
  • static/img/platform-services/automation-service/app-central/integrations/aws-waf

2 files changed

+181
-2
lines changed

docs/platform-services/automation-service/app-central/integrations/aws-waf.md

Lines changed: 181 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,60 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
99
***Version: 1.1
1010
Updated: March 26, 2025***
1111

12+
## Overview
13+
### Purpose
1214
AWS WAF is a web application firewall that helps protect web applications from attacks by allowing you to configure rules that allow, block, or monitor (count) web requests based on conditions that you define.
15+
This integration is designed to manage and retrieve WAF security configurations, including IP sets, regex pattern sets, rule groups, and WebACLs. It enables you to define, update, delete, and retrieve security rule assets that inspect and control web request traffic.
1316

14-
## Actions
17+
### Use cases
18+
* Creating and managing IP allowlists/denylists
19+
* Defining regex-based pattern rules for request inspection
20+
* Grouping multiple rules in custom rule groups
21+
* Fetching details and summaries of rule components
22+
* Updating existing rules in response to new threats
23+
24+
### Supported Versions
25+
This integration supports **WAFv2 API** actions and works with resources.
26+
It is compatible with all standard environments where WAFv2 actions are supported.
27+
28+
### Prerequisites
29+
* IAM permissions for:
30+
* **wafv2:CreateIPSet, DeleteIPSet, UpdateIPSet, GetIPSet, ListIPSets**
31+
* **wafv2:CreateRegexPatternSet, DeleteRegexPatternSet, ListRegexPatternSets**
32+
* **wafv2:CreateRuleGroup, DeleteRuleGroup, GetRuleGroup, ListRuleGroups**
33+
* **wafv2:GetWebACL, ListWebACLs, ListResourcesForWebACL**
34+
* **wafv2:GetManagedRuleSet, ListManagedRuleSets, ListAvailableManagedRuleGroups**
35+
* Proper region selection for WAFv2 API calls (**regional** or **global scope**)
36+
* API credentials with sufficient access
37+
38+
### Limitations
39+
* Regex complexity may be limited by the WAF regex engine's constraints
40+
* All changes require propagation time before taking effect (~1-2 minutes)
41+
42+
## Getting Started
43+
44+
### Installation
45+
Install the AWS WAF application from app-central using Sumo Logic CSOAR UI.
46+
47+
### Configuration
48+
After installing the AWS WAF application, create an AWS WAF resource to begin executing actions.
49+
Refer to the image below for guidance on creating an AWS WAF resource.
1550

51+
<br/><img src={useBaseUrl('/img/platform-services/automation-service/app-central/integrations/aws-waf/aws-waf-1.png')} style={{border:'1px solid gray'}} alt="/aws-waf" width="800"/>
52+
53+
Provide the following details:
54+
* Access Key
55+
* Secret Key
56+
* AWS Region
57+
* Scope
58+
* Automation Engine
59+
60+
Once the information is filled in, click on Test to quickly verify that the provided details are correct.
61+
62+
### Verification
63+
To verify the integration is working, execute any Enrichment action, or once resource created test the resource.
64+
65+
## Actions
1666
* **Create IP Set** (*Containment*) - Creates an IPSet, used to identify web requests that originate from specific IP addresses or ranges of IP addresses.
1767
* **Create Regex Pattern Set** (*Containment*) - Creates a RegexPatternSet, which you reference in a RegexPatternSetReferenceStatement, to have AWS WAF inspect a web request component for the specified patterns.
1868
* **Create Rule Group** (*Containment*) - Creates a RuleGroup per the specifications provided.
@@ -32,6 +82,133 @@ AWS WAF is a web application firewall that helps protect web applications from a
3282
* **List Web ACLs** (*Enrichment*) - Retrieves a list of WebACLSummary objects for the web ACLs that you manage.
3383
* **Update IP Set** (*Containment*) - Updates the specified IPSet.
3484

85+
## Usage
86+
### Basic Usage
87+
* Create an IP Set (allow/block IPs)
88+
* Create a Regex Pattern Set (match request components)
89+
* Group rules using Rule Groups
90+
* Retrieve or list existing components for monitoring or inspection
91+
### Advanced Usage
92+
* Bulk Listing & Auditing: List all rule groups, regex sets, IP sets, and WebACLs and map their usage across resources
93+
94+
## API Reference
95+
### Configuration
96+
Each API call uses the following structure:
97+
* Method: Generally POST or GET depending on the action.
98+
* Authentication: AWS Signature V4
99+
* Scope: REGIONAL or CLOUDFRONT
100+
101+
### Containment APIs
102+
**Create IP Set**
103+
* Method: POST
104+
* Action: CreateIPSet
105+
* Required Parameters:
106+
* Name (string)
107+
* Scope (REGIONAL | CLOUDFRONT)
108+
* IPAddressVersion (IPV4 | IPV6)
109+
* Addresses (list of IPs or CIDRs)
110+
* Description (optional)
111+
````
112+
* Sample Request (Python)
113+
client.create_ip_set(
114+
Name='BlockList',
115+
Scope='REGIONAL',
116+
IPAddressVersion='IPV4',
117+
Addresses=['x.x.x.x/24'],
118+
Description='Block bad IPs'
119+
)
120+
121+
Sample Response (Json)
122+
{
123+
"Summary": {
124+
"Name": "BlockList",
125+
"Id": "123abcde-4567-890a-bcde-1234567890ab",
126+
"ARN": "arn:aws:wafv2:us-east-1:123456789012:regional/ipset/BlockList/123abcde-4567-890a-bcde-1234567890ab",
127+
"Description": "Block bad IPs",
128+
"LockToken": "e1b2c3d4-5678-9101-1121-314151617181"
129+
}
130+
}
131+
````
132+
**Create Regex Pattern Set**
133+
* Method: POST
134+
* Action: CreateRegexPatternSet
135+
* Required Parameters:
136+
* Name, Scope, RegularExpressionList, Description (optional)
137+
138+
**Create Rule Group**
139+
* Method: POST
140+
* Action: CreateRuleGroup
141+
* Required Parameters:
142+
* Name, Scope, Capacity, Rules, VisibilityConfig
143+
144+
**Update IP Set**
145+
* Method: POST
146+
* Action: UpdateIPSet
147+
* Required Parameters:
148+
* Id, LockToken, Name, Scope, Addresses
149+
150+
**Delete IP Set / Regex Pattern Set / Rule Group**
151+
* Method: POST
152+
* Action: Delete_(TYPE)
153+
* Required Parameters:
154+
* Id, Name, Scope, LockToken
155+
156+
### Enrichment APIs
157+
**Get IP Set / Rule Group / Web ACL / Managed Rule Set**
158+
* Method: GET
159+
* Action: Get(Type) ex: Get IP Set/Get Rule Group
160+
* Required Parameters:
161+
* Id, Name, Scope
162+
163+
**List IP Sets / Regex Pattern Sets / Rule Groups / Web ACLs / Managed Rule Sets**
164+
* Method: GET
165+
* Action: List(Type)s
166+
* Optional Parameters: Limit, NextMarker
167+
168+
**List Resources for Web ACLs**
169+
* Method: GET
170+
* Action: ListResourcesForWebACL
171+
* Required Parameters:
172+
* WebACLArn
173+
174+
### Rate Limits and Quotas
175+
````
176+
API Type Quota / Rate Limit
177+
IP sets per region 100
178+
Regex sets per region 100
179+
Rule groups per region 100
180+
API Transactions (TPS) ~5-10 TPS per account per API
181+
````
182+
**Limits may vary by region and can be increased via AWS Support.**
183+
184+
## Troubleshooting
185+
### Common Issues
186+
````
187+
ISSUES DESCRIPTION SOLUTION
188+
WAFNonexistentItemException Occurs when trying to access or delete a non-existent resource Double-check the Id, Name, and Scope. Use List APIs to confirm existence.
189+
WAFOptimisticLockException Indicates a stale or missing LockToken when updating or deleting resources Always fetch the latest LockToken using Get API before performing updates/deletes.
190+
WAFInvalidParameterException One or more parameters are invalid or missing Verify that all required parameters are included and correctly formatted (e.g., CIDR for IP sets).
191+
ThrottlingException Request rate exceeds allowed TPS Implement exponential backoff and retry logic. Respect rate limits defined in your account.
192+
AccessDeniedException Occurs when permissions are insufficient Check IAM roles and policies assigned to the user or service making the request. Ensure wafv2:* permissions are included.
193+
Resource still appears after deletion A deleted IPSet, RuleGroup, etc. still seems accessible in the UI or APIs Allow a few seconds for propagation. Use Get<Type> or List<Type>s to confirm removal.
194+
IP addresses not being blocked Traffic from listed IPs still reaches the application Ensure the IPSet is attached to a WebACL and the WebACL is associated with the resource (e.g., CloudFront or ALB).
195+
````
196+
### FAQs
197+
* Q1: Can I reuse an IPSet in different rule groups?
198+
* Yes, an IPSet can be used in several rule groups or WebACLs. You don’t need to create a new one for each use.
199+
* Q2: What’s the difference between REGIONAL and CLOUDFRONT scopes?
200+
* REGIONAL is used for AWS services like Application Load Balancers, API Gateway, and App Runner.
201+
* CLOUDFRONT is specifically for CloudFront distributions and must be managed in the US East (N. Virginia) region.
202+
* Q3: Why aren’t my changes showing up right away?
203+
* Updates can take a few moments to fully apply within AWS. Try retrieving the latest configuration using the appropriate Get<Type> API call to confirm.
204+
* Q4: What if the IP address I provide isn’t in CIDR format?
205+
* If the IP isn’t formatted correctly (e.g., missing the CIDR suffix), AWS WAF will return a WAFInvalidParameterException. Make sure IPs follow the CIDR notation like 192.0.2.0/24.
206+
207+
### Support
208+
* **[AWS WAF Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/)**
209+
* **[AWS WAF API Reference](https://docs.aws.amazon.com/waf/latest/APIReference/)**
210+
* **[Contact AWS Support](https://aws.amazon.com/support)**
211+
35212
## External Libraries
36213

37214
* [boto3](https://github.com/boto/boto3/blob/develop/LICENSE)
@@ -43,6 +220,8 @@ import IntegrationsAuth from '../../../../reuse/integrations-authentication.md';
43220
<IntegrationsAuth/>
44221

45222
## Change Log
46-
223+
### Version History
47224
* April 19, 2024 (v1.0)- First upload
48225
* March 26, 2025 (v1.1) - Added **Update IP Set** action: This new action allows users to add or remove IPs from an existing IP Set.
226+
### Deprecation Notices
227+
* NA
136 KB
Loading

0 commit comments

Comments
 (0)