What Is Mutual TLS (mTLS), Why Do We Need It, And How Do We Get It?

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • In this video, we'll explore what mutual TLS (mTLS) is, why we need it, and how we can get it with a service mesh (e.g., LinkerD, Istio, etc.).
    #mutualtls #mtls #servicemesh #kubernetes
    Consider joining the channel: / devopstoolkit
    ▬▬▬▬▬▬ 🔗 Additional Info 🔗 ▬▬▬▬▬▬
    ➡ Gist with the commands: gist.github.com/vfarcic/85363...
    🎬 What Is Kubernetes Ingress And How Does It Work?: • What Is Kubernetes Ing...
    ▬▬▬▬▬▬ 💰 Sponsoships 💰 ▬▬▬▬▬▬
    If you are interested in sponsoring this channel, please use calendly.com/vfarcic/meet to book a timeslot that suits you, and we'll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below).
    ▬▬▬▬▬▬ 👋 Contact me 👋 ▬▬▬▬▬▬
    ➡ Twitter: / vfarcic
    ➡ LinkedIn: / viktorfarcic
    ▬▬▬▬▬▬ 🚀 Other Channels 🚀 ▬▬▬▬▬▬
    🎤 Podcast: www.devopsparadox.com/
    💬 Live streams: / devopsparadox
    ▬▬▬▬▬▬ ⏱ Timecodes ⏱ ▬▬▬▬▬▬
    00:00 Introduction To Mutual TLS (mTLS)?
    03:51 What Is Mutual TLS (mTLS)?
    08:01 mTLS Benefits
    09:58 Applying mTLS With Service Meshes
  • Věda a technologie

Komentáře • 53

  • @DevOpsToolkit
    @DevOpsToolkit  Před rokem +2

    Do you use mTLS inside your clusters?

    • @swapnilshingote8773
      @swapnilshingote8773 Před rokem +2

      Actually no... Mostly It is ECS in the background.. and front part is via API gateway and need to implement Mtls layer on APi GW..

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      I haven't been using ECS for a while now, partly because it is a closed ecosystem. Whatever AWS recommends is typically the best (and often the only) way to accomplish something.

    • @swapnilshingote8773
      @swapnilshingote8773 Před rokem +1

      @@DevOpsToolkit do you have any resources or videos covering APi gateway.?

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      @@swapnilshingote8773 Unfortunately, I don't :(

    • @NicolasFrankel
      @NicolasFrankel Před rokem +2

      @@swapnilshingote8773 I wrote about it recently using Apache APISIX? I cannot post the link but it's named "mTLS everywhere!"

  • @IONYVDFC
    @IONYVDFC Před 4 měsíci +2

    Brilliant pitch! In other videos I found on this topic, I thought I was distracted by the language of some non-native english speakers, but I think now that is irrelevant, the simplicity and the way the storyline was built really made my day.

  • @ofir2565
    @ofir2565 Před 7 měsíci +3

    I am amazed each time by the level of quality produced by your videos, kudos for the down to earth and simple to follow explanation of very complex topics!

  • @mtoct12
    @mtoct12 Před 4 měsíci +1

    Thank you for explaining such complex concepts in a very easy and simple way by breaking it down methodically. Please continue to make such amazing videos

  • @arieheinrich3457
    @arieheinrich3457 Před rokem +3

    You can see the spanish influence on Viktor when he does the "sidecar dance" cha cha cha !

  • @HamidKarzai
    @HamidKarzai Před 10 měsíci +2

    Your style of dictating console commands is very engaging, usually my glaze over when other people do it. Impressive

  • @prakasha5870
    @prakasha5870 Před měsícem +1

    good explnation . easy to understand.

  • @swapnilshingote8773
    @swapnilshingote8773 Před rokem +1

    Implemented , working like charm..🤩

  • @adamyaziji7401
    @adamyaziji7401 Před 9 měsíci +1

    Very clear explanation, thanks :D

  • @aayushgore4545
    @aayushgore4545 Před 7 měsíci +1

    thanks brother for this great video!

  • @swapnilshingote8773
    @swapnilshingote8773 Před rokem +1

    Best video of this year...

  • @VLADICA94KG
    @VLADICA94KG Před rokem +2

    As always, concise high-quality content video.
    Hvala ti na nesebicnom sirenju svog znanja Viktore! :)
    It would be great if you could make a video on how to enable mTLS with 3rd party services (or other custom-implemented services running in the other cluster).

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +2

      Adding it to my to-do list as a subject for one of the upcoming videos...

  • @IvanRizzante
    @IvanRizzante Před rokem +1

    Great video as always, I can only add that by default mTLS is not strict. The "meshed" Pods will still accept plain connections from Pods external to the mesh. To make sure there are no untrusted connections accepted you have to make mTLS strict. That's why you need linkerd Authorization Policies

  • @walk_with_anshuman
    @walk_with_anshuman Před 5 měsíci +1

    Great content.

  • @cajgazachar
    @cajgazachar Před rokem +4

    Viktor, nice video but you did not do your homework about encryption and TLS. In fact, TLS is not using asymmetric encryption to encrypt the data. The client is only using the public key to encrypt a session key which is then used by both sides to encrypt the data (symmetric encryption is faster AND in this way, both sides can encrypt the data ;) ).
    You are like a teacher, you have to be precise about the facts. What come on top of those (your opinion about things) we either agree with your or not (I tend to see things the same way, hence I am a long time subscriber ;)

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +5

      You're right. I should have been more precise. My bad... There's always room to improve not only knowledge but also how that knowledge is transmitted. Thanks for pointing out the mistake.

  • @fenarRH
    @fenarRH Před rokem +5

    Imho, mTLS is just a lousy mutual authentication, ie not a Authorization nor a very trustable authentication way, which would not likely address mitm and other impersonation attack types. The best practice would be network segmentation and use SCC for enforcing security policies on pods and containers.

    • @pier_x0
      @pier_x0 Před rokem +3

      I agree with you but authentication comes before the authorisation, you have to take care of both of them
      mTLS is only the beginning... as Victor says

  • @saravanans1825
    @saravanans1825 Před 4 měsíci +1

    Thanks!

    • @DevOpsToolkit
      @DevOpsToolkit  Před 4 měsíci

      Thanks a ton for the donation. It helps a lot keeping the expenses of the channel to a minimum.

  • @ThePellizzetti
    @ThePellizzetti Před rokem +1

    Great video! Do you have or plain to make a video about whether all communication between all the apps should go through API Gateway or not? I'm trying to improve how we handle authn/authz between services, initially I was pretty set on making all communication internal using a service mesh and identity/access proxy but I ended seeing quite a few cases where all requests were restricted to the API Gateway, it make me questioning what would usually be the best approach.

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      For the applications running in kubernetes clusters, service mesh is the way to go. If there are apps elsewhere, the situation is different and the answer depends on where they are.

    • @ThePellizzetti
      @ThePellizzetti Před rokem +1

      @@DevOpsToolkit Ah, we're running everything in k8s, thanks for clearing that up!

  • @farzadmf
    @farzadmf Před rokem +2

    Nice video (as always); just one thing that your first few slides mention "encripted" instead of "encrypted" 😛

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      My bad.
      Unfortunately, there is no option to re-upload a video so it'll have to stay.
      In the future, I'll make sure to double-check animations before publishing videos.

    • @farzadmf
      @farzadmf Před rokem +1

      No worries, doesn't change anything about the great quality of the actual content of the video!

  • @berndeckenfels
    @berndeckenfels Před 2 měsíci +1

    If I rely on the policies I can skip mTLS though

  • @m.l.n
    @m.l.n Před rokem +1

    Can you explain the difference between mTLS, EAP-TLS and EAP-TTLS

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem

      EAP-TLS is yet another Ii mplementation of an authentication protocol that is integrated with TLS.

  • @swapnilshingote8773
    @swapnilshingote8773 Před rokem +1

    I was told to use Mtls via api gateway.. Cracking my head around it how will I integrate this...

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +2

      If all communication paths are going through the API Gateway, than the recommendation to use it for mTLS does make sense. It would be a separate conversation whether all communication between all the apps should go through API Gateway.

  • @brahmadarapaneni4561
    @brahmadarapaneni4561 Před rokem

    Client validates the server cert by using CA and domain name in cert with enter domain in browser like this way client validates server cert
    But in client certs when server gets client cert, it verifiy with CA and with whom it validates this cert is from right user/application? As in server cert it validates with CA and domain name present with enterd domain in the browser.
    Can you help me here to get clarification

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem

      Domain name within the cluster is the name of the service combined with the namespace.

    • @brahmadarapaneni4561
      @brahmadarapaneni4561 Před rokem

      If it's in actual servers how client certs validated apart from CA

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem

      I assume by actual servers you mean something other than kubernetes. If that's the case, your best bet is an API Gateway.

  • @brahmadarapaneni4561
    @brahmadarapaneni4561 Před rokem

    I am not able to join your channel while doings payment it's getting error can you guide me

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem

      Not sure why is that so. You would need to contact CZcams since it's their payment system.

  • @ioannisgko
    @ioannisgko Před rokem +2

    Very well explained. The only downside with this strategy is that you will have 1 sidecar per pod. And if I have 1000 pods in my cluster, then 1000 sidecars will consume CPU and RAM. Is there another way to have mTLS?

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      eBPF should fix that issue. I would recommend checking out Cilium.

    • @cajgazachar
      @cajgazachar Před rokem +1

      @@DevOpsToolkit And Istio's Abmient mesh

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem

      @@cajgazachar Oh yeah. istio Ambient Mesh as well :)