Crypto Shredding in Cloud Computing Data Security

ရုပ်ရှင်တွေထဲမှာ  SIM card, Microchip, Memory Chip စတာတွေ ကို Microwave Oven ထဲထည့်ပြီး ဖျက်ဆီးပစ်တာတို့ ၊

Hard Disk လို Storage device တွေ ကို Drilling Machine နဲ့ ထိုးဖောက်ပြီး ဖျက်ဆီးတာတို့၊ Crashing machine ထဲ ထည့်ပြီး တစစီ ချေမွ ပစ်တာတို့ ကို မြင်ဖူး ကြမှာပါ။

အဲ့ဒါမျိုး ကို Data Destruction လုပ်တယ်လို့ ခေါ် ပါတယ်။

Electric Value အနေနဲ့ Storage Device တွေ ထဲမှာ ကျန်နေတဲ့ Data တွေ ကို သံလိုက်လှိုင်း သုံးပြီး ဖျက်ဆီးတာမျိုးကို ကျတော့  Degaussing လုပ်တယ်လို့ ခေါ် ပါတယ်။

Paper ပေါ် က Data မျိုးကျတော့ မီးရှို့ တာတို့၊ Shredder သုံးပြီး ဖျက်ဆီးတာတို့ လုပ်ကြတာပေါ့။

ဒီ အပေါ် က လုပ်ငန်းစဉ်တွေ က On-Premise Infrastructure တွေ မှာ Data Security Policy အရ လုပ်ရတဲ့ လုပ်ငန်းစဉ် တွေ ပါ။  Data တွေ ကို Encryption လုပ်ထားပြီး သား ကို‌တောင် Physically ဖျက်ဆီး ပစ်ရပါတယ်။

Cloud Computing ခေတ်ရောက်လာတော့ Data Dispersion ဆိုတာ ကြီး ကြောင့် Data Security Policy ကို အမှားအယွင်းမရှိ လိုက်နာဖို့ ခက်ခဲလာပါတယ်။

Cloud Service Provider တွေ ဟာ သူတို့ ပေးထားတဲ့ Service Level Agreement ကြောင့် Cloud Service အသုံးပြု သူ တွေ ရဲ့ Data ကို Region ပေါင်းများစွာ မှာ Replicate လုပ်ထားကြ ရပါတယ်။
အဲ့လို Replicate လုပ်ထားတာကိုပဲ Data Dispersion လို့ ခေါ် တာပါ။
ဒီအခါမှာ အသုံးပြုတဲ့ အဖွဲ့အစည်းတွေ အနေနဲ့  Cloud Service Provider ရဲ့  Resource မှာ သိမ်းထားတဲ့ Data တွေ က ကမ္ဘာအရပ်ရပ်မှာ ရှိတဲ့ Data Center တွေ ဆီမှာ ရောက်နေပါတယ်။

ဒီအတွက် လက်ရှိ Cloud Service Provider ကို ဆက်လက်အသုံးမပြု ပဲ နောက် တခု ပြောင်း သုံး ဖို့ အခြေ အနေ ကြုံ လာတဲ့ အခါ Data Security Policy အရ Data တွေ ကျန်မနေ ခဲ့ အောင် Destruction လုပ်ဖို့ အခက်တွေ့ ကြ ရပါတယ်။ CSP တွေအနေနဲ့ Shared Storage Pool တွေ ကို Physical Destruction လုပ်မှာ မဟုတ် သလို၊ Dedicated Storage Pool တွေ ကို Destruction လုပ်တယ် မလုပ်ဖူး ဆိုတာကို ယုံကြည်ထားလို့ လဲ မရပြန်ပါဘူး။

ဒီအခါမှာ Crypto Shredding ဆိုတာဟာ အရေး ပါလာပါတယ်။

Crypto Shredding ကို Cryptographic Shredding လို့လဲ ခေါ် ကြပါသေးတယ်။
အလုပ်လုပ်ပုံကတော့ Storage device တခုမှာ ရှိနေတဲ့ Data ကို Encryption Algorithm တခု သုံးပြီး Encrypt လုပ်ပါတယ်။ Decrypt ပြန် လုပ် လို့ ရတဲ့ Key ကို နောက် တကြိမ် တခါ ထပ်ပြီး Encrypt လုပ်ပြီး ရလာတဲ့ Decryption Key ကို ဘယ်နေရာ မှာ မှ သိမ်းမထားပဲ ဖျက်ဆီးပစ်တာပါ။

နောက် တနည်းကတော့ ဒုတိယအကြိမ် Encrypt လုပ်တဲ့ အခါမှာ Decryption Key မပါပဲ Encrypt လုပ်လိုက်တာပါ။ ဒီနည်းကို သုံးတာ ကျတော့ အိုင်တီ သမား လက်ရှိ သက်တမ်းအထိ မတွေ့ ဖူးသေးပါဘူး။




ဒီလိုလုပ်ခြင်း အားဖြင့် Data Dispersion ကြောင့် ဖြစ် လာနိုင်တဲ့ Data Security Weakness တွေ ကို ကာကွယ်ပြီး သား ဖြစ်သွားပါတယ်။

Crypto Shredding ကို Cloud Computing ကို အသုံးပြု နေရတဲ့ အိုင်တီ သမားတွေ အနေ နဲ့  အတိအကျ လိုက်နာဖို့  အထူးလိုပါတယ်။
Cloud Resource တခု ဆောက်ပြီ ဆိုတာနဲ့  Encryption Algorithm သုံးပြီး Data in Transit/Motion, Data in use နဲ့ Data at rest တို့ကို Encrypt လုပ်ကို လုပ်ရမှာ ပဲ ဖြစ်ပါတယ်။
မလုပ်ထားရင်တော့ CSP ရဲ့  Data Dispersion ကြောင့်  နောင် တချိန်မှာ ဥရောပလို GDPR policy မျိုး က ကိုယ်ရော ကိုယ့်အလုပ်လုပ်နေတဲ့ အဖွဲ့ အစည်းရော ဒုက္ခ ပေး ဖို့ ဖြစ်လာမှာပါ။

ကျေးဇူးတင်ပါတယ်။

ပျော် ရွှင် ပါ စေ။
(Be knowledgeable, pass it on then)







Demystifying Service Principal (SP) and Managed Identity (MI)

Azure Cloud Architect တွေ ခေါင်း အစားရဆုံး ကတော့ ဘယ်အချိန်မှာ Service Principal  (SP) ကိုသုံးပြီး ဘယ်အချိန်မှာ Managed Identity (MI) ကို သုံးမလဲ ဆိုတာပါပဲ။

တကယ်က SP နဲ့  MI ရဲ့  နောက်ကွယ်က အလုပ်လုပ်ပုံ အမှန်တရားက အတူတူပါပဲ။

ကျတော် တို့ အရင် On-Premise AD တွေ သုံးတုန်းကဆိုရင် Application တွေ Service တွေ မှာ သုံးဖို့ Service Account ဆိုတာ Create လုပ်ပြီး သုံးကြ ရပါတယ်။

အဲဒီမှာ ပြဿနာက AD account တွေ ရဲ့ ထုံးစံ အရ Password Expiry Date ရှိနေတာပါပဲ။ Non-expired လုပ်ထားရင်လဲ Security အရ non-compliance ဖြစ်တဲ့ အတွက် ထားမရပါဘူး။

ဒီတော့ Password renew လုပ်ရတဲ့ Integrate လုပ်ထားတဲ့ Application, Service တွေ မှာ Password update လုပ်ရပါတယ်။

ဒီအခါမှာ Application, Network, System နဲ့ Infra သမားတို့ ထုံးစံ အတိုင်း ဘယ်နေရာ တွေမှာ Account ကို သုံးထားလဲ အကုန်မသိတဲ့ အခါ Production down တဲ့ impact မျိုးတွေ ကြုံ ရတာပါပဲ။

Azure Cloud မှာတော့ ဒီပြဿနာကို ဖြေရှင်း ဖို့ Service Principal (SP) နဲ့ Managed Identity (MI) ဆို တာ ရှိလာပါတယ်။

Service Prinicpal ဆိုတာက Create လုပ်လိုက်တာနဲ့ ID နဲ့ Credential ဆိုတာ ရလာပြီး၊ ရလာတဲ့ ID, Credential ကို Azure Keyvault လို Key, Secret Management Service တခုခုမှာ သိမ်းထားရပါတယ်။

ပြီး မှ Service Principal (SP) ကို Keyvault မှာ Role Base Access Control ပေးပြီး ပြန် သုံးရတာပါ။

SP ကို ဘယ်မှာ သုံးသင့်လဲ ဆိုတော့ AzureDevOps, Ansible, Terraform လို Automation Tools တွေ , Third Party Application, Enterprise Application တွေ မှာ Integrate လုပ်ပြီး Token Base Authenticaion တွေ နဲ့ သုံးသင့်ပါတယ်။



Managed Identity (MI) မှာ တော့ System-Assigned နဲ့ User-Assigned ဆိုပြီး နှစ်မျိုး ရှိပါတယ်။

System-Assigned ဆိုတာကတော့ Resource တခုမှာ ID တခု Assigned လုပ်ထားတာ ဖြစ်ပြီး Resource မရှိတော့ တာနဲ့ ID လဲ မရှိတော့ပါဘူး။

User-Assigned ကတော့ Azure AD မှာ Create လုပ်ပြီး Resource တွေ မှာ Assign ပြန်လုပ်ပြီး သုံးရတာပါ။

MI ရဲ့ ထူးခြား ချက်က Credential ကို မသိရတာပါပဲ။ ဒါကြောင့် ပဲ သူ့ အတွက် Credential ကို Azure Keyvault လို Secret Management Service တခုခုမှာ သွားသိမ်းစရာ မလိုတော့ပါဘူး။

သူကတော့ Azure Resource တွေ နဲ့ Link လုပ်ပြီး သုံးရတဲ့ အမျိုးအစားပါ။

ဥပမာ Azure File Share service ကို သုံးမယ့် Server VM တွေ အတွက် User-Assigned Storage Account Access MI တခု Create လုပ်ပြီး Server VM အားလုံးမှာ assign လုပ်တာမျိုးပေါ့။ 


အနှစ်ချုပ် ရမယ်ဆိုရင် ...

Service Prinicipal ကို Applications, Third Party Tools, Automation Tools တွေမှာ Integrate လုပ်ပြီး သုံးရမှာ ဖြစ်ပါတယ်။

သူ့ ကို သုံးမယ်ဆိုရင် Credential အတွက် Secret Key Management Service တခုခုလိုအပ်ပြီး၊ အနည်းငယ် ရှုပ်ထွေး ပြီး ပိုများ တဲ့ RBAC အဆင့်တွေ ကို အသုံးပြု ဖို့ လိုအပ်ပါတယ်။


Managed Identity ကို တော့ Azure Resource တွေ နဲ့ Link လုပ်ပြီး သုံးရမှာ ဖြစ်ပါတယ်။

သူ့ကို သုံးမယ်ဆိုရင်တော့ User-Assigned MI က‌တော့ Recommend ဖြစ်ပေမယ့် ကိုယ့် Architecture ပေါ် မူတည်ပြီး System-Assigned MI ကို လဲ သုံးသင့်ရင် သုံးရမှာပဲ ဖြစ်ပါတယ်။ System-Assigned ရဲ့ Life Cycle ကတော့ Resource ရဲ့ Life Cycle နဲ့ အတူတူပဲ ရှိတာကိုတော့ သတိချပ်ဖို့လိုပါတယ်။


ဒီလောက်ဆို SP နဲ့ MI အကြောင်း တီးမိခေါက်မိလောက်ပြီ ထင်ပါတယ်။


ကျေးဇူးတင်ပါတယ်။


ပျော်ရွှင်ပါစေ။

(Be knowledgeable, pass it on then)