محدود کردن نرخ با Cloud Armor

1. مقدمه

تعادل بار Google Cloud HTTP(S) در لبه شبکه Google در نقاط حضور Google (POP) در سراسر جهان مستقر شده است. ترافیک کاربر هدایت‌شده به یک متعادل‌کننده بار HTTP(S) وارد POP نزدیک‌ترین کاربر به کاربر می‌شود و سپس از طریق شبکه جهانی Google به نزدیک‌ترین باطن که ظرفیت کافی در دسترس دارد، بارگذاری می‌شود.

Cloud Armor سیستم تشخیص انکار سرویس و فایروال برنامه وب (WAF) توزیع شده گوگل است. Cloud Armor به شدت با Google Cloud HTTP Load Balancer همراه است و به شما امکان می دهد ترافیک ورودی را برای درخواست های ناخواسته بازجویی کنید. ویژگی محدود کننده نرخ این سرویس به شما امکان می دهد ترافیک را به منابع پشتیبان بر اساس حجم درخواست کاهش دهید و از مصرف ترافیک ناخواسته در شبکه Virtual Private Cloud (VPC) شما جلوگیری می کند.

در این آزمایشگاه، همانطور که در نمودار زیر نشان داده شده است، یک HTTP Load Balancer را با backendهای جهانی پیکربندی می کنید. سپس، Load Balancer را تست استرس می‌کنید و یک سیاست محدود کردن نرخ Cloud Armor اضافه می‌کنید تا ترافیکی را که به منابع باطن شما برخورد می‌کند محدود کنید.

2e1b99d22f4f32a.png

چیزی که یاد خواهید گرفت

  • نحوه راه اندازی HTTP Load Balancer با بررسی های بهداشتی مناسب.
  • نحوه ایجاد خط مشی محدود کردن نرخ Cloud Armor.
  • چگونه می توان تأیید کرد که سیاست محدودکننده نرخ، ترافیک را هنگام اجرای تست استرس از VM مسدود می کند.

آنچه شما نیاز دارید

  • شبکه های اولیه و دانش HTTP
  • دانش اولیه خط فرمان یونیکس/لینوکس

2. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود و می توانید هر زمان که بخواهید آن را به روز کنید.
  • شناسه پروژه باید در تمام پروژه‌های Google Cloud منحصربه‌فرد باشد و تغییرناپذیر باشد (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید به شناسه پروژه ارجاع دهید (و معمولاً به عنوان PROJECT_ID شناخته می‌شود)، بنابراین اگر آن را دوست ندارید، یک نمونه تصادفی دیگر ایجاد کنید، یا می‌توانید شناسه پروژه را امتحان کنید و ببینید در دسترس است. سپس پس از ایجاد پروژه "یخ زده" می شود.
  • یک مقدار سوم وجود دارد، یک شماره پروژه که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها، باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. برای اینکه منابع را خاموش کنید تا بیش از این آموزش متحمل صورتحساب نشوید، دستورالعمل‌های «پاک‌سازی» را که در انتهای Codelab یافت می‌شود دنبال کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از کنسول GCP روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

bce75f34b2c53987.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

f6ef2b5f13479f3a.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این آزمایشگاه به سادگی با یک مرورگر قابل انجام است.

قبل از شروع

در داخل Cloud Shell، مطمئن شوید که شناسه پروژه شما تنظیم شده است

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID

API ها را فعال کنید

تمام خدمات لازم را فعال کنید

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com

3. قوانین فایروال را به گونه ای پیکربندی کنید که به ترافیک HTTP اجازه ورود به باطن ها بدهد

قوانین فایروال را پیکربندی کنید تا ترافیک HTTP از بررسی‌های سلامت Google Cloud و Load Balancer به پشتیبان‌ها مجاز شود.

ما از شبکه VPC پیش فرض ایجاد شده در پروژه شما استفاده خواهیم کرد. یک قانون فایروال ایجاد کنید تا به ترافیک HTTP اجازه ورود به باطن داده شود. بررسی‌های سلامت مشخص می‌کند که کدام نمونه‌های یک متعادل کننده بار می‌توانند اتصالات جدید دریافت کنند. برای متعادل کردن بار HTTP، کاوشگرهای بررسی سلامت برای نمونه های بار متعادل شما از آدرس هایی در محدوده 130.211.0.0/22 ​​و 35.191.0.0/16 می آیند. قوانین فایروال VPC شما باید این اتصالات را مجاز کند. همچنین، متعادل کننده های بار با بک اند در همان محدوده IP صحبت می کنند.

  1. در Cloud Console، به منوی Navigation بروید ( mainmenu.png ) > شبکه VPC > فایروال .

dbdf491e6d7863f3.png

  1. به قوانین فایروال ICMP ، داخلی ، RDP و SSH توجه کنید. هر پروژه Google Cloud با شبکه پیش‌فرض و این قوانین فایروال شروع می‌شود.
  2. روی ایجاد قانون فایروال کلیک کنید.
  3. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

اموال

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

نام

پیش فرض-اجازه-بررسی سلامت

شبکه

پیش فرض

اهداف

برچسب های هدف مشخص شده

برچسب های هدف

سرور http

فیلتر منبع

محدوده IP

محدوده IP منبع

130.211.0.0/22، 35.191.0.0/16

پروتکل ها و پورت ها

پروتکل ها و پورت ها را مشخص کرده و سپس tcp را بررسی کنید

  1. روی ایجاد کلیک کنید.

یا اگر از خط فرمان gcloud استفاده می کنید. در زیر دستور است -

gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=http-server

4. الگوهای نمونه را پیکربندی کنید و گروه های نمونه مدیریت شده را ایجاد کنید

یک گروه نمونه مدیریت شده از یک الگوی نمونه برای ایجاد گروهی از نمونه های یکسان استفاده می کند. از اینها برای ایجاد پشتیبان های HTTP Load Balancer استفاده کنید.

قالب های نمونه را پیکربندی کنید

یک الگوی نمونه یک منبع API است که شما از آن برای ایجاد نمونه های VM و گروه های نمونه مدیریت شده استفاده می کنید. الگوهای نمونه نوع ماشین، تصویر دیسک راه‌اندازی، زیرشبکه، برچسب‌ها و سایر ویژگی‌های نمونه را تعریف می‌کنند. یک نمونه برای us-east1 و یکی برای europe-west1 ایجاد کنید.

  1. در Cloud Console، به منوی Navigation بروید ( mainmenu.png ) > Compute Engine > Instance templates و سپس روی Create instance template کلیک کنید.
  2. برای نام ، us-east1-template را تایپ کنید.
  3. برای Series ، N1 را انتخاب کنید.
  4. روی Networking, Disk, Security, Management, Sole-Tenancy کلیک کنید.

b60e2a44c3e4d50e.png

  1. به بخش مدیریت بروید -

ee57f20ce55298fd.png

  1. در زیر Metadata ، روی Add Item کلیک کنید و موارد زیر را مشخص کنید:

کلید

ارزش

startup-script-url

gs://cloud-training/gcpnet/httplb/startup.sh

  1. روی Networking کلیک کنید.
  2. مقادیر زیر را تنظیم کنید و سایر مقادیر را در حالت پیش فرض قرار دهید -

اموال

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

شبکه (زیر رابط های شبکه)

پیش فرض

زیر شبکه (زیر رابط های شبکه)

پیش فرض (us-east1)

برچسب های شبکه

سرور http

  1. روی ایجاد کلیک کنید.
  2. منتظر بمانید تا الگوی نمونه ایجاد شود.

اکنون با کپی کردن us-east1-template یک الگوی نمونه دیگر برای subnet-b ایجاد کنید:

  1. روی us-east1-template کلیک کنید و سپس از بالا روی گزینه Copy کلیک کنید.
  2. برای نام ، europe-west1-template را تایپ کنید.
  3. روی Networking, Disk, Security, Management, Sole-Tenancy کلیک کنید.
  4. روی Networking کلیک کنید.
  5. در بخش Network Interfaces، رابط پیش فرض را ویرایش کنید. برای Subnet ، پیش فرض (europe-west1) را انتخاب کنید.
  6. روی ایجاد کلیک کنید.

گروه های نمونه مدیریت شده را ایجاد کنید

یک گروه نمونه مدیریت شده در us-east1 و یکی در europe-west1 ایجاد کنید.

  1. هنوز در Compute Engine ، روی Instance groups در منوی سمت چپ کلیک کنید.

72319de055de3942.png

  1. روی ایجاد گروه نمونه کلیک کنید. گروه نمونه مدیریت شده جدید (بدون تابعیت) را انتخاب کنید.
  2. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

اموال

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

نام

us-east1-mig

مکان

مناطق متعدد

منطقه

us-east1

الگوی نمونه

us-east1-template

مقیاس خودکار > خط‌مشی مقیاس‌بندی خودکار > نماد مداد > نوع متریک را کلیک کنید

استفاده از CPU

استفاده از CPU هدف

80، روی Done کلیک کنید.

دوره خنک شدن

45

حداقل تعداد نمونه

1

حداکثر تعداد نمونه

5

  1. روی ایجاد کلیک کنید.

اکنون همین روش را تکرار کنید تا یک گروه نمونه دوم برای europe-west1-mig در europe-west1 ایجاد کنید:

  1. روی ایجاد گروه نمونه کلیک کنید.
  2. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

اموال

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

نام

اروپا-غرب1-میگ

مکان

مناطق متعدد

منطقه

اروپا-غرب 1

الگوی نمونه

europe-west1-template

مقیاس خودکار > خط‌مشی مقیاس‌بندی خودکار > نماد مداد > نوع متریک را کلیک کنید

استفاده از CPU

استفاده از CPU هدف

80، روی Done کلیک کنید.

دوره خنک شدن

45

حداقل تعداد نمونه

1

حداکثر تعداد نمونه

5

  1. روی ایجاد کلیک کنید.

5. HTTP Load Balancer را پیکربندی کنید

HTTP Load Balancer را برای متعادل کردن ترافیک بین دو باطن ( us-east1-mig در us-east1 و europe-west1-mig در europe-west1) پیکربندی کنید، همانطور که در نمودار شبکه نشان داده شده است:

2e1b99d22f4f32a.png

پیکربندی را شروع کنید

  1. در Cloud Console، روی منوی ناوبری کلیک کنید ( mainmenu.png ) > روی Network Services > Load balancing کلیک کنید و سپس روی Create load balancer کلیک کنید.
  2. در زیر HTTP(S) Load Balancing ، روی Start configuration کلیک کنید.

8197d8f041e8eafd.png

  1. From Internet to my VMs ، Classic HTTP(S) Load Balancer را انتخاب کنید و روی Continue کلیک کنید.
  2. نام را روی http-lb قرار دهید.

باطن را پیکربندی کنید

خدمات Backend ترافیک ورودی را به یک یا چند backend متصل هدایت می کند. هر پشتیبان از یک گروه نمونه و ابرداده ظرفیت سرویس اضافی تشکیل شده است.

  1. روی تنظیمات Backend کلیک کنید.
  2. برای خدمات پشتیبان و سطل های پشتیبان ، روی ایجاد یک سرویس پشتیبان کلیک کنید.
  3. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

اموال

مقدار (گزینه مشخص شده را انتخاب کنید)

نام

http-backend

گروه نمونه

us-east1-mig

شماره های پورت

80

حالت متعادل کننده

امتیاز دهید

حداکثر RPS

50 (در هر نمونه)

ظرفیت

100

  1. روی Done کلیک کنید.
  2. روی افزودن باطن کلیک کنید.
  3. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

اموال

مقدار (گزینه مشخص شده را انتخاب کنید)

گروه نمونه

اروپا-غرب1-میگ

شماره های پورت

80

حالت متعادل کننده

استفاده

حداکثر استفاده از Backend

80

ظرفیت

100

  1. روی Done کلیک کنید.
  2. برای بررسی سلامت ، ایجاد یک بررسی سلامت را انتخاب کنید.

199239806577ceac.png

  1. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

اموال

مقدار (گزینه مشخص شده را انتخاب کنید)

نام

http-health-check

پروتکل

TCP

بندر

80

20f7af9fce140475.png

  1. روی ذخیره کلیک کنید.
  2. کادر Enable Logging را علامت بزنید.
  3. Sample Rate را روی 1 تنظیم کنید:

dab4b15c13917786.png

  1. برای ایجاد سرویس Backend روی Create کلیک کنید.

2db64614f855f239.png

قسمت جلویی را پیکربندی کنید

قوانین میزبان و مسیر تعیین می کنند که ترافیک شما چگونه هدایت می شود. برای مثال، می‌توانید ترافیک ویدیویی را به یک باطن و ترافیک استاتیک را به باطن دیگری هدایت کنید. با این حال، شما قوانین میزبان و مسیر را در این آزمایشگاه پیکربندی نمی کنید.

  1. روی تنظیمات Frontend کلیک کنید.
  2. موارد زیر را مشخص کنید و سایر مقادیر را در حالت پیش فرض قرار دهید:

اموال

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

پروتکل

HTTP

نسخه IP

IPv4

آدرس IP

زودگذر

بندر

80

  1. روی Done کلیک کنید.
  2. روی Add Frontend IP and port کلیک کنید.
  3. موارد زیر را مشخص کنید و سایر مقادیر را در حالت پیش فرض قرار دهید:

اموال

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

پروتکل

HTTP

نسخه IP

IPv6

آدرس IP

زودگذر

بندر

80

  1. روی Done کلیک کنید.

بررسی و ایجاد HTTP Load Balancer

  1. روی Review کلیک کنید و نهایی کنید .

2c88715aa5f22800.png

  1. خدمات Backend و Frontend را مرور کنید.

b2fffef90be309f0.png

  1. روی Create کلیک کنید.
  2. صبر کنید تا متعادل کننده بار ایجاد شود.
  3. روی نام متعادل کننده بار ( http-lb ) کلیک کنید.
  4. برای کار بعدی به آدرس های IPv4 و IPv6 بار متعادل کننده توجه کنید. آنها به ترتیب به عنوان [LB_IP_v4] و [LB_IP_v6] نامیده می شوند.

6. HTTP Load Balancer را تست کنید

اکنون که HTTP Load Balancer را برای backend های خود ایجاد کردید، بررسی کنید که ترافیک به سرویس Backend ارسال شده است.

به HTTP Load Balancer دسترسی پیدا کنید

برای آزمایش دسترسی IPv4 به HTTP Load Balancer، یک برگه جدید در مرورگر خود باز کنید و به http://[LB_IP_v4] بروید. مطمئن شوید که [LB_IP_v4] را با آدرس IPv4 متعادل کننده بار جایگزین کنید.

اگر یک آدرس IPv6 محلی دارید، با رفتن به http://[LB_IP_v6] آدرس IPv6 بارگذاری متعادل کننده HTTP را امتحان کنید. مطمئن شوید که [LB_IP_v6] را با آدرس IPv6 متعادل کننده بار جایگزین کنید.

812d1fc75d9dfb3c.png

تست استرس HTTP Load Balancer

یک VM جدید برای شبیه سازی بار در HTTP Load Balancer با استفاده از Siege ایجاد کنید. سپس، تعیین کنید که آیا ترافیک در هر دو باطن زمانی که بار زیاد است متعادل است یا خیر.

  1. در کنسول، به منوی ناوبری بروید ( mainmenu.png ) > موتور محاسباتی > نمونه های VM .
  2. روی ایجاد نمونه کلیک کنید.
  3. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

اموال

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

نام

siege-vm

منطقه

us-west1

منطقه

us-west1-c

سری

N1

  1. روی ایجاد کلیک کنید.
  2. منتظر بمانید تا نمونه siege-vm ایجاد شود.
  3. برای siege-vm ، روی SSH کلیک کنید تا ترمینال راه اندازی شود و متصل شوید.
  4. برای نصب sige دستور زیر را اجرا کنید:
sudo apt-get -y install siege
  1. برای ذخیره آدرس IPv4 HTTP Load Balancer در یک متغیر محیطی، دستور زیر را اجرا کنید و آدرس IPv4 را جایگزین [LB_IP_v4] کنید:
export LB_IP=[LB_IP_v4]
  1. برای شبیه سازی یک بار، دستور زیر را اجرا کنید:
siege -c 250 http://$LB_IP

خروجی باید به این شکل باشد ( کپی نکنید، این خروجی نمونه است ):

New configuration template added to /home/student/.siege
Run siege -C to view the current settings in that file
** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. در Cloud Console، روی منوی Navigation کلیک کنید ( mainmenu.png ، روی خدمات شبکه > تعادل بار کلیک کنید.
  2. روی http-lb کلیک کنید.
  3. روی تب Monitoring کلیک کنید. ترافیک بین آمریکای شمالی و دو باطن را به مدت 2 تا 3 دقیقه کنترل کنید.

در ابتدا، ترافیک باید فقط به سمت us-east1-mig هدایت شود، اما با افزایش RPS، ترافیک به اروپا-west1-mig نیز هدایت می شود.

ead1e6d5c1f4cc4b.png

این نشان می‌دهد که به‌طور پیش‌فرض، ترافیک به نزدیک‌ترین باطن ارسال می‌شود، اما اگر بار بسیار زیاد باشد، ترافیک را می‌توان در بین باطن‌ها توزیع کرد.

e5c6a657706c832c.png

  1. به ترمینال SSH siege-vm برگردید.
  2. برای توقف محاصره ، CTRL+C را فشار دهید.

7. سیاست محدودسازی نرخ زره ابری را ایجاد کنید

در این بخش، از Cloud Armor برای جلوگیری از دسترسی siege-vm به HTTP Load Balancer با تنظیم سیاست محدود کردن نرخ استفاده می‌کنید.

  1. در Cloud Shell (برای دستورالعمل‌های نحوه استفاده از Cloud Shell به " Start Cloud Shell " زیر " Setup and Requirements " مراجعه کنید)، خط‌مشی امنیتی را از طریق gcloud ایجاد کنید:
gcloud compute security-policies create rate-limit-siege \
    --description "policy for rate limiting"
  1. بعد، یک قانون محدود کننده نرخ اضافه کنید:
gcloud beta compute security-policies rules create 100 \
    --security-policy=rate-limit-siege     \
    --expression="true" \
    --action=rate-based-ban                   \
    --rate-limit-threshold-count=50           \
    --rate-limit-threshold-interval-sec=120   \
    --ban-duration-sec=300           \
    --conform-action=allow           \
    --exceed-action=deny-404         \
    --enforce-on-key=IP
  1. خط مشی امنیتی را به سرویس پشتیبان http-backend پیوست کنید:
gcloud compute backend-services update http-backend \
    --security-policy rate-limit-siege –-global
  1. در کنسول، به منوی پیمایش > امنیت شبکه > Cloud Armor بروید.
  2. روی rate-limit-siege کلیک کنید . خط مشی شما باید شبیه موارد زیر باشد:

8be87aa31c2ed74e.png

سیاست امنیتی را تأیید کنید

  1. به ترمینال SSH siege-vm برگردید.
  2. یک curl را در مقابل IP LB اجرا کنید تا مطمئن شوید که همچنان می‌توانید به آن متصل شوید، باید یک پاسخ 200 دریافت کنید.
curl http://$LB_IP
  1. در ترمینال SSH siege-vm، برای شبیه سازی یک بار، دستور زیر را اجرا کنید:
siege -c 250 http://$LB_IP

خروجی باید به این شکل باشد (کپی نکنید، این خروجی نمونه است):

** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. گزارش های خط مشی امنیتی را کاوش کنید تا مشخص کنید آیا این ترافیک نیز مسدود شده است یا خیر.
  2. در کنسول، به منوی پیمایش > امنیت شبکه > Cloud Armor بروید.
  3. روی rate-limit-siege کلیک کنید.
  4. روی Logs کلیک کنید.

f8be7c01c3d7c8f5.png

  1. روی مشاهده گزارش‌های سیاست کلیک کنید.
  2. در صفحه Logging، مطمئن شوید که تمام متن در پیش نمایش Query پاک شده است.
  3. منبع را به عنوان Cloud HTTP Load Balancer > http-lb-forwarding-rule > http-lb انتخاب کنید، سپس روی Add کلیک کنید. متناوبا، در زیر پرس و جو MQL (زبان پرس و جو نظارت) آمده است، می توانید آن را کپی و در ویرایشگر پرس و جو قرار دهید -
resource.type="http_load_balancer" resource.labels.forwarding_rule_name="http-lb-forwarding-rule" resource.labels.url_map_name="http-lb"
  1. اکنون روی Run Query کلیک کنید.
  2. یک ورودی گزارش را در نتایج Query گسترش دهید.
  3. httpRequest را گسترش دهید. درخواست باید از آدرس IP siege-vm باشد. اگر نه، یک ورودی دیگر را گسترش دهید.
  4. jsonPayload را گسترش دهید.
  5. EnforcedSecurityPolicy را گسترش دهید.

151f575ba7b3bde9.png

توجه داشته باشید که configuredAction روی RATE_BASED_BAN با نام rate-limit-siege تنظیم شده است.

  1. به عنوان یک بررسی اضافی، به منوی ناوبری ( mainmenu.png ، روی خدمات شبکه > تعادل بار کلیک کنید. روی http-lb کلیک کنید. روی تب Monitoring کلیک کنید.

ab9a8a66573a5ebd.png

شما می توانید ترافیک محاصره را در نمودارها مشاهده کنید. همچنین توجه داشته باشید که ترافیک با نرخ محدود به باطن نمی رسد و توسط خط مشی Cloud Armor مسدود می شود.

تبریک می گویم! شما این آزمایشگاه را در مورد محدودیت نرخ با Cloud Armor کامل کرده اید

©2020 Google LLC کلیه حقوق محفوظ است. Google و لوگوی Google علائم تجاری Google LLC هستند. همه نام‌های شرکت و محصولات دیگر ممکن است علائم تجاری شرکت‌های مربوطه باشند که با آنها مرتبط هستند.

8. پاکسازی آزمایشگاهی

  1. به امنیت شبکه >> Cloud Armor >> %POLICY NAME% بروید و حذف را انتخاب کنید -

eeafa7cafa11c4c7.png

  1. به Networking >> Services Network >> Load Balancing بروید. متعادل کننده باری که ایجاد کردید را انتخاب کنید و روی delete کلیک کنید.

3886458f25cfbd36.png

سرویس پشتیبان و بررسی سلامت را به عنوان منابع اضافی برای حذف انتخاب کنید -

a0193e91b2f4cb6f.png

  1. به منوی ناوبری بروید ( mainmenu.png ) > Compute Engine > Instance Groups. هر دو گروه نمونه های مدیریت شده را انتخاب کنید و روی حذف کلیک کنید -

5027d56977997f70.png

با تایپ کردن "حذف" در جعبه متن، حذف را تأیید کنید.

منتظر بمانید تا گروه های نمونه مدیریت شده حذف شوند. با این کار موارد موجود در گروه نیز حذف می شوند. فقط پس از حذف گروه نمونه می توانید الگوها را حذف کنید.

  1. از قسمت سمت چپ به الگوهای نمونه بروید**.** هر دو الگوی نمونه را انتخاب کنید و روی حذف کلیک کنید -

8d88abacd32c11ce.png

  1. از قسمت سمت چپ به نمونه های VM بروید**.** بیضی کنار نمونه siege-vm را انتخاب کنید و روی delete کلیک کنید.

2b58ab43695836e9.png

  1. به منوی ناوبری بروید ( mainmenu.png ) > شبکه VPC > فایروال . پیش فرض-allow-health-check را انتخاب کنید و روی delete کلیک کنید -

561d5e771d36d85.png

9. تبریک می گویم!

شما با موفقیت محدودیت نرخ را با Cloud Armor اجرا کردید. شما یک HTTP Load Balancer را با backend در us-east1 و europe-west1 پیکربندی کرده‌اید. سپس، Load Balancer را با یک ماشین مجازی تست استرس کردید و آدرس IP را از طریق محدود کردن نرخ با Cloud Armor رد کردید. شما می‌توانید گزارش‌های خط‌مشی امنیتی را برای شناسایی دلیل مسدود شدن ترافیک بررسی کنید.

آنچه را پوشش داده ایم

  • نحوه راه اندازی الگوهای نمونه و ایجاد گروه های نمونه مدیریت شده.
  • نحوه راه اندازی یک HTTP Load Balancer.
  • نحوه ایجاد خط مشی محدود کردن نرخ Cloud Armor.
  • چگونه می توان تأیید کرد که خط مشی محدود کردن نرخ طبق برنامه کار می کند.

مراحل بعدی

  • سعی کنید یک سیاست محدود کردن نرخ را بر اساس محدوده IP منبع تنظیم کنید. نمونه دستور زیر -
gcloud alpha compute security-policies rules create 105 \
    --security-policy sec-policy     \
    --src-ip-ranges "1.2.3.0/24"     \
    --action throttle                \
    --rate-limit-threshold-count 100 \
    --rate-limit-threshold-interval-sec 60 \
    --conform-action allow           \
    --exceed-action deny-429         \
    --enforce-on-key IP
  • سعی کنید یک سیاست محدود کردن نرخ را بر اساس کد منطقه تنظیم کنید. نمونه دستور زیر -
gcloud alpha compute security-policies rules create 101 \
    --security-policy sec-policy     \
    --expression "origin.region_code == 'US'" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 10         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 300           \
    --ban-threshold-count 1000       \
    --ban-threshold-interval-sec 600 \
    --conform-action allow           \
    --exceed-action deny-403         \
    --enforce-on-key IP