ক্লাউড নেটিভ সিকিউরিটি এবং কুবারনেটিস
কুবারনেটিস একটি ক্লাউড নেটিভ আর্কিটেকচারের উপর ভিত্তি করে এবং ক্লাউড নেটিভ ইনফরমেশন সিকিউরিটির জন্য ভাল অনুশীলন সম্পর্কে CNCF থেকে পরামর্শ গ্রহণ করে।
কুবারনেটিস কীভাবে আপনাকে একটি সুরক্ষিত ক্লাউড নেটিভ প্ল্যাটফর্ম ডিপ্লয় করতে সহায়তা করার জন্য ডিজাইন করা হয়েছে তার একটি সংক্ষিপ্ত বিবরণের জন্য পড়ুন।
ক্লাউড নেটিভ ইনফরমেশন সিকিউরিটি
ক্লাউড নেটিভ সিকিউরিটির উপর CNCF হোয়াইট পেপার বিভিন্ন লাইফসাইকেল ফেজের জন্য উপযুক্ত সিকিউরিটি কন্ট্রোল এবং অনুশীলন সংজ্ঞায়িত করে।
ডেভেলপ লাইফসাইকেল ফেজ
- ডেভেলপমেন্ট এনভায়রনমেন্টের অখণ্ডতা নিশ্চিত করুন।
- আপনার প্রসঙ্গের জন্য উপযুক্ত, ইনফরমেশন সিকিউরিটির জন্য ভাল অনুশীলন অনুসরণ করে অ্যাপ্লিকেশন ডিজাইন করুন।
- সমাধান ডিজাইনের অংশ হিসাবে শেষ ব্যবহারকারী সিকিউরিটি বিবেচনা করুন।
এটি অর্জন করতে, আপনি করতে পারেন:
- একটি আর্কিটেকচার গ্রহণ করুন, যেমন জিরো ট্রাস্ট, যা আক্রমণ পৃষ্ঠকে ন্যূনতম করে, এমনকি অভ্যন্তরীণ হুমকির জন্যও।
- একটি কোড রিভিউ প্রসেস সংজ্ঞায়িত করুন যা সিকিউরিটি উদ্বেগ বিবেচনা করে।
- আপনার সিস্টেম বা অ্যাপ্লিকেশনের একটি থ্রেট মডেল তৈরি করুন যা ট্রাস্ট বাউন্ডারি চিহ্নিত করে। ঝুঁকি চিহ্নিত করতে এবং সেগুলি কীভাবে চিকিৎসা করতে হবে তা নির্ধারণ করতে সেই থ্রেট মডেল ব্যবহার করুন।
- উন্নত সিকিউরিটি অটোমেশন অন্তর্ভুক্ত করুন, যেমন ফাজিং এবং সিকিউরিটি কেওস ইঞ্জিনিয়ারিং, যেখানে এটি ন্যায্য।
ডিস্ট্রিবিউট লাইফসাইকেল ফেজ
- আপনি যে কন্টেইনার ইমেজ এক্সিকিউট করেন তার সাপ্লাই চেইনের সিকিউরিটি নিশ্চিত করুন।
- ক্লাস্টার এবং অন্যান্য কম্পোনেন্টের সাপ্লাই চেইনের সিকিউরিটি নিশ্চিত করুন যা আপনার অ্যাপ্লিকেশন এক্সিকিউট করে। উদাহরণস্বরূপ, এতে একটি বাহ্যিক ডেটাবেস অন্তর্ভুক্ত থাকতে পারে যা আপনার ক্লাউড নেটিভ অ্যাপ্লিকেশন পার্সিস্টেন্সের জন্য ব্যবহার করে।
এটি অর্জন করতে, আপনি করতে পারেন:
- পরিচিত দুর্বলতার জন্য কন্টেইনার ইমেজ এবং অন্যান্য আর্টিফ্যাক্ট স্ক্যান করুন।
- নিশ্চিত করুন যে সফ্টওয়্যার ডিস্ট্রিবিউশন ট্রানজিটে এনক্রিপশন ব্যবহার করে, সফ্টওয়্যার সোর্সের জন্য একটি চেইন অফ ট্রাস্ট সহ।
- আপডেট উপলব্ধ হলে ডিপেন্ডেন্সি আপডেট করার প্রসেস গ্রহণ এবং অনুসরণ করুন, বিশেষত সিকিউরিটি ঘোষণার প্রতিক্রিয়ায়।
- সাপ্লাই চেইন অ্যাসিউরেন্সের জন্য ডিজিটাল সার্টিফিকেটের মতো ভ্যালিডেশন মেকানিজম ব্যবহার করুন।
- সিকিউরিটি ঝুঁকি সম্পর্কে আপনাকে সতর্ক করতে ফিড এবং অন্যান্য মেকানিজম সাবস্ক্রাইব করুন।
- আর্টিফ্যাক্টে অ্যাক্সেস সীমাবদ্ধ করুন। কন্টেইনার ইমেজ একটি প্রাইভেট রেজিস্ট্রিতে রাখুন যা শুধুমাত্র অনুমোদিত ক্লায়েন্টদের ইমেজ পুল করার অনুমতি দেয়।
ডিপ্লয় লাইফসাইকেল ফেজ
কী ডিপ্লয় করা যেতে পারে, কে এটি ডিপ্লয় করতে পারে এবং কোথায় এটি ডিপ্লয় করা যেতে পারে তার উপর উপযুক্ত সীমাবদ্ধতা নিশ্চিত করুন। আপনি ডিস্ট্রিবিউট ফেজ থেকে ব্যবস্থা প্রয়োগ করতে পারেন, যেমন কন্টেইনার ইমেজ আর্টিফ্যাক্টের ক্রিপ্টোগ্রাফিক পরিচয় যাচাই করা।
আপনি বিভিন্ন অ্যাপ্লিকেশন এবং ক্লাস্টার কম্পোনেন্ট বিভিন্ন নেমস্পেসে ডিপ্লয় করতে পারেন। কন্টেইনার এবং নেমস্পেস উভয়ই আইসোলেশন মেকানিজম প্রদান করে যা ইনফরমেশন সিকিউরিটির জন্য প্রাসঙ্গিক।
যখন আপনি কুবারনেটিস ডিপ্লয় করেন, আপনি আপনার অ্যাপ্লিকেশনের রানটাইম এনভায়রনমেন্টের ভিত্তিও স্থাপন করেন: একটি কুবারনেটিস ক্লাস্টার (বা একাধিক ক্লাস্টার)। সেই ইনফ্রাস্ট্রাকচার অবশ্যই সিকিউরিটি গ্যারান্টি প্রদান করবে যা উচ্চতর লেয়ার প্রত্যাশা করে।
রানটাইম লাইফসাইকেল ফেজ
রানটাইম ফেজ তিনটি গুরুত্বপূর্ণ ক্ষেত্র নিয়ে গঠিত: অ্যাক্সেস, কম্পিউট, এবং স্টোরেজ।
রানটাইম প্রোটেকশন: অ্যাক্সেস
কুবারনেটিস API হল যা আপনার ক্লাস্টারকে কাজ করায়। এই API সুরক্ষিত করা কার্যকর ক্লাস্টার সিকিউরিটি প্রদানের জন্য মূল।
কুবারনেটিস ডকুমেন্টেশনের অন্যান্য পৃষ্ঠায় অ্যাক্সেস কন্ট্রোলের নির্দিষ্ট দিক কীভাবে সেট আপ করতে হয় সে সম্পর্কে আরও বিস্তারিত রয়েছে। সিকিউরিটি চেকলিস্ট আপনার ক্লাস্টারের জন্য প্রস্তাবিত মৌলিক চেক প্রদান করে।
এর বাইরে, আপনার ক্লাস্টার সুরক্ষিত করার অর্থ হল API অ্যাক্সেসের জন্য কার্যকর অথেনটিকেশন এবং অথরাইজেশন ইমপ্লিমেন্ট করা। ওয়ার্কলোড এবং ক্লাস্টার কম্পোনেন্টের জন্য সিকিউরিটি আইডেন্টিটি প্রদান এবং পরিচালনা করতে ServiceAccount ব্যবহার করুন।
কুবারনেটিস API ট্রাফিক সুরক্ষিত করতে TLS ব্যবহার করে; TLS ব্যবহার করে ক্লাস্টার ডিপ্লয় করতে নিশ্চিত করুন (Node এবং কন্ট্রোল প্লেনের মধ্যে ট্রাফিক সহ) এবং এনক্রিপশন কী সুরক্ষিত করুন। যদি আপনি CertificateSigningRequests এর জন্য কুবারনেটিসের নিজস্ব API ব্যবহার করেন, সেখানে অপব্যবহার সীমাবদ্ধ করতে বিশেষ মনোযোগ দিন।
রানটাইম প্রোটেকশন: কম্পিউট
কন্টেইনার দুটি জিনিস প্রদান করে: অ্যাপ্লিকেশনের মধ্যে আইসোলেশন এবং সেই আইসোলেটেড অ্যাপ্লিকেশনগুলিকে একই হোস্ট কম্পিউটারে চালানোর জন্য একত্রিত করার একটি মেকানিজম। এই দুটি দিক—আইসোলেশন এবং অ্যাগ্রিগেশন—মানে রানটাইম সিকিউরিটি ট্রেড-অফ চিহ্নিত করা এবং একটি উপযুক্ত ভারসাম্য খুঁজে পাওয়া জড়িত।
কুবারনেটিস কন্টেইনার সেট আপ এবং চালানোর জন্য একটি কন্টেইনার রানটাইমের উপর নির্ভর করে। কুবারনেটিস প্রজেক্ট একটি নির্দিষ্ট কন্টেইনার রানটাইম সুপারিশ করে না, এবং আপনার নির্বাচিত রানটাইম(গুলি) আপনার ইনফরমেশন সিকিউরিটি চাহিদা পূরণ করে তা নিশ্চিত করা উচিত।
রানটাইমে আপনার কম্পিউট সুরক্ষিত করতে, আপনি করতে পারেন:
-
অ্যাপ্লিকেশনের জন্য Pod Security Standards প্রয়োগ করুন যাতে তারা শুধুমাত্র প্রয়োজনীয় প্রিভিলেজ সহ চলে তা নিশ্চিত করতে সহায়তা করে।
-
আপনার Node এ একটি বিশেষায়িত অপারেটিং সিস্টেম চালান যা বিশেষভাবে কন্টেইনারাইজড ওয়ার্কলোড চালানোর জন্য ডিজাইন করা হয়েছে। এটি সাধারণত একটি রিড-অনলি অপারেটিং সিস্টেমের (ইমিউটেবল ইমেজ) উপর ভিত্তি করে যা শুধুমাত্র কন্টেইনার চালানোর জন্য প্রয়োজনীয় সার্ভিস প্রদান করে।
কন্টেইনার-নির্দিষ্ট অপারেটিং সিস্টেম সিস্টেম কম্পোনেন্ট আইসোলেট করতে সহায়তা করে এবং কন্টেইনার এস্কেপের ক্ষেত্রে একটি হ্রাসকৃত আক্রমণ পৃষ্ঠ উপস্থাপন করে।
-
শেয়ার্ড রিসোর্স ন্যায্যভাবে বরাদ্দ করতে ResourceQuotas সংজ্ঞায়িত করুন, এবং LimitRanges এর মতো মেকানিজম ব্যবহার করুন যাতে Pod তাদের রিসোর্স প্রয়োজনীয়তা নির্দিষ্ট করে তা নিশ্চিত করতে।
-
আইসোলেশন উন্নত করতে বিভিন্ন Node জুড়ে ওয়ার্কলোড পার্টিশন করুন। Node আইসোলেশন মেকানিজম ব্যবহার করুন, হয় কুবারনেটিস নিজেই থেকে বা ইকোসিস্টেম থেকে, যাতে নিশ্চিত করা যায় যে বিভিন্ন ট্রাস্ট কনটেক্সট সহ Pod পৃথক Node সেটে চলে।
-
একটি কন্টেইনার রানটাইম ব্যবহার করুন যা সিকিউরিটি সীমাবদ্ধতা প্রদান করে।
-
Linux Node এ, একটি Linux সিকিউরিটি মডিউল ব্যবহার করুন যেমন AppArmor বা seccomp।
রানটাইম প্রোটেকশন: স্টোরেজ
আপনার ক্লাস্টার এবং সেখানে চলা অ্যাপ্লিকেশনের জন্য স্টোরেজ সুরক্ষিত করতে, আপনি করতে পারেন:
- আপনার ক্লাস্টারকে একটি বাহ্যিক স্টোরেজ প্লাগইনের সাথে ইন্টিগ্রেট করুন যা ভলিউমের জন্য রেস্টে এনক্রিপশন প্রদান করে।
- API অবজেক্টের জন্য রেস্টে এনক্রিপশন সক্ষম করুন।
- ব্যাকআপ ব্যবহার করে ডেটা ডিউরেবিলিটি সুরক্ষিত করুন, এবং যাচাই করুন যে আপনি প্রয়োজনে সেগুলি পুনরুদ্ধার করতে পারেন।
- ক্লাস্টার Node এবং তারা যে নেটওয়ার্ক স্টোরেজের উপর নির্ভর করে তার মধ্যে সংযোগ অথেনটিকেট করুন।
- আপনার নিজস্ব অ্যাপ্লিকেশনের মধ্যে ডেটা এনক্রিপশন ইমপ্লিমেন্ট করুন।
এনক্রিপশন কী এর জন্য, বিশেষায়িত হার্ডওয়্যারের মধ্যে এগুলি জেনারেট করা প্রকাশের ঝুঁকির বিরুদ্ধে সেরা সুরক্ষা প্রদান করে। একটি হার্ডওয়্যার সিকিউরিটি মডিউল আপনাকে সিকিউরিটি কী অন্যত্র কপি করার অনুমতি না দিয়ে ক্রিপ্টোগ্রাফিক অপারেশন সম্পাদন করতে দিতে পারে।
নেটওয়ার্কিং এবং সিকিউরিটি
আপনার নেটওয়ার্ক সিকিউরিটি ব্যবস্থাও বিবেচনা করা উচিত, যেমন NetworkPolicy বা একটি সার্ভিস মেশ। কুবারনেটিসের জন্য কিছু নেটওয়ার্ক প্লাগইন আপনার ক্লাস্টার নেটওয়ার্কের জন্য এনক্রিপশন প্রদান করে ভার্চুয়াল প্রাইভেট নেটওয়ার্ক (VPN) ওভারলের মতো প্রযুক্তি ব্যবহার করে। ডিজাইন অনুসারে, কুবারনেটিস আপনাকে আপনার ক্লাস্টারের জন্য আপনার নিজস্ব নেটওয়ার্কিং প্লাগইন ব্যবহার করতে দেয়। যদি আপনি ম্যানেজড কুবারনেটিস ব্যবহার করেন, প্রোভাইডার ইতিমধ্যে আপনার জন্য একটি নেটওয়ার্ক প্লাগইন নির্বাচন করে থাকতে পারে।
আপনি যে নেটওয়ার্ক প্লাগইন বেছে নেন এবং আপনি যেভাবে এটি ইন্টিগ্রেট করেন তা ট্রানজিটে তথ্যের সিকিউরিটির উপর একটি শক্তিশালী প্রভাব ফেলতে পারে।
অবজারভেবিলিটি এবং রানটাইম সিকিউরিটি
কুবারনেটিস আপনাকে অতিরিক্ত টুলিং দিয়ে আপনার ক্লাস্টার প্রসারিত করতে দেয়। আপনি আপনার অ্যাপ্লিকেশন এবং সেগুলি যে ক্লাস্টারে চলছে তা মনিটর বা ট্রাবলশুট করতে সহায়তা করার জন্য থার্ড পার্টি সমাধান সেট আপ করতে পারেন। আপনি কুবারনেটিস নিজেই বিল্ট ইন কিছু মৌলিক অবজারভেবিলিটি ফিচারও পান। কন্টেইনারে চলমান আপনার কোড লগ জেনারেট করতে পারে, মেট্রিক্স প্রকাশ করতে পারে, বা অন্যান্য অবজারভেবিলিটি ডেটা প্রদান করতে পারে; ডিপ্লয় টাইমে, আপনাকে নিশ্চিত করতে হবে যে আপনার ক্লাস্টার সেখানে একটি উপযুক্ত স্তরের সুরক্ষা প্রদান করে।
যদি আপনি একটি মেট্রিক্স ড্যাশবোর্ড বা অনুরূপ কিছু সেট আপ করেন, সেই ড্যাশবোর্ডে ডেটা পপুলেট করে এমন কম্পোনেন্টের চেইন, সেইসাথে ড্যাশবোর্ড নিজেই পর্যালোচনা করুন। নিশ্চিত করুন যে সম্পূর্ণ চেইন যথেষ্ট রেজিলিয়েন্স এবং ইন্টিগ্রিটি প্রোটেকশন সহ ডিজাইন করা হয়েছে যাতে আপনি এমনকি একটি ইনসিডেন্টের সময়ও এটির উপর নির্ভর করতে পারেন যেখানে আপনার ক্লাস্টার ডিগ্রেডেড হতে পারে।
যেখানে উপযুক্ত, কুবারনেটিস লেয়ারের নীচে সিকিউরিটি ব্যবস্থা ডিপ্লয় করুন, যেমন ক্রিপ্টোগ্রাফিকভাবে মেজার্ড বুট বা সময়ের অথেনটিকেটেড ডিস্ট্রিবিউশন (যা লগ এবং অডিট রেকর্ডের বিশ্বস্ততা নিশ্চিত করতে সহায়তা করে)।
একটি হাই-অ্যাসিউরেন্স এনভায়রনমেন্টের জন্য, ক্রিপ্টোগ্রাফিক প্রোটেকশন ডিপ্লয় করুন যাতে নিশ্চিত করা যায় যে লগ ট্যাম্পার-প্রুফ এবং গোপনীয় উভয়ই।
এর পরের কি
ক্লাউড নেটিভ সিকিউরিটি
- ক্লাউড নেটিভ সিকিউরিটির উপর CNCF হোয়াইট পেপার।
- একটি সফ্টওয়্যার সাপ্লাই চেইন সুরক্ষিত করার জন্য ভাল অনুশীলনের উপর CNCF হোয়াইট পেপার।
- Fixing the Kubernetes clusterf**k: Understanding security from the kernel up (FOSDEM 2020)
- Kubernetes Security Best Practices (Kubernetes Forum Seoul 2019)
- Towards Measured Boot Out of the Box (Linux Security Summit 2016)