Sunday, November 8, 2020

What I learned about Kubernetes - Security (K8s security introduction)

                         ဒီ article အကြောင်းကတော့ Kubernetes နဲ့ ပတ်သက်တဲ့ security အကြောင်းဖြစ်ပါတယ်။ kubernetes တစ်ခုလုံးက API ပေါ်မှာ အခြေခံပြီး run နေတာ ဖြစ်တဲ့အတွက် ဒီ API call တွေကို secure ဖြစ်အောင် ဘယ်လိုလုပ်ကြလဲဆိုတာကို ပြောပြပေးသွားမှာဖြစ်ပါတယ်။ Kubernetes components တွေသည် API call တွေကို အခြေခံပြီး communicate လုပ်ကြတယ်။ Kubernetes API ကို ဘယ်လို access လုပ်သလဲဆိုတော့ ကျွန်တော်တို့ တောက်လျှောက်သုံးလာခဲ့တဲ့ "kubectl" command line tool ကို အသုံးပြုပြီး access လုပ်ပါတယ်။ သို့မဟုတ် direct access အနေနဲ့  kubernetes rest api ကို access လုပ်ချင်ရင်တော့ "curl" or "wget" စသည်တို့ကို အသုံးပြုပြီး access လုပ်နိုင်ပါတယ်။

Let's get started!!!


So, How to control access to Kubernetes API?

            ဆိုတော့ ဒီ kubernetes api ကို securely access ဖြစ်ဖို့အတွက် ဘယ်လိုလုပ်မလဲဆိုတော့ အရင်ဆုံး Who can access the server? ဘယ်သူက ဒီ kubernetes api တွေ ကို access လုပ်နိုင်သလဲ ဆိုတာ သိဖို့အတွက် API Authentication method လိုမယ် ပြီးနောက် authentication pass ဖြစ်ပြီးရင် ဘယ် services တွေကိုတော့ အသုံးပြုနိုင်မယ် အသုံးမပြုနိုင်ဘူးဆိုတာ ထိန်းချုပ်ဖို့ API Authorization method လိုမှာဖြစ်ပါတယ်။


What types of API Authentication?

             Authentication ပြုလုပ်ဖို့အတွက် ဘယ်လိုမျိုး နည်းလမ်းတွေရှိလဲဆိုတော့

1. Files - username and passwords

2. Files - username and tokens

3. Certificates

4. External Authentication Providers - i.e LDAP

5. Service Accounts 

စသည့် method တွေကို အသုံးပြုပြီး authentication လုပ်နိုင်ပါတယ်။

What types of API Authorization?

            Authenticated ဖြစ်ပြီးနောက် ဘာတွေလုပ်ခွင့်ရှိလဲဆိုတာကို ဆုံးဖြတ်ဖို့အတွက် authorization method ဖြင့် ဆုံးဖြတ်ပါတယ်။ Types ဘယ်နှစ်မျိုး ရှိလဲဆိုတော့ 

1. RBAC Authorization ( Role-Based Access Control)

2. ABAC (Attribute-Based Access Control)

3. Node Authorization

4. Webhook Mode 

စသည့် method တွေကို အသုံးပြုပြီး authorization ပြုလုပ်နိုင်ပါတယ်။


How about securing between  Kubernetes components?

            Kubernetes components တွေဖြစ်တဲ့ kube-api, kube-controllermanager, kube-scheduler, kubelet, etcd and kubeproxy တို့ ကြား communication မှာ secure ဖြစ်အောင် default အနေနဲ့ PKI with TLS Certificate encryption method ကို အသုံးပြုပါတယ်။


How to secure the network traffic between Pods?

            Pods တွေအချင်းချင်း communication လုပ်ရာမှာ network traffic flow ကို restrict လုပ်ခြင်းဖြင့် secure လုပ်ပါတယ်။ ထိုသို့ secure လုပ်ရန် အတွက်က network policy ကို အသုံးပြုပါတယ်။ နောက်ပိုင်း article တွေမှာ network policy အကြောင်းသတ်သက်ပါဝင်ပါမယ်။

That's it 😊


Pls Like and Subscribe to Our Root Of Info FB Page and Youtube Channel


https://www.facebook.com/rootofinfo


https://www.youtube.com/channel/UCkOi7WxhUBKONv3uD0CvuWw?view_as=subscriber


Thank you!!!


Share:

0 comments:

Post a Comment