AWSTemplateFormatVersion: 2010-09-09
Description: 'WAF rule to limit access to requests originating from Salesforce IP ranges only.'
Resources:
SfdcIPSet:
Type: AWS::WAFv2::IPSet
Properties:
Description: 'Salesforce IP ranges'
Name: 'SfdcIPSet'
Scope: REGIONAL
IPAddressVersion: IPV4
Addresses:
- '13.108.0.0/14'
- '96.43.144.0/20'
- '136.146.0.0/15'
- '204.14.232.0/21'
- '85.222.128.0/19'
- '185.79.140.0/22'
- '101.53.160.0/19'
- '182.50.76.0/22'
- '202.129.242.0/23'
SfdcIPRestrictionWebACL:
Type: AWS::WAFv2::WebACL
DependsOn:
- SfdcIPSet
Properties:
Name: 'SfdcIPRestrictionWebACL'
Scope: REGIONAL
DefaultAction:
Block: {}
Description: 'To limit access to Salesforce IP ranges only'
Rules:
- Name: 'sfdcIpLimitationRule'
Priority: 0
Statement:
IPSetReferenceStatement:
ARN: !GetAtt SfdcIPSet.Arn
Action:
Allow: {}
VisibilityConfig:
SampledRequestsEnabled: true
CloudWatchMetricsEnabled: true
MetricName: 'sfdcIpLimitationRule'
VisibilityConfig:
SampledRequestsEnabled: true
CloudWatchMetricsEnabled: true
MetricName: 'SfdcWebACLMetric'
Capacity: 1
Список диапазонов IP-адресов Salesforce publi c можно найти здесь: https://help.salesforce.com/articleView?id=000321501&type=1&mode=1
Чтобы использовать WebACL со шлюзом API, убедитесь, что вы используете правильный синтаксис WAFv2! Примерно так:
SfdcWebACLAssociation:
Type: AWS::WAFv2::WebACLAssociation
Properties:
ResourceArn: !FindInMap [EnvironmentMapping, !Ref EnvironmentName, sfdcApiGatewayArn]
WebACLArn: !FindInMap [EnvironmentMapping, !Ref EnvironmentName, sfdcWebACLArn]
Еще одна неприятная вещь, которую я заметил, это то, что с новым представлением для «WAF & Shield» в консоли AWS вы увидите только определения WAFv2. Старые определения можно увидеть только в классическом c виде.