Skip to content

Commit 5143d18

Browse files
Route 53 Resolver DNS Firewall Advanced Rules allows you to monitor and block suspicious DNS traffic based on anomalies detected in the queries, such as DNS tunneling and Domain Generation Algorithms (DGAs).
1 parent 534d6b2 commit 5143d18

23 files changed

+647
-118
lines changed

generator/ServiceModels/route53resolver/route53resolver-2018-04-01.api.json

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@
241241
{"shape":"ResourceNotFoundException"},
242242
{"shape":"AccessDeniedException"},
243243
{"shape":"InternalServiceErrorException"},
244+
{"shape":"ValidationException"},
244245
{"shape":"ThrottlingException"}
245246
]
246247
},
@@ -1292,6 +1293,14 @@
12921293
]
12931294
},
12941295
"Boolean":{"type":"boolean"},
1296+
"ConfidenceThreshold":{
1297+
"type":"string",
1298+
"enum":[
1299+
"LOW",
1300+
"MEDIUM",
1301+
"HIGH"
1302+
]
1303+
},
12951304
"ConflictException":{
12961305
"type":"structure",
12971306
"members":{
@@ -1353,7 +1362,6 @@
13531362
"required":[
13541363
"CreatorRequestId",
13551364
"FirewallRuleGroupId",
1356-
"FirewallDomainListId",
13571365
"Priority",
13581366
"Action",
13591367
"Name"
@@ -1364,7 +1372,10 @@
13641372
"idempotencyToken":true
13651373
},
13661374
"FirewallRuleGroupId":{"shape":"ResourceId"},
1367-
"FirewallDomainListId":{"shape":"ResourceId"},
1375+
"FirewallDomainListId":{
1376+
"shape":"ResourceId",
1377+
"box":true
1378+
},
13681379
"Priority":{"shape":"Priority"},
13691380
"Action":{"shape":"Action"},
13701381
"BlockResponse":{
@@ -1391,6 +1402,14 @@
13911402
"Qtype":{
13921403
"shape":"Qtype",
13931404
"box":true
1405+
},
1406+
"DnsThreatProtection":{
1407+
"shape":"DnsThreatProtection",
1408+
"box":true
1409+
},
1410+
"ConfidenceThreshold":{
1411+
"shape":"ConfidenceThreshold",
1412+
"box":true
13941413
}
13951414
}
13961415
},
@@ -1567,13 +1586,17 @@
15671586
},
15681587
"DeleteFirewallRuleRequest":{
15691588
"type":"structure",
1570-
"required":[
1571-
"FirewallRuleGroupId",
1572-
"FirewallDomainListId"
1573-
],
1589+
"required":["FirewallRuleGroupId"],
15741590
"members":{
15751591
"FirewallRuleGroupId":{"shape":"ResourceId"},
1576-
"FirewallDomainListId":{"shape":"ResourceId"},
1592+
"FirewallDomainListId":{
1593+
"shape":"ResourceId",
1594+
"box":true
1595+
},
1596+
"FirewallThreatProtectionId":{
1597+
"shape":"ResourceId",
1598+
"box":true
1599+
},
15771600
"Qtype":{"shape":"Qtype"}
15781601
}
15791602
},
@@ -1704,6 +1727,13 @@
17041727
"ResolverRuleAssociation":{"shape":"ResolverRuleAssociation"}
17051728
}
17061729
},
1730+
"DnsThreatProtection":{
1731+
"type":"string",
1732+
"enum":[
1733+
"DGA",
1734+
"DNS_TUNNELING"
1735+
]
1736+
},
17071737
"DomainListFileUrl":{
17081738
"type":"string",
17091739
"max":1024,
@@ -1833,6 +1863,7 @@
18331863
"members":{
18341864
"FirewallRuleGroupId":{"shape":"ResourceId"},
18351865
"FirewallDomainListId":{"shape":"ResourceId"},
1866+
"FirewallThreatProtectionId":{"shape":"ResourceId"},
18361867
"Name":{"shape":"Name"},
18371868
"Priority":{"shape":"Priority"},
18381869
"Action":{"shape":"Action"},
@@ -1844,7 +1875,9 @@
18441875
"CreationTime":{"shape":"Rfc3339TimeString"},
18451876
"ModificationTime":{"shape":"Rfc3339TimeString"},
18461877
"FirewallDomainRedirectionAction":{"shape":"FirewallDomainRedirectionAction"},
1847-
"Qtype":{"shape":"Qtype"}
1878+
"Qtype":{"shape":"Qtype"},
1879+
"DnsThreatProtection":{"shape":"DnsThreatProtection"},
1880+
"ConfidenceThreshold":{"shape":"ConfidenceThreshold"}
18481881
}
18491882
},
18501883
"FirewallRuleGroup":{
@@ -3342,13 +3375,17 @@
33423375
},
33433376
"UpdateFirewallRuleRequest":{
33443377
"type":"structure",
3345-
"required":[
3346-
"FirewallRuleGroupId",
3347-
"FirewallDomainListId"
3348-
],
3378+
"required":["FirewallRuleGroupId"],
33493379
"members":{
33503380
"FirewallRuleGroupId":{"shape":"ResourceId"},
3351-
"FirewallDomainListId":{"shape":"ResourceId"},
3381+
"FirewallDomainListId":{
3382+
"shape":"ResourceId",
3383+
"box":true
3384+
},
3385+
"FirewallThreatProtectionId":{
3386+
"shape":"ResourceId",
3387+
"box":true
3388+
},
33523389
"Priority":{
33533390
"shape":"Priority",
33543391
"box":true
@@ -3381,7 +3418,15 @@
33813418
"shape":"FirewallDomainRedirectionAction",
33823419
"box":true
33833420
},
3384-
"Qtype":{"shape":"Qtype"}
3421+
"Qtype":{"shape":"Qtype"},
3422+
"DnsThreatProtection":{
3423+
"shape":"DnsThreatProtection",
3424+
"box":true
3425+
},
3426+
"ConfidenceThreshold":{
3427+
"shape":"ConfidenceThreshold",
3428+
"box":true
3429+
}
33853430
}
33863431
},
33873432
"UpdateFirewallRuleResponse":{

generator/ServiceModels/route53resolver/route53resolver-2018-04-01.docs.json

Lines changed: 30 additions & 11 deletions
Large diffs are not rendered by default.

generator/ServiceModels/route53resolver/route53resolver-2018-04-01.normal.json

Lines changed: 76 additions & 22 deletions
Large diffs are not rendered by default.

sdk/code-analysis/ServiceAnalysis/Route53Resolver/Generated/PropertyValueRules.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,11 @@
198198
<min>1</min>
199199
<max>64</max>
200200
</property-value-rule>
201+
<property-value-rule>
202+
<property>Amazon.Route53Resolver.Model.DeleteFirewallRuleRequest.FirewallThreatProtectionId</property>
203+
<min>1</min>
204+
<max>64</max>
205+
</property-value-rule>
201206
<property-value-rule>
202207
<property>Amazon.Route53Resolver.Model.DeleteFirewallRuleRequest.Qtype</property>
203208
<min>1</min>
@@ -596,6 +601,11 @@
596601
<min>1</min>
597602
<max>64</max>
598603
</property-value-rule>
604+
<property-value-rule>
605+
<property>Amazon.Route53Resolver.Model.UpdateFirewallRuleRequest.FirewallThreatProtectionId</property>
606+
<min>1</min>
607+
<max>64</max>
608+
</property-value-rule>
599609
<property-value-rule>
600610
<property>Amazon.Route53Resolver.Model.UpdateFirewallRuleRequest.Name</property>
601611
<max>64</max>
@@ -765,6 +775,11 @@
765775
<min>1</min>
766776
<max>64</max>
767777
</property-value-rule>
778+
<property-value-rule>
779+
<property>Amazon.Route53Resolver.Model.FirewallRule.FirewallThreatProtectionId</property>
780+
<min>1</min>
781+
<max>64</max>
782+
</property-value-rule>
768783
<property-value-rule>
769784
<property>Amazon.Route53Resolver.Model.FirewallRule.ModificationTime</property>
770785
<min>20</min>

sdk/src/Services/Route53Resolver/Generated/Model/CreateFirewallRuleRequest.cs

Lines changed: 62 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ public partial class CreateFirewallRuleRequest : AmazonRoute53ResolverRequest
4141
private string _blockOverrideDomain;
4242
private int? _blockOverrideTtl;
4343
private BlockResponse _blockResponse;
44+
private ConfidenceThreshold _confidenceThreshold;
4445
private string _creatorRequestId;
46+
private DnsThreatProtection _dnsThreatProtection;
4547
private string _firewallDomainListId;
4648
private FirewallDomainRedirectionAction _firewallDomainRedirectionAction;
4749
private string _firewallRuleGroupId;
@@ -53,11 +55,12 @@ public partial class CreateFirewallRuleRequest : AmazonRoute53ResolverRequest
5355
/// Gets and sets the property Action.
5456
/// <para>
5557
/// The action that DNS Firewall should take on a DNS query when it matches one of the
56-
/// domains in the rule's domain list:
58+
/// domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule:
5759
/// </para>
5860
/// <ul> <li>
5961
/// <para>
60-
/// <c>ALLOW</c> - Permit the request to go through.
62+
/// <c>ALLOW</c> - Permit the request to go through. Not available for DNS Firewall Advanced
63+
/// rules.
6164
/// </para>
6265
/// </li> <li>
6366
/// <para>
@@ -194,6 +197,40 @@ internal bool IsSetBlockResponse()
194197
return this._blockResponse != null;
195198
}
196199

200+
/// <summary>
201+
/// Gets and sets the property ConfidenceThreshold.
202+
/// <para>
203+
/// The confidence threshold for DNS Firewall Advanced. You must provide this value when
204+
/// you create a DNS Firewall Advanced rule. The confidence level values mean:
205+
/// </para>
206+
/// <ul> <li>
207+
/// <para>
208+
/// <c>LOW</c>: Provides the highest detection rate for threats, but also increases false
209+
/// positives.
210+
/// </para>
211+
/// </li> <li>
212+
/// <para>
213+
/// <c>MEDIUM</c>: Provides a balance between detecting threats and false positives.
214+
/// </para>
215+
/// </li> <li>
216+
/// <para>
217+
/// <c>HIGH</c>: Detects only the most well corroborated threats with a low rate of false
218+
/// positives.
219+
/// </para>
220+
/// </li> </ul>
221+
/// </summary>
222+
public ConfidenceThreshold ConfidenceThreshold
223+
{
224+
get { return this._confidenceThreshold; }
225+
set { this._confidenceThreshold = value; }
226+
}
227+
228+
// Check to see if ConfidenceThreshold property is set
229+
internal bool IsSetConfidenceThreshold()
230+
{
231+
return this._confidenceThreshold != null;
232+
}
233+
197234
/// <summary>
198235
/// Gets and sets the property CreatorRequestId.
199236
/// <para>
@@ -215,13 +252,32 @@ internal bool IsSetCreatorRequestId()
215252
return this._creatorRequestId != null;
216253
}
217254

255+
/// <summary>
256+
/// Gets and sets the property DnsThreatProtection.
257+
/// <para>
258+
/// Use to create a DNS Firewall Advanced rule.
259+
/// </para>
260+
/// </summary>
261+
public DnsThreatProtection DnsThreatProtection
262+
{
263+
get { return this._dnsThreatProtection; }
264+
set { this._dnsThreatProtection = value; }
265+
}
266+
267+
// Check to see if DnsThreatProtection property is set
268+
internal bool IsSetDnsThreatProtection()
269+
{
270+
return this._dnsThreatProtection != null;
271+
}
272+
218273
/// <summary>
219274
/// Gets and sets the property FirewallDomainListId.
220275
/// <para>
221-
/// The ID of the domain list that you want to use in the rule.
276+
/// The ID of the domain list that you want to use in the rule. Can't be used together
277+
/// with <c>DnsThreatProtecton</c>.
222278
/// </para>
223279
/// </summary>
224-
[AWSProperty(Required=true, Min=1, Max=64)]
280+
[AWSProperty(Min=1, Max=64)]
225281
public string FirewallDomainListId
226282
{
227283
get { return this._firewallDomainListId; }
@@ -242,13 +298,13 @@ internal bool IsSetFirewallDomainListId()
242298
/// </para>
243299
///
244300
/// <para>
245-
/// <c>Inspect_Redirection_Domain </c>(Default) inspects all domains in the redirection
301+
/// <c>INSPECT_REDIRECTION_DOMAIN</c>: (Default) inspects all domains in the redirection
246302
/// chain. The individual domains in the redirection chain must be added to the domain
247303
/// list.
248304
/// </para>
249305
///
250306
/// <para>
251-
/// <c>Trust_Redirection_Domain </c> inspects only the first domain in the redirection
307+
/// <c>TRUST_REDIRECTION_DOMAIN</c>: Inspects only the first domain in the redirection
252308
/// chain. You don't need to add the subsequent domains in the domain in the redirection
253309
/// list to the domain list.
254310
/// </para>

sdk/src/Services/Route53Resolver/Generated/Model/DeleteFirewallRuleRequest.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public partial class DeleteFirewallRuleRequest : AmazonRoute53ResolverRequest
3737
{
3838
private string _firewallDomainListId;
3939
private string _firewallRuleGroupId;
40+
private string _firewallThreatProtectionId;
4041
private string _qtype;
4142

4243
/// <summary>
@@ -45,7 +46,7 @@ public partial class DeleteFirewallRuleRequest : AmazonRoute53ResolverRequest
4546
/// The ID of the domain list that's used in the rule.
4647
/// </para>
4748
/// </summary>
48-
[AWSProperty(Required=true, Min=1, Max=64)]
49+
[AWSProperty(Min=1, Max=64)]
4950
public string FirewallDomainListId
5051
{
5152
get { return this._firewallDomainListId; }
@@ -78,6 +79,25 @@ internal bool IsSetFirewallRuleGroupId()
7879
return this._firewallRuleGroupId != null;
7980
}
8081

82+
/// <summary>
83+
/// Gets and sets the property FirewallThreatProtectionId.
84+
/// <para>
85+
/// The ID that is created for a DNS Firewall Advanced rule.
86+
/// </para>
87+
/// </summary>
88+
[AWSProperty(Min=1, Max=64)]
89+
public string FirewallThreatProtectionId
90+
{
91+
get { return this._firewallThreatProtectionId; }
92+
set { this._firewallThreatProtectionId = value; }
93+
}
94+
95+
// Check to see if FirewallThreatProtectionId property is set
96+
internal bool IsSetFirewallThreatProtectionId()
97+
{
98+
return this._firewallThreatProtectionId != null;
99+
}
100+
81101
/// <summary>
82102
/// Gets and sets the property Qtype.
83103
/// <para>

0 commit comments

Comments
 (0)