AWS re:Inforce 2023 - Firewalls, and where to put them (NIS306)
AWS re:Inforce 2023 - Firewalls, and where to put them (NIS306)
Firewalls play an important role in infrastructure security. But do you know the different security and visibility use cases for each type and deployment model? In this session featuring a customer, learn about different types of firewalls and deployment models, and discover how AWS Network Firewall and AWS WAF can help you manage your inbound and outbound security rules at scale.
ABOUT AWS Amazon Web Services (AWS) hosts events, both online and in-person, bringing the cloud computing community together to connect, collaborate, and learn from AWS experts.
AWS is the world’s most comprehensive and broadly adopted cloud platform, offering over 200 fully featured services from data centers globally. Millions of customers—including the fastest-growing startups, largest enterprises, and leading government agencies—are using AWS to lower costs, become more agile, and innovate faster.
#reInforce2023 #AWSEvents
Content
0.93 -> - Welcome to your second
day of re:Inforce.
3.63 -> I know it's kinda early
in the morning, right?
5.46 -> But I will promise this session
6.543 -> will be worth it for waking up, I promise.
8.97 -> I'm not a early person as well,
10.17 -> but I'm gonna make it worth your while.
12.54 -> My name is Ivo Pinto,
13.56 -> I'm a Solution Architect for
AWS, and I'm here joined by my
17.13 -> colleagues, Tzoori from AWS as
well, and Buzor from Workday.
22.11 -> During the next hour we'll
be talking about firewalls
24.747 -> for one hour, and where
to put them, obviously.
28.89 -> There are a lot of
different types of firewalls
30.69 -> with different names, right?
31.77 -> Web application firewall,
network firewalls.
34.23 -> Sometimes they're called
next generation firewalls.
36.48 -> And even some constructs
like security groups
38.19 -> that are not explicitly called a firewall,
40.65 -> but work as some sort of firewall.
44.22 -> To make things more interesting,
there's also different
47.52 -> levels of visibility, different levels
49.44 -> of functionality that
come from configuration
52.11 -> and where you put those
firewalls in your network.
54.45 -> But don't worry, that's why
we've created this session.
57.18 -> During this session you'll see how these
58.95 -> different security
constructs apply in AWS.
61.8 -> What levels of visibility they give you.
64.38 -> Also what level of applications,
like application types
66.84 -> they're good for, and all
of that within an hour.
70.86 -> How we're gonna do it?
71.7 -> Well, this a level-trended session,
74.37 -> but we're gonna start with
a architectural constructs
76.26 -> where we'll cover these different concepts
78.33 -> like security groups, network firewalls.
80.07 -> What do they do at high level?
82.44 -> But then we'll deep dive into specific
84.33 -> use cases and how we
use, both for inbound,
86.73 -> which is the main focus of this session.
88.29 -> We'll deep dive really a lot there.
90.45 -> And then cover outbound,
92.28 -> sort of a shallow dive
and give you some homework
94.223 -> as well that you can follow
up and learn more about.
97.23 -> Then from theory to practice, Workday
99.96 -> is gonna talk to you about
their firewall journey.
102.27 -> How they've evolved their
security architecture over time
105.09 -> to meet the requirements
that were changing.
108.09 -> And at the end we're gonna give
you some bite-sized journey,
111.51 -> bite-size takeaways that you can take home
113.79 -> and apply in your own environment.
116.58 -> So let's get started with the first pieces
118.98 -> of this bigger puzzle, right?
121.83 -> Security groups and network ACLs.
123.51 -> Most likely heard of this, right?
124.83 -> These are the most common
constructs that people use in AWS.
129.18 -> Security groups function as
a stateful firewall, right?
132.42 -> They work in the TCP/IP
layer, so that's Layer 4.
134.88 -> You can take decisions based on source IP,
136.71 -> destination IP, port as well.
139.5 -> And they are applied at ENI level.
141.267 -> You know, this could
be an EC2 for example.
143.67 -> But that's where you apply.
145.59 -> Typically they are mandatory
for many resources.
147.87 -> You know when you create
an EC2 it's mandatory.
149.7 -> And you've for certainly seen
it and certainly used it.
153.42 -> Then you have network ECLs, NACLs.
155.73 -> I know there's a lot of contention
on how to say this name.
158.88 -> They are stateless.
159.72 -> They're not stateful,
like security groups,
161.97 -> But they also work in the TCP/IP layer.
163.89 -> Again, Layer 4.
165.63 -> Unlike security groups,
they're not applied
167.55 -> at the ENI level, rather then
applied at the subnet level.
171.87 -> But then when you move
further from this basic
174.36 -> security use case, you might have to apply
176.67 -> policy based on something
more than Layer 4.
179.43 -> And that's where network
firewall comes in.
181.44 -> This is our managed
service offering, right?
184.11 -> So we manage it for you.
185.34 -> It automatically scales up
and down, so on, so forth.
188.247 -> And it allows you to create
189.54 -> both stateless and stateful rules.
191.91 -> So it's not a one and done like
193.408 -> security groups or network ACLs.
194.85 -> It's a choice, right?
196.44 -> Likewise, these rules are
applied up to Layer 7.
199.23 -> So from Layer 3 to Layer 7,
you can choose the rules.
203.7 -> The way network file
protects your resources
205.95 -> is that it filters traffic
in between Layer 7.
208.56 -> So typically you would place
it in a separate subnet
211.23 -> and use route tables to use traffic.
214.65 -> However, there are yet
another concern, right?
218.22 -> Gateway load balancer.
219.053 -> This one is one of those that
220.44 -> does not have firewall in its name.
222.65 -> As you see, just Gateway Load Balancer.
224.43 -> And there's a good reason for it
225.35 -> is because it's not a firewall.
227.49 -> However, it enables firewall use cases
229.98 -> and that's why we will
speak about it today.
232.68 -> We is it?
233.64 -> It's a bump-in-the-wire load balancer.
236.94 -> So it's a transparent load balancer.
238.5 -> You send traffic to it and
it's transparently routed back.
241.47 -> Its virtual appliances where
a policy decision is made.
244.44 -> How do you route traffic to it?
245.46 -> Again, you use just the subnet route.
249 -> Why do you care for create a load balancer
250.89 -> in the firewall too?
251.73 -> Well, because this is
an easy way to insert
254.73 -> firewalls within your traffic push.
256.71 -> And this is specially useful if you have
258.72 -> already invested into
third-party firewalls.
260.937 -> So if you're already invested,
261.77 -> you have the knowledge, right,
and you have bought them,
263.76 -> this is one way of using it.
267.9 -> It is more features than just inserting
269.82 -> your firewalls directly on the traffic.
271.38 -> For example, automatic
rerouting of traffic
274.14 -> and also health check.
276.24 -> So that's something to look out for.
283.23 -> - Thanks Ivo.
284.19 -> I'll cover two extra tools
286.02 -> in your toolbox when
it comes to firewalls.
287.85 -> My name is Tzoori, I'm a
solutions architect specialist,
290.28 -> which is a fancy way to say
I only know a few services,
292.71 -> not all of them when it
comes to AWS services.
295.2 -> One of these services that I do know,
296.49 -> luckily enough, is AWS WAF.
298.307 -> So AWS WAF is a web application firewall,
300.93 -> so it does have the word firewall in it,
302.517 -> so this is why we're
talking about it today.
304.29 -> But it can definitely be used
as an ingress control point
306.9 -> when it comes to firewalling
access into your applications.
309.87 -> So basically what AWS WAF
does, because I know WAF
313.173 -> is a kind of different and some people
314.94 -> are only network firewall kind of people,
316.74 -> so we do take the time
to explain what it does.
319.32 -> The one thing it allows
you to do is to have
321.21 -> Layer 7 controls over ingress traffic.
323.4 -> So you can have your own
324.3 -> allow list and block lists configured.
327.72 -> You can have them populated
329.34 -> automatically through an API call.
331.11 -> Another thing can have
at Layer 3 is having
334.74 -> managed rules when it comes
to IP reputation lists,
337.26 -> anonymous IPs, well-known sources that you
340.89 -> probably wanna block or
maybe do something with,
343.56 -> maybe you wanna challenge
them or just flag them
346.2 -> for downstream services to be made aware
349.23 -> that there are suspicious IPs.
351.75 -> And you can also do
geolocation-based controls.
353.76 -> So you can do country-based
or city region-based controls
357.18 -> if you wanna control
whoever is allowed in.
359.43 -> So this is at Layer 3.
360.99 -> When it comes to Layer 7 AWS
WAF, obviously it's a web
363.72 -> application firewall, so it has
a full Layer 7 capabilities.
366.42 -> It understands HTTP.
368.25 -> HTTP only, by the way.
370.62 -> And you can have either
managed rules or custom rules
374.58 -> that identify and control what
goes into your application.
378.03 -> So you can use it in a
positive security mode
380.61 -> where you only allow
specific URIs, or host names,
383.55 -> or whatever it is that you
wanna allow, or request
385.62 -> that carry an authentication
cookie for example.
388.5 -> Or you can use it in a
negative security model
390.6 -> where you wanna block
certain pages, certain URIs
393.69 -> from being accessed
from the outside world.
395.91 -> It could be your admin pages
397.56 -> or any sensitive part in your application.
401.04 -> Other than that, we have DDoS mitigation
402.78 -> capabilities built into AWS WAF.
404.61 -> So you can create your own baselines
407.19 -> and custom rules that control rates
409.32 -> in which you are willing
to receive requests.
411.45 -> They could be as generic
as blank rate limiting rule
414.42 -> saying I do not want to allow
any more than a certain amount
417.93 -> of requests within a five
minute period from any source.
421.35 -> So let's say no more than
10,000 requests, or a million,
423.87 -> or 500, whatever works
for your application.
427.11 -> And you can also make these
rate-based rules more granular
431.22 -> and you can say, I
don't want to to receive
433.08 -> more than X amount of requests coming in,
435.39 -> but only if they're
targeting my signup pages,
438.6 -> or only if it's coming from
well known suspicious sources.
441.87 -> So you can create your
own rate limiting rules
443.85 -> to be as coarse or as
granular as you wish.
446.79 -> And as a recent advancement,
we also introduced
448.68 -> the way for you to keep track of requests,
451.41 -> not based on IP addresses,
but based on pretty much
453.78 -> any part of the application.
455.97 -> So you can say, I don't
wanna receive any more
457.98 -> than X amount of POST
requests from anywhere
460.83 -> at once without tracking
individual IP addresses.
463.77 -> Super useful for distributed attacks.
466.95 -> Last but not least,
AWS WAF also allows you
469.38 -> to run two managed rules that deal
471.63 -> with automated clients,
automated actors, namely bots.
477.18 -> And we deal with bots in
two separate use cases.
479.76 -> One is, you know, abnormal
non-human behavior.
483.6 -> These well-known bots
that we can detect through
485.64 -> a service managed rule,
that's called bot control.
489.57 -> And the other thing we can do
490.71 -> in a managed session is to control fraud.
493.86 -> We can detect anomalous login activities,
496.26 -> anomalous signup
activities, that goes beyond
500.31 -> just detecting whether or
not it's a signup request.
502.29 -> But really is the entity
requesting to sign up or requesting
505.95 -> to log in is using proper credentials,
507.9 -> going through the proper
flow, acting like a human.
510.66 -> So all of these capabilities
are built into AWS WAF,
512.787 -> and you can put it, as we'll
see later, in multiple places
516.48 -> in your architecture as
agnostic to the application,
519.09 -> or as application-specific
as your needs are.
523.11 -> Another tool in your
toolbox is Firewall Manager.
525.21 -> So Ivo talked about...
526.77 -> Later on, by the way, we'll
be holding a competition
529.17 -> about properly pronouncing
all of our names.
531.03 -> It's gonna be a challenge.
533.28 -> So the services that Ivo
mentioned as well as AWS WAF,
538.17 -> can be controlled
through an organizational
540.09 -> service called Firewall Manager.
541.86 -> It controls multiple service
and multiple features.
543.99 -> So it control, obviously, WAF.
545.48 -> It control network firewall.
547.11 -> It can control security groups
at the organizational level.
549.99 -> And when I say control,
it can also control
552.06 -> some third-party firewall appliances.
555.42 -> And when I say control,
it can automatically
557.91 -> deploy and remediate misconfigurations.
559.98 -> So let's say you can easily
detect with Firewall Manager
562.68 -> whether someone has opened up
port 80 to the world on your
566.46 -> ALB and automatically slap
like an AWS WAF web ACL on it.
571.11 -> Or whenever someone opens
up SSH port 22 to the world,
575.64 -> you can have Firewall Manager detect that,
577.23 -> report that, and also remediate that.
579.63 -> So remove that offending rule
581.4 -> that does not comply with your policy.
583.86 -> The other thing that
Firewall Manager does,
585.18 -> it can propagate all of its
findings into Security Hub.
587.94 -> So it can allow you to
centrally control and view
591.33 -> your status across the organization
592.98 -> when it comes to ingress
mitigation or ingress control.
598.5 -> Now when it comes to network flows,
600.9 -> there are three directions,
or three use cases,
603.3 -> for controlling traffic, right?
604.68 -> The one that we'd be focusing
most today is inbound.
607.29 -> Basically that's the most
dangerous path because this
610.53 -> is where you expose your
applications to the bad internet
612.98 -> to the world, and you wanna make sure
615.12 -> that whoever accesses your
applications from the world
617.37 -> is the proper people, the proper entities.
620.52 -> And we'll be covering a lot
around the inbound controls
623.73 -> and considerations when
it comes to traffic.
626.43 -> Another use case is for outbound control.
628.53 -> So if you do allow outbound traffic
631.08 -> from within your cloud
infrastructure to the world,
633.06 -> there are considerations to be made
634.26 -> about how to control that
outbound traffic, if you wish.
638.58 -> And we won't go into
much depth around that,
641.1 -> but there are a few slides
that Ivo will cover later on.
643.83 -> And the east-west use case
where you have applications
646.89 -> talking to applications,
or internal users talking
649.22 -> to applications, which we
won't cover in this session.
653.19 -> We will point out the outbound use case
655.29 -> in another separate session
that happened yesterday.
657.63 -> Ivo will point it out for you
for later viewing if you want.
660.72 -> So let's focus on the
inbound use case, right?
663.15 -> This is the meat of this session.
666.09 -> So first, when we try and
decide what controls do we want
669.06 -> to enforce or use, what tools
we want to use for controlling
671.7 -> inbound traffic, which
is also ingress traffic.
675.66 -> So we might be using inbound and ingress
678.51 -> throughout this presentation.
680.31 -> So when we come to choose
our tool, the proper tool,
682.74 -> or probably tools, that
control inbound traffic,
685.41 -> there are a few considerations
that we need to think about.
687.27 -> So firstly, what kind of
traffic are we dealing with?
690.42 -> Is it only HTTP?
692.25 -> And then we have a myriad
of options and possibilities
696.15 -> when it comes to ingress traffic control.
698.07 -> We can use WAF, we can
use CloudFront, we can use
699.93 -> other ALBs, we can use
other proxy services
703.53 -> that enable us finer
control over what comes in.
705.84 -> Or is it for all application?
707.16 -> Do we have, like, custom
ports, custom protocols
710.04 -> that we also want to provide
inbound traffic to, right?
712.47 -> Some use cases are like that.
714.99 -> How big are we deploying here?
716.82 -> Is it like a single
VPC, single entry point,
719.52 -> super easy like, and then
the question is kind of moot.
722.91 -> We don't really want
to go into complexities
725.01 -> where we don't have to, we
don't have to over engineer.
727.89 -> But if we are built
organizationally differently
731.07 -> and we want to centralize
control over the ingress traffic
733.527 -> and allow the application
owners to run their own thing
736.26 -> as well as they go through
our centralized choke point,
738.33 -> the centralized control point,
or whether we want to provide
741.42 -> services for multiple VPCs,
possibly multiple accounts,
745.02 -> these are considerations that
might affect our decision
747.36 -> on what tool, what
service we want to deploy.
750.87 -> And lastly, how deep is our love, right?
753.06 -> How much do we want to take
a look into the traffic?
755.66 -> Do we only care about IPs and ports
757.44 -> when it comes to ingress traffic?
758.82 -> Which is fine, I'm not judging, right?
760.2 -> Some use cases are like that.
761.76 -> We only want to have the
IP and ports made sure
764.28 -> that we are using proper
ports and that's it.
767.61 -> I'm sure that a lot of you
are using security groups
769.98 -> and have been using security
groups and that's it,
772.05 -> which is great, that's fine.
774.42 -> But if you want like a deeper
understanding of what goes
776.25 -> into our traffic, whether
it's HTTP or not HTTP,
779.19 -> we might need to choose
something else that could have
781.32 -> a deep packet inspection
capabilities to allow us
784.29 -> better understanding more
than just the ports, right?
787.56 -> Is it really an HTTP request?
What goes in it, for example.
793.26 -> Another consideration, or
one of the key considerations
796.74 -> will cover today, is how do we build
799.35 -> our networking traffic flows?
801.81 -> So how do we do it?
802.71 -> Do we distribute our control points?
806.67 -> And again, if you have
a smaller footprint,
809.16 -> maybe a single workload or a single VPC,
811.32 -> single account, that's fine.
812.79 -> We don't need to go into
complexities and over-engineering.
815.46 -> We can have like a VPC with
an internet gateway attached
818.85 -> to it and security groups and that's fine.
822.36 -> But when it comes to more
complicated environments,
824.49 -> we might want to choose
to have a centralized
827.25 -> approach where we control
all ingress traffic
829.62 -> in a minimal number of places.
831.33 -> I wouldn't say necessarily a single place.
833.43 -> And this single place,
or this minimal number
835.35 -> of places can contain multiple controls.
837.69 -> So it can have a WAF in
it, a reverse proxy in it,
841.2 -> a network firewall in it.
842.033 -> It can have multiple components in it,
843.6 -> but it's all centralized and all traffic
845.43 -> is flowing through the same choke point.
847.56 -> It might be an organizational necessity,
850.02 -> because maybe the VPC application
people are set to roam
855.15 -> free in the cloud and they
create their own workloads
857.88 -> and they can do whatever
they want inside the VPC.
860.37 -> But if they want to expose
something to the internet
862.59 -> they have to go through another
organization that basically
865.23 -> controls the incoming traffic centrally.
867.9 -> It might be a technological effort, right?
869.61 -> So your considerations may vary,
871.11 -> your mileage may vary in
your own organization.
873.45 -> But this is one key consideration
to think about when you
876.81 -> build your own network infrastructure,
878.85 -> when you want to control ingress traffic.
885.24 -> Why would we centralize?
886.621 -> So centralizing your traffic
obviously has its pros
890.94 -> because we have a single control point.
892.95 -> We have a single place to look for,
895.38 -> you know, forensics, logs.
897.27 -> We have a small number of people
899.28 -> dealing with all ingress traffic.
900.84 -> So we can standardize
and optimize our efforts
905.04 -> when it comes to
controlling ingress traffic.
907.08 -> But then if we only have
a single point of failure
910.68 -> or a single entry point,
it might also introduce
913.71 -> a greater risk of a larger blast radius.
917.43 -> So if something goes
wrong, a misconfiguration
919.23 -> or something goes wrong with our inbound
921.51 -> control point, it will affect everybody.
923.28 -> All of the underlying services
924.63 -> that we have exposed through that.
928.02 -> It also increases complexity.
930 -> Even though, you know, conceptually
932.34 -> it has less moving parts, but now we
935.04 -> have to deal with routing
in between VPCs, right?
938.25 -> So we have to deal with
where traffic is coming from
940.32 -> and where is it going through.
943.29 -> When you think about
distributed workloads,
945.36 -> we only have like EC2s,
load balancers, IGWs,
948.21 -> a single back and forth flow.
951.45 -> And again, even though
it has like potentially
955.65 -> a fewer number of moving
pieces, like one central
958.62 -> chunky firewall in the front,
it may increase our costs.
962.76 -> As traffic traverses more than just
964.74 -> a single VPC and has to
go in between multiple
967.08 -> components, it may increase our cost.
969.03 -> But then on the flip side,
970.38 -> if we do a distributed architecture,
973.17 -> we might have duplicate constructs.
975.18 -> So we might have multiple
firewalls or multiple
978.15 -> WAF configurations, which
have a cost attached to them.
981.09 -> So again, your mileage may vary,
982.86 -> but you should be made aware
of these considerations.
986.46 -> Let's first dive in into the distributed
988.41 -> workflow for web applications.
990.75 -> So when it comes to AWS
WAF, AWS WAF is a service
995.4 -> that does not have traffic
carrying capabilities, right?
998.97 -> It's not a reverse proxy in on itself.
1000.74 -> We have to attach it to something.
1002.96 -> The most probable situations
that you'll encounter
1005.6 -> in the wild is when you
attach an AWS WAF web ACL
1008.33 -> or a WAF policy to something
like ALB or CloudFront.
1013.76 -> When we talk about distributed models,
1015.53 -> we'll typically have a single entry point.
1017.84 -> So it could be a single load balancer,
1019.88 -> a single ALB that distributes
traffic across your workloads.
1023.9 -> It could be a single
CloudFront distribution
1026.66 -> with a wild card associated with it,
1028.55 -> or it could be multiple
CloudFront distributions.
1030.95 -> Depends on how you control your
DNS names or vanity domains.
1038.51 -> But eventually you'll have a minimum
1040.16 -> number of people that control a single
1041.87 -> choke point on incoming requests, right?
1044.15 -> This is only dealing with HTTP traffic.
1046.16 -> We're talking about web
application firewalls.
1047.69 -> So we only deal with AWF.
1049.46 -> There are a lot of benefits
to running your AWS WAF web
1053.3 -> ACL as far away from your
application as possible
1055.88 -> at the edge, right, at
the CloudFront level.
1058.34 -> And we'll cover those
in a couple of minutes.
1063.02 -> The centralized model for AWS WAF
1067.73 -> is where we basically allow one group
1072.41 -> of people to control a single entry point
1076.01 -> which will front all of
our applications, right?
1078.32 -> It requires building multiple
1080.18 -> moving parts, as mentioned before.
1081.59 -> So basically we want CloudFront
to send traffic to an ALB,
1085.76 -> or to send traffic to a
centralized reverse proxy.
1088.67 -> In this case it's an ALB, it could be NLB.
1090.71 -> And this NLB routes traffic
to multiple ALVs behind it.
1093.92 -> So again, it's a similar concept
as the distributed model,
1097.82 -> but this time we're using a single
1100.04 -> entry point that controls
all inbound traffic.
1102.68 -> When it come to AWS WAF policies
1104.33 -> and that we'll see that in a second.
1106.34 -> The policy may change if you're dealing
1108.35 -> with a distributed model
or a centralized model.
1111.08 -> Which means that your policy
may contain only agnostic
1115.52 -> elements in it, only
elements that do not take
1118.01 -> into consideration how
the application looks like
1120.35 -> when you're dealing with
centralized controls,
1122.27 -> because your web application
firewall will be reused
1125.06 -> across multiple different applications.
1127.28 -> So you can't really refer to specific URIs
1130.79 -> in the application because
your single web application
1133.13 -> firewall policy will have
multiple applications under it.
1135.8 -> So you'll have controls
which are more agnostic.
1138.38 -> Going back to the distributed approach,
1141.14 -> you can have the people
who manage WAF have
1143.36 -> a very fine grain over
what goes into our web ACL.
1146.66 -> Meaning our web ACL can now
contain application-specific
1149.75 -> controls like managed rules that only deal
1153.56 -> with PHP vulnerabilities
or stuff like that.
1157.37 -> In any case, when it comes to
controlling ingress traffic,
1160.34 -> a web ACL, I will leave
you with this image
1162.83 -> of a sample web ACL that does not deal
1165.71 -> with any application-level
vulnerabilities, right?
1169.7 -> It's not a typical WAF policy.
1171.32 -> It's more of a policy
that you'll see when you
1173.75 -> deal with ingress traffic
control and that's it.
1176.15 -> So you'll be seeing IP-based rules.
1177.95 -> So IP allow lists and block lists.
1180.35 -> You'll be seeing maybe a list of countries
1185.57 -> that we don't want to allow
any kind of traffic from.
1188.72 -> We might also see a list of countries
1190.19 -> where we want to challenge
incoming requests.
1193.01 -> So suspicious countries.
1194.06 -> Not countries that we are
not allowed to deal with,
1195.74 -> but countries that we don't
typically see traffic from.
1197.69 -> An AWS WAF can present
the incoming traffic,
1200.48 -> incoming HTTP request with
a JavaScript challenge
1203.03 -> just to make sure that whoever
is speaking to us is a proper
1205.67 -> browser and not some kind
of an automated client.
1208.55 -> And then we can also have managed rules
1210.23 -> that deal with IP
reputation, anonymous IPs,
1213.11 -> these are managed IP lists
that we keep populated for you
1216.98 -> and they can track well-known bad sources
1220.25 -> like DDoS contributors and
botnets and all of these
1222.89 -> bad sources that you not don't necessarily
1225.32 -> want to allow traffic from
into your applications.
1228.86 -> And then again, you can
also add your bot control
1231.29 -> management rules, which allows you
1232.67 -> to keep track of sessions
and volumetric sessions.
1236.18 -> And then at lastly, you can
create your rate limiting rules,
1238.58 -> which can be as specific
or as generic as you wish.
1242.45 -> If you look at the last rule here,
1243.59 -> like a blanket rate limiting,
1244.91 -> I do not want to allow more than X amount
1246.92 -> of requests from any
regardless of where it's
1252.8 -> coming from or where it's going to.
1254.18 -> And we can have more specific
rate limiting rules that say
1257.09 -> I want to be more aggressive
with maybe my signup page.
1260.75 -> or login page, or search page,
or maybe specific sources.
1264.26 -> I want to be more aggressive,
1265.19 -> have lower rates allowed
for specific sources
1268.31 -> or specific destinations
at the application level.
1272.39 -> To sum it up, when it comes
to blocking ingress traffic
1277.25 -> when you have purely HTP
traffic for your application,
1279.89 -> it makes a ton of sense to push your OACL
1282.71 -> as far away from the
application as possible.
1284.9 -> Namely, I wanna see whenever it's possible
1288.32 -> CloudFront fronting your web application.
1290.81 -> Because not only will
you be benefiting from
1292.91 -> acceleration, because CloudFront
terminates TLS and TCP
1296.39 -> at the edge, at 450 plus
pops around the world.
1299.66 -> So clients will experience
a faster time to connect.
1303.98 -> CloudFront is also natively
filtering out traffic
1306.5 -> which is not designated to
your application, right?
1309.05 -> It only listens or on port 40 and 883.
1311.6 -> This is no longer your
problem to filter traffic,
1313.49 -> which is not pure HTTP traffic.
1315.53 -> It filters out any non
RSC compliant requests.
1318.8 -> So nothing which is on
port 443 or port 80,
1322.58 -> but it's not a proper HTP
request, it's just filtered out.
1325.04 -> You'll never see it.
1326.05 -> It also filters out any traffic
1328.49 -> which does not match your host names.
1330.17 -> So any random internet noise.
1332.3 -> If you look at your firewall
logs, at your web application
1334.61 -> firewall logs, if you're
not running on CloudFront,
1336.59 -> you'll be seeing a ton of traffic
1337.82 -> that just targets your IP
address as a host name.
1340.37 -> This is just random internet noise,
1341.81 -> it can be a lot of traffic.
1343.49 -> CloudFront does not allow
this traffic through.
1345.41 -> It has to have a valid
host name that matches
1347.36 -> your configuration to
allow traffic through.
1351.77 -> Another thing that CloudFront does for you
1353.51 -> when you enforce application security
1355.25 -> at the edge is volumetric
network level attacks.
1358.4 -> Again, network level
stuff is getting managed
1361.25 -> by the AWS CloudFront team,
or the service rather.
1365.81 -> We only allow proper HTTP requests.
1367.88 -> So network level data attacks
SYN floods, UDP floods,
1371.33 -> ICMP floods, whatever is non
HTTP, you should not care
1376.61 -> anymore when you expose your
application through CloudFront.
1380.12 -> Plus, we're also benefiting from a service
1381.74 -> called Shield Standard, which is our basic
1383.66 -> DDoS mitigation service,
which runs in line,
1386.75 -> always on, on CloudFront,
whenever you enable it.
1390.23 -> And it also helps when
mitigating a lot of the unwanted
1393.17 -> traffic from hitting your front ends.
1394.58 -> Even your front end
components like your firewall,
1396.38 -> your ALBs, even if you
block it at the ALB level,
1399.14 -> traffic will still reach your ALB
1401.793 -> if it's just random internet noise.
1403.4 -> Not so the case where you use CloudFront.
1405.83 -> We make sure that only proper traffic
1407.3 -> is going through it before
reaching your backend.
1411.89 -> And will that, I'll switch back to Ivo.
1415.01 -> - Thank you Tzoori.
1416.39 -> So we were talking a lot
about HTTP, you know,
1419.477 -> and web traffic and all of that.
1420.98 -> But many of you might have
other applications, right?
1423.44 -> Other applications that are
not web applications, right?
1425.9 -> So not HTTP.
1426.733 -> FTP, syslog, anything like that.
1429.98 -> If what mentioned, if you consider
1432.08 -> what Tzoori mentioned before, right?
1433.4 -> And you think a distributed
model for you, right?
1435.65 -> You could choose a distributed model
1437.57 -> and the network firewall, right?
1439.52 -> So with this model in mind,
1441.65 -> you can support any type of application.
1443.39 -> You don't necessarily only support
1445.19 -> HTTP like you did with WAF.
1446.89 -> So you can filter on anything.
1448.76 -> And and how would you go
about deploying it, right?
1450.44 -> So you just create network
firewall endpoint and all your
1453.29 -> VPC and the distribute the
environment, and you would use
1456.08 -> route tables to pass
traffic through, right?
1458.03 -> It enters through the internet,
1460.07 -> then network firewall, then there.
1462.35 -> With this approach you can also
1464.87 -> take decisions up to Layer 7.
1466.46 -> Just like the WAF, but in this case
1467.99 -> Layer 7 of all these different products.
1471.02 -> We recently introduced encryption,
1472.82 -> TLS encryption capability
on the network firewall.
1475.7 -> So even if your traffic is encrypted,
1477.68 -> you can provide it with a load balancer
1479.45 -> and you'll be able to take decisions
1480.74 -> and have visibility
even on the track, okay?
1484.37 -> The data plan of this
solution is distributed,
1486.29 -> and that's important for
the scales considerations,
1488.18 -> as Tzoori was mentioning.
1489.35 -> So this scales very well.
1490.46 -> It's distributed at each of its VPCs
1492.08 -> is gonna have its own
dedicated firewall clusters.
1494.63 -> But this will be more
clear on the next slide.
1497.12 -> And from the management perspective,
1498.41 -> you can either choose to
manage it centrally using
1501.62 -> Firewall Manager because
there's net integration there.
1503.78 -> You create the policy, you
say which VPCs you want it
1507.04 -> to use, and it'll just deploy it for you.
1509.72 -> Or you can manage it individually.
1511.22 -> Let's say each of your
teams has its own firewall,
1514.16 -> has its own rules, they
wanna manage it themselves,
1516.29 -> you wanna give them that
power, you can do so, right?
1518.39 -> So you would not use Firewall
Manager in that sense.
1521.66 -> However, like I mentioned in the beginning
1523.46 -> of this presentation, some
of you might have already
1525.71 -> invested into third-party
firewalls, right?
1527.9 -> From some of our partners.
1528.98 -> And you might want to
maintain that, right?
1530.57 -> You already have trained
engineers, and that's fine.
1533.21 -> So the architecture with gateway
1534.56 -> load balancer would look exactly the same.
1537.26 -> Simply the endpoints would
not be firewall endpoints,
1539.21 -> it would be Gateway
Load Balancer endpoint.
1541.61 -> It would still support
any type of application.
1543.89 -> You'd still route traffic
through using the route tables.
1546.89 -> However, both the inspection
that NTLS decryption
1549.68 -> capabilities don't come from
the Gateway Load Balancer.
1552.08 -> Like I've said, comes from
the virtual appliances
1553.97 -> themselves, so you'll
need to check, right?
1555.89 -> You'll need to make sure those
appliances support your need.
1560.21 -> The data plane of this solution
is also distributed, right?
1562.639 -> So you have Gateway Load Balancer endpoint
1564.83 -> throughout your estate,
throughout your VPC.
1567.32 -> And they will route traffic transparently
1569.18 -> to this backend appliance.
1570.86 -> It's important to note, and
again on the next slide,
1572.48 -> this will be very visual, to understand
1574.31 -> that with this solution with
the Gateway Load Balancer,
1576.8 -> versus the network firewall, this can
1578.21 -> air pin to the same
firewall cluster, right?
1580.46 -> So you can have gateway balancer
1581.87 -> which pointing to the same cluster.
1583.82 -> So this solution, when
you're scaling it, right,
1585.53 -> you have to have that into consideration.
1588.35 -> Lastly, on the management
part, you can typically
1591.2 -> manage the solution via the
vendor management tools.
1593.36 -> So they have their own.
1594.38 -> It's one way.
1595.4 -> Or just the traditional way, you know,
1596.57 -> using like CLI, SSH, whatever you like.
1600.17 -> Now, deep diving on the data path itself,
1602.78 -> as I mentioned this is an
important consideration,
1604.67 -> especially for scale and for cost.
1607.01 -> With the Gateway Load
Balancer, you see that you have
1608.96 -> multiple VPCs with different
Gateway Load Balancer
1612.47 -> pointing to the same
Gateway Load Balancer,
1614.27 -> and therefore the same
third-party appliances.
1616.91 -> So although the data plan
is distributed, right,
1619.91 -> they are going airplane
into the same appliances.
1622.22 -> So you're scaling it and you
have thousands of VPCs, right?
1624.41 -> All the traffic is going to be
hitting the same appliances.
1626.69 -> So it's sort of distributed
data plane in the sense
1630.17 -> that it can air pin to the same cluster.
1633.35 -> On the net of firewall, however,
it's completely different.
1635.99 -> Each of your VPC is gonna have
a dedicated firewall cluster.
1638.84 -> It'll scale individually.
1640.19 -> So it's fully distributed data plane.
1643.34 -> It's important to note that this
1645.11 -> comes with a cost, of course, right?
1646.52 -> So you're gonna have
different firewall clusters,
1648.53 -> it's a more costly model.
1650.24 -> If you want to replicate the
model of network firewall
1652.816 -> with Gateway Load Balancer, it's possible.
1654.47 -> Simply have to create, you know, different
1655.639 -> firewall clusters for all of
those gateway load balancers.
1660.11 -> But let's say a distributed
model is not for you, right?
1662.21 -> Like you were hearing from Tzoori,
1663.74 -> you want a centralized response.
1665.12 -> It could be a requirement for you,
1666.23 -> could be a compliance requirement,
1667.91 -> you could just like it, right?
1670.49 -> It's perfectly reasonable.
1671.72 -> You can choose to use the
same security constructs,