1. ভূমিকা
Google ক্লাউড আর্মার এজ নিরাপত্তা নীতিগুলি আপনাকে Google ক্লাউড CDN এবং Google ক্লাউড স্টোরেজে ক্যাশ করা বস্তুগুলিতে অ্যাক্সেস সীমাবদ্ধ করার অনুমতি দেয়৷ এটি করার কারণগুলির উদাহরণগুলির মধ্যে রয়েছে নিশ্চিত করা যে আপনার ব্যবহারকারীরা সীমাবদ্ধ ভৌগলিক স্থান থেকে স্টোরেজ বাকেটের বস্তুগুলি অ্যাক্সেস করতে পারবে না বা আপনার মিডিয়া বিতরণ সেই ভৌগলিক অঞ্চলগুলিতে ফিল্টার করছে যা আপনার কাছে এটি করার লাইসেন্স রয়েছে তা নিশ্চিত করা।
এই ল্যাবে আমরা একটি GCS বাকেট তৈরি করব, এটিতে একটি ছবি আপলোড করব, এটিকে একটি লোড ব্যালেন্সারের সাথে আবদ্ধ করব এবং তারপরে এটিতে ক্লাউড CDN এবং এজ নিরাপত্তা নীতিগুলি সক্ষম করব৷
আপনি কি শিখবেন
- ক্যাশেযোগ্য সামগ্রী সহ একটি ক্লাউড স্টোরেজ বাকেট কীভাবে সেট আপ করবেন
- বিষয়বস্তু রক্ষা করার জন্য কিভাবে একটি এজ সিকিউরিটি পলিসি তৈরি করবেন
- এজ সিকিউরিটি পলিসি প্রত্যাশিতভাবে কাজ করছে তা কীভাবে যাচাই করবেন
আপনি কি প্রয়োজন হবে
- বেসিক নেটওয়ার্কিং এবং HTTP এর জ্ঞান
- মৌলিক ইউনিক্স/লিনাক্স কমান্ড লাইন জ্ঞান
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না এবং আপনি যে কোনো সময় এটি আপডেট করতে পারেন।
- সমস্ত Google ক্লাউড প্রজেক্ট জুড়ে প্রোজেক্ট আইডি অবশ্যই অনন্য হতে হবে এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এবং এটি সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত করা হয়), তাই আপনি যদি এটি পছন্দ না করেন তবে অন্য একটি এলোমেলো তৈরি করুন, অথবা, আপনি নিজের চেষ্টা করে দেখতে পারেন এটি উপলব্ধ কিনা। তারপর প্রকল্প তৈরি হওয়ার পরে এটি "হিমায়িত" হয়। - একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। রিসোর্স বন্ধ করতে যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন, কোডল্যাবের শেষে পাওয়া যেকোনো "ক্লিন-আপ" নির্দেশাবলী অনুসরণ করুন। Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল শুরু করুন
যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।
GCP কনসোল থেকে উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:
পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই ল্যাবে আপনার সমস্ত কাজ কেবল একটি ব্রাউজার দিয়ে করা যেতে পারে।
আপনি শুরু করার আগে
ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেট আপ করা আছে
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] echo $PROJECT_ID
এপিআই সক্ষম করুন
সমস্ত প্রয়োজনীয় পরিষেবা সক্রিয় করুন
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3. একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন৷
ক্লাউড কনসোলে, নেভিগেশন মেনু > ক্লাউড স্টোরেজ > ব্রাউজারে যান। বালতি তৈরি করুন ক্লিক করুন:
বালতি নামকরণের নিয়ম:
- বালতির নামের মধ্যে সংবেদনশীল তথ্য অন্তর্ভুক্ত করবেন না, কারণ বালতির নামস্থানটি বিশ্বব্যাপী এবং সর্বজনীনভাবে দৃশ্যমান।
- বালতির নামগুলিতে শুধুমাত্র ছোট হাতের অক্ষর, সংখ্যা, ড্যাশ (-), আন্ডারস্কোর (_), এবং বিন্দু (.) থাকতে হবে। বিন্দু সমন্বিত নামের যাচাইকরণ প্রয়োজন।
- বালতির নাম অবশ্যই একটি সংখ্যা বা অক্ষর দিয়ে শুরু এবং শেষ হতে হবে।
- বালতির নামগুলিতে 3 থেকে 63টি অক্ষর থাকতে হবে। বিন্দু সমন্বিত নামগুলিতে 222টি অক্ষর থাকতে পারে, তবে প্রতিটি বিন্দু-বিভাজিত উপাদান 63টি অক্ষরের বেশি হতে পারে না।
- ডটেড-ডেসিমেল নোটেশনে (উদাহরণস্বরূপ, 192.168.5.4) বালতির নামগুলি আইপি ঠিকানা হিসাবে উপস্থাপন করা যায় না।
- বালতির নাম "goog" উপসর্গ দিয়ে শুরু হতে পারে না।
- বালতির নামগুলিতে "google" বা "google" এর কাছাকাছি ভুল বানান থাকতে পারে না।
- এছাড়াও, DNS কমপ্লায়েন্স এবং ভবিষ্যতের সামঞ্জস্যের জন্য, আপনার আন্ডারস্কোর (_) ব্যবহার করা উচিত নয় বা অন্য পিরিয়ড বা ড্যাশের সংলগ্ন একটি পিরিয়ড থাকা উচিত নয়। উদাহরণস্বরূপ, ".." বা "-।" অথবা ".-" DNS নামে বৈধ নয়৷
CONTIUE এ ক্লিক করুন।
অবস্থানের ধরন: অঞ্চল
অবস্থান: আপনার থেকে দূরে একটি অঞ্চল চয়ন করুন
CONTIUE এ ক্লিক করুন।
ডিফল্ট স্টোরেজ ক্লাস: স্ট্যান্ডার্ড
CONTIUE এ ক্লিক করুন।
পাবলিক অ্যাক্সেস প্রতিরোধের অধীনে এই বালতি চেকবক্সে পাবলিক অ্যাক্সেস প্রতিরোধ জোরদার করার চেক আনচেক করুন ।
অ্যাক্সেস কন্ট্রোলের অধীনে সূক্ষ্ম দানাদার নির্বাচন করুন।
CONTIUE এ ক্লিক করুন।
একবার আপনি আপনার বালতি কনফিগার হয়ে গেলে, CREATE এ ক্লিক করুন:
এটাই — আপনি এইমাত্র একটি ক্লাউড স্টোরেজ বালতি তৈরি করেছেন!
4. আপনার বালতিতে একটি বস্তু আপলোড করুন
এখন একটি বালতিতে একটি বস্তু আপলোড করুন।
প্রথমে, ক্লাউড শেলের একটি অস্থায়ী উদাহরণে এই ছবিটি ডাউনলোড করুন। নিচের উদাহরণে গুগলের হোমপেজ থেকে গুগল ইমেজ ব্যবহার করা হয়েছে।
ক্লাউড শেল থেকে
wget --output-document google.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
আপনার তৈরি করা বালতিতে যেখানে আপনি এটি সংরক্ষণ করেছেন সেখান থেকে ছবিটি আপলোড করতে gsutil cp কমান্ডটি ব্যবহার করুন:
ক্লাউড শেল থেকে
gsutil cp google.png gs://YOUR-BUCKET-NAME
এখন ডাউনলোড করা ছবিটি সরান:
ক্লাউড শেল থেকে
rm google.png
আপনার অবজেক্টটি সনাক্ত করুন এবং ডানদিকে তিনটি বিন্দুতে ক্লিক করুন এবং সর্বজনীন হওয়ার অনুমতিগুলি সম্পাদনা করুন।
5. একটি লোড ব্যালেন্সার তৈরি করুন
এরপর আমরা একটি HTTP লোড ব্যালেন্সার তৈরি করব।
নেটওয়ার্কিং এ নেভিগেট করুন >> নেটওয়ার্ক পরিষেবা >> লোড ব্যালেন্সিং >> লোড ব্যালেন্সার তৈরি করুন >> HTTP লোড ব্যালেন্সার >> ইন্টারনেট টু মাই ভিএম >> ক্লাসিক HTTP(এস) লোড ব্যালেন্সার
প্রথমে, আপনি যে লোড ব্যালেন্সার তৈরি করবেন তার একটি নাম তৈরি করুন।
ব্যাকএন্ড বালতি তৈরি করুন
একটি নতুন ব্যাকএন্ড বালতি তৈরি করুন যা আপনার তৈরি করা বালতি এবং সক্রিয় CDN এবং ক্যাশে স্ট্যাটিক সামগ্রী নির্বাচন করুন। তৈরি করুন ক্লিক করুন।
হোস্ট এবং পাথ নিয়ম তৈরি করুন
বাম দিকে হোস্ট এবং পথের নিয়মগুলিতে নেভিগেট করুন। আমরা একটি সাধারণ হোস্ট/পাথ নিয়ম ব্যবহার করব এবং বালতিতে যেকোনো অনুরোধ পাঠাব।
ফ্রন্টএন্ড কনফিগারেশন তৈরি করুন
ফ্রন্টএন্ড কনফিগারেশন নির্বাচন করুন। ফ্রন্টএন্ড কনফিগারেশনের জন্য আমরা HTTP ব্যবহার করব (যদিও আপনার কাছে একটি শংসাপত্র থাকলে HTTPSও কাজ করবে) এবং একটি ক্ষণস্থায়ী আইপি ঠিকানা এবং নিশ্চিত করব যে আপনি প্রিমিয়াম স্তরের নেটওয়ার্ক নির্বাচন করেছেন।
তৈরি করুন ক্লিক করুন
লোড ব্যালেন্সার আইপি পান
আপনার প্রকল্পের জন্য লোড ব্যালেন্সারের তালিকায় লোড ব্যালেন্সারের নামের উপর ক্লিক করে কনসোল থেকে লোড ব্যালেন্সার আইপি পান।
লোড ব্যালেন্সারকে জিজ্ঞাসা করুন
কয়েক মিনিটের পরে, আপনি যে বস্তুটি আপলোড করেছেন তার জন্য লোড ব্যালেন্সার জিজ্ঞাসা করার চেষ্টা করুন। আপনার প্রয়োজন হবে লোড ব্যালেন্সার আইপি ঠিকানা এবং ছবির নাম। কমান্ডটি এইরকম কাঠামো:
টার্মিনাল থেকে
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
আউটপুট
armanrye-macbookpro% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtoILI76KVsvBvdVGvSfzaxys1m3zYqCepBrmJxAI48ni24cWCRIdNu-53PX3DS6iycxp6xwFbMpwtcHHZQUQmEBxAgng < Expires: Mon, 13 Dec 2021 22:58:26 GMT < Date: Mon, 13 Dec 2021 21:58:26 GMT < Cache-Control: public, max-age=3600 < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer
যাচাই করুন যে আপনার বিষয়বস্তু CDN থেকে CDN বা লোড ব্যালেন্সিং মনিটরিংয়ের মাধ্যমে পরিবেশিত হচ্ছে। আপনি একটি 100% হিট অনুপাত কাছাকাছি পেতে সক্ষম হওয়া উচিত. আপনার যদি কয়েকটি প্রশ্ন চালানোর প্রয়োজন হয় তবে আপনি নিম্নলিখিতগুলি করতে পারেন
টার্মিনাল থেকে
#for i in `seq 1 50`; do curl http://%loadbalncer-IP%/google.png; done
ক্লাউড CDN দ্বারা পরিবেশিত সামগ্রী নিশ্চিত করুন৷
নেটওয়ার্ক সার্ভিসেস >> CDN- এ নেভিগেট করে আপনি CDN থেকে ট্রাফিক পরিবেশন করছেন তা যাচাই করুন
6. জিসিএস থেকে অবজেক্ট মুছুন
এখন যেহেতু ক্যাশে পপুলেট হয়েছে আসুন বালতি থেকে বস্তুটি মুছে ফেলি, এটিকে শক্তিশালী করে যে আমরা নীতিটি ক্যাশে প্রয়োগ করছি ব্যাকএন্ডে নয়।
ক্লাউড স্টোরেজ >> % bucket name% >> অবজেক্টে নেভিগেট করুন
ছবিটি নির্বাচন করুন এবং এটি মুছুন।
7. আপনার CDN ক্যাশের জন্য এজ সিকিউরিটি পলিসি তৈরি করুন
নেটওয়ার্ক নিরাপত্তা >> ক্লাউড আর্মারে নেভিগেট করুন এবং নীতি তৈরি করুন ক্লিক করুন
নিম্নলিখিত নির্বাচন করুন
নীতির ধরন: এজ সিকিউরিটি পলিসি
ডিফল্ট অ্যাকশন: অস্বীকার করুন
আপনার ব্যাকএন্ড বালতি নীতি প্রয়োগ করুন.
8. এজ নিরাপত্তা নীতি যাচাই করুন
এখন যেহেতু আমরা আমাদের ব্যাক-এন্ড বাকেটের সামনে একটি এজ সিকিউরিটি পলিসি তৈরি করেছি, এটি প্রত্যাশিত হিসাবে কাজ করছে তা যাচাই করা যাক।
নিরাপত্তা নীতি পরীক্ষা করুন
কয়েক মিনিট কেটে যাওয়ার পরে, আপনি ক্লাউড আর্মার নীতি চলছে কিনা তা পরীক্ষা করতে সক্ষম হবেন। কমান্ড লাইন থেকে, নিম্নলিখিত কমান্ডটি চালানো আপনাকে একটি 403 দেবে
টার্মিনাল থেকে
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
আউটপুট
curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 403 Forbidden < X-GUploader-UploadID: ADPycdtS6FtJOGIsiWYDrAAE8VFeQuNutcvbGoQe2t8EZxsuspVtmCjyiTv_P3CNktroHMOGFXkTCfG-Jj-rUO60ZGPpEbpqcw < Content-Type: application/xml; charset=UTF-8 < Content-Length: 111 < Date: Mon, 13 Dec 2021 23:09:35 GMT < Expires: Mon, 13 Dec 2021 23:09:35 GMT < Cache-Control: private, max-age=0 < Server: UploadServer <
লগগুলি তদন্ত করুন
এরপরে, আপনি প্রয়োগকৃত প্রান্ত নিরাপত্তা নীতি দেখতে লগগুলি পরীক্ষা করতে পারেন। অপারেশনস >> লগিং >> লগ এক্সপ্লোরার- এ নেভিগেট করুন
ক্যোয়ারীতে নিচের স্নিপেটটি লিখুন এবং রান এ ক্লিক করুন
resource.type:(http_load_balancer) AND jsonPayload.enforcedEdgeSecurityPolicy.name:(%SECURITY_POLICY_NAME%)
403 প্রতিক্রিয়া এবং প্রয়োগকৃত নিরাপত্তা নীতি নোট করুন
নিরাপত্তা নীতি সরান
নিরাপত্তা নীতি সরান এবং ক্যাশে থেকে বস্তুটি জিজ্ঞাসা করুন।
নেটওয়ার্ক সিকিউরিটি >> ক্লাউড আর্মার >> %POLICY NAME% >> টার্গেটে নেভিগেট করুন এবং টার্গেট বাকেটটি সরান।
নীতি সরানো নিশ্চিত করুন
কয়েক মিনিট কেটে যাওয়ার পরে, স্টোরেজ বাকেটের রিসোর্সে আরেকটি কার্ল পাঠান। আপনি এই সময় একটি 200 প্রতিক্রিয়া পাবেন.
টার্মিনাল থেকে
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
আউটপুট
armanrye-macbookpro% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtI7f49P3MSuZSZ8vl6RwfwmnIDJ59EeSKp7UPvLPawdaiRHXiNWLtseQTxUxceWOvSLvpYmT3pWVkV4qeIP7M < Date: Mon, 13 Dec 2021 23:06:46 GMT < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer < Age: 1621 < Cache-Control: public,max-age=3600 < { [775 bytes data] * Connection #0 to host 34.98.81.123 left intact * Closing connection 0
অভিনন্দন! আপনি ক্লাউড আর্মার এজ নিরাপত্তা নীতিতে এই ল্যাবটি সম্পন্ন করেছেন।
©2020 Google LLC সর্বস্বত্ব সংরক্ষিত৷ Google এবং Google লোগো হল Google LLC-এর ট্রেডমার্ক। অন্যান্য সমস্ত কোম্পানি এবং পণ্যের নাম সংশ্লিষ্ট কোম্পানির ট্রেডমার্ক হতে পারে যার সাথে তারা যুক্ত।
9. ল্যাব পরিষ্কার করা
নেটওয়ার্ক সিকিউরিটি >> ক্লাউড আর্মার >> %POLICY NAME% এ নেভিগেট করুন এবং ডিলিট নির্বাচন করুন
ক্লাউড স্টোরেজে নেভিগেট করুন আপনার তৈরি করা বালতি নির্বাচন করুন এবং মুছুন ক্লিক করুন
নেটওয়ার্কিং >> নেটওয়ার্ক পরিষেবা >> লোড ব্যালেন্সিং-এ নেভিগেট করুন। আপনার তৈরি লোড ব্যালেন্সার নির্বাচন করুন এবং মুছুন ক্লিক করুন।
10. অভিনন্দন!
আপনি ক্লাউড আর্মার কোডল্যাবের সাথে ডিফেন্ডিং এজ ক্যাশে সম্পূর্ণ করেছেন!
আমরা কভার করেছি কি
- কিভাবে একটি ক্লাউড স্টোরেজ বালতি এবং সংশ্লিষ্ট ক্লাউড লোড ব্যালেন্সার সেট আপ করবেন
- কিভাবে একটি ক্লাউড আর্মার এজ নিরাপত্তা নীতি তৈরি করবেন
- কিভাবে যাচাই করা যায় যে এজ সিকিউরিটি পলিসি উদ্দেশ্য অনুযায়ী কাজ করছে।
পরবর্তী পদক্ষেপ
- একটি কম্পিউট ইঞ্জিন রিসোর্স থেকে ক্যাশে হিট সহ একটি এজ সিকিউরিটি পলিসি সেট আপ করার চেষ্টা করুন৷