برنامه نویسی

تسلط بر Cloudflare Ruleset Engine با Terraform

در این پست، در مورد Cloudflare Ruleset Engine، ابزاری قدرتمند برای ایجاد و استقرار قوانین پیچیده در محصولات مختلف Cloudflare، آشنا خواهیم شد. ما عناصر کلیدی آن، انواع مجموعه قوانین، و چند مثال در مورد نحوه استقرار آنها با استفاده از Terraform را بررسی خواهیم کرد.

مقدمه ای بر Cloudflare Ruleset Engine

این موتور مجموعه قوانین Cloudflare به شما امکان می دهد با استفاده از نحو زبان Wireshark Display Filter قوانین و قواعد را ایجاد و استقرار دهید و کنترل دقیقی بر رسیدگی به درخواست برای بهبود مدیریت ترافیک در سراسر شبکه جهانی Cloudflare ارائه می دهد.

عملکردهای Cloudflare Ruleset Engine

  • ایجاد قوانین همه کاره: به راحتی قوانین را با استفاده از نحوی بر اساس زبان فیلتر سیمی ایجاد و استقرار دهید و مدیریت ترافیک پیشرفته را در محصولات مختلف Cloudflare امکان پذیر می کند.
  • کارایی عملکرد: به شما امکان می دهد از قوانین متعدد در محصولات مختلف Cloudflare با کمترین تأثیر بر عملکرد استفاده کنید.
  • یکپارچه سازی جامع: به طور یکپارچه در چندین محصول Cloudflare ادغام می شود، یک رویکرد پیکربندی یکپارچه ارائه می کند و از مراحل مختلف چرخه عمر درخواست پشتیبانی می کند.
  • API یکپارچه: به روش‌های API سازگار برای پیکربندی محصولات مختلف، ساده‌سازی سفارشی‌سازی و ادغام در اکوسیستم Cloudflare دسترسی داشته باشید.
  • دسترسی گسترده: سازگار با محصولات متعدد Cloudflare، با اطلاعات در دسترس بودن دقیق ارائه شده در اسناد هر محصول

عناصر کلیدی موتور مجموعه قوانین

  1. فاز: یک مرحله نشان دهنده مرحله ای از فرآیند رسیدگی به درخواست است که در آن می توانید مجموعه قوانین را اعمال کنید که در هر دو سطح حساب و منطقه رخ می دهد. اگر قوانین برای همان مرحله تنظیم شوند، قوانین در سطح حساب بر قوانین سطح منطقه اولویت دارند. در حال حاضر، مراحل در سطح حساب فقط در طرح‌های Enterprise در دسترس هستند. درباره مراحل بیشتر بدانید.

  2. قوانین: یک قانون به عنوان یک فیلتر برای ترافیک وب سایت شما عمل می کند، که در آن شرایط (عبارات فیلتر) را بر اساس جزئیات خاص در درخواست ها، مانند URL ها یا هدرها، تعریف می کنید. هنگامی که یک درخواست با شرایط یک قانون مطابقت دارد، یک عمل فعال می شود، مانند مسدود کردن ترافیک یا تغییر مسیر آدرس های وب سایت. اگر مطابقت وجود نداشته باشد، قانون نادیده گرفته می شود و ترافیک به طور عادی جریان دارد. علاوه بر این، مقادیر فیلد در طول ارزیابی قانون در فازها تغییر ناپذیر می‌مانند، اما ممکن است بین فازها تغییر کنند. درباره قوانین بیشتر بدانید.

  3. مجموعه قوانین: مجموعه ای از قوانین مرتب شده که ترافیک وب سایت را در شبکه جهانی Cloudflare فیلتر و مدیریت می کند. قوانین مربوط به یک فاز هستند و فقط می توانند در همان فاز اجرا شوند. هر تغییر یک نسخه جدید ایجاد می کند که Cloudflare به طور پیش فرض از آخرین نسخه استفاده می کند. درباره مستندات مجموعه قوانین بیشتر بیاموزید

انواع مجموعه قوانین

  • مجموعه قوانین نقطه ورود فاز: یک مجموعه قوانین نقطه ورودی، که در سطح حساب یا منطقه یافت می شود، حاوی قوانین مرتب شده ای است که همه قوانین را در یک فاز آغاز می کند. ممکن است مجموعه قوانین دیگری را تحریک کند. هر فاز دارای یک مجموعه قوانین نقطه ورودی در سطح حساب یا منطقه است که به ترتیب با “ریشه” یا “منطقه” مشخص شده است.

  • مجموعه قوانین مدیریت شده: مجموعه قوانین مدیریت شده توسط Cloudflare برای استقرار در یک فاز از پیش پیکربندی شده است و تنها Cloudflare می تواند آنها را تغییر دهد. آنها با اقدامات و وضعیت پیش‌فرض ارائه می‌شوند، اما می‌توانید با لغو آن‌ها را سفارشی کنید. محصولات مختلف Cloudflare مجموعه قوانین مدیریت شده را ارائه می دهند. برای جزئیات بیشتر به مستندات هر محصول مراجعه کنید.

  • مجموعه قوانین سفارشی: مجموعه قوانین سفارشی در حال حاضر فقط توسط Cloudflare WAF پشتیبانی می شود. آنها شما را قادر می سازند تا مجموعه قوانین خود را تعریف کرده و با ایجاد یک قانون که مجموعه قوانین را اجرا می کند، آنها را در یک فاز مستقر کنید.

لیست و مشاهده قوانین

برای مشاهده مجموعه قوانین مستقر در حساب یا منطقه Cloudflare شما، باید از Cloudflare API استفاده کنید، زیرا کنسول Cloudflare این قابلیت را ارائه نمی دهد. این بخش بسیار مهم است زیرا Terraform کنترل کامل بر روی مجموعه قوانین مستقر در مراحل را در اختیار می گیرد. اگر قوانینی به صورت دستی در یک فاز اجرا شوند، استقرار آنها با استفاده از Terraform می‌تواند منجر به درگیری شود.

نمونه درخواست API:

curl https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets \
--header "Authorization: Bearer "
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر قوانینی در فازهای خاص تعریف شده است، می توانید آنها را با استفاده از Terraform import وارد کنید.

پیاده سازی قوانین Cloudflare با Terraform

حال، اجازه دهید به بخش عملی آن برویم – استفاده از Terraform برای مدیریت و استقرار این مجموعه قوانین.

پیش نیازها

  1. Terraform را نصب کنید: مطمئن شوید که Terraform روی سیستم شما نصب شده است.
  2. حساب Cloudflare: حساب Cloudflare خود را راه اندازی کنید و اعتبار API را ایجاد کنید.

مقدمه ای بر ماژول

ماژول Terraform Cloudflare Rulesets استقرار و مدیریت مجموعه قوانین Cloudflare را ساده می کند. این امکان تعریف مجموعه قوانین را به عنوان کد، تضمین سازگاری و سهولت مدیریت در محیط های مختلف فراهم می کند. ماژول تمام ویژگی‌های لازم را برای پیکربندی قوانین برای هر محصول Cloudflare، چه در سطح حساب یا منطقه، نشان می‌دهد.

ویژگی های کلیدی

  1. شناسایی منطقه ساده شده: عبور کنید zone_name بجای zone_id; ماژول را واکشی می کند zone_id برای شما.
  2. پیکربندی سطح حساب: از پیکربندی قوانین در سطح حساب پشتیبانی می کند.
  3. ایجاد مجموعه قوانین انعطاف پذیر: با توجه به نیاز خود چندین موتور مجموعه قوانین را ایجاد و استقرار دهید.
  4. راحتی در استفاده: فقط به سه متغیر نیاز دارد:

    • zone_name: منطقه ای که مجموعه قوانین برای آن ایجاد می شود.
    • phase: نقطه ای در چرخه عمر درخواست/پاسخ که در آن مجموعه قوانین اعمال خواهد شد.
    • ruleset_name: نام مجموعه قوانین.

مثال: پیکربندی Ruleset Engine Terraform بدون قوانین

terraform {
  required_providers {
    cloudflare = {
      source  = "cloudflare/cloudflare"
      version = "~> 4.0"
    }
  }
  required_version = ">= 1.8"
}

module "rulesets_example_zone-level-custom-waf" {
  source       = "terrasible/rulesets/cloudflare"
  version      = "0.3.0"
  zone_name    = "terrasible.com"
  ruleset_name = "my custom waf ruleset"
  kind         = "zone"
  phase        = "http_request_firewall_custom"
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به عنوان مثال: پیکربندی Ruleset Engine Terraform با قوانین

terraform {
  required_providers {
    cloudflare = {
      source  = "cloudflare/cloudflare"
      version = "~> 4.0"
    }
  }
  required_version = ">= 1.8"
}

module "rulesets_example_zone-level-custom-waf" {
  source       = "terrasible/rulesets/cloudflare"
  version      = "0.3.0"
  zone_name    = "terrasible.com"
  ruleset_name = "my custom waf ruleset"
  description  = "Block request from source IP and execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
  kind         = "zone"
  phase        = "http_request_firewall_custom"

  rules = [
    {
      action      = "block"
      expression  = "(http.host eq \"prod.example.com\" and ip.src in {34.56.xx.xx/32 34.67.xx.xx/32})"
      description = "Block request from source IP"
      enabled     = true
      action_parameters = {
        response = [
          {
            content      = <<-EOT
                
                
                
                
                
                Access Denied
                
                
                
                
                
              EOT
            content_type = "text/html"
            status_code  = 403
          }
        ]
      }
    },
  ]
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با استفاده از این ماژول، می توانید مدیریت مجموعه قوانین Cloudflare خود را ساده کنید و از کنترل ترافیک ثابت و کارآمد در زیرساخت خود اطمینان حاصل کنید. برای مثال های عملی از مدیریت قوانین پیچیده در محیط خود، پوشه نمونه ها را بررسی کنید.

نتیجه

اکنون در مورد Cloudflare Ruleset Engine و نحوه پیاده سازی و مدیریت قوانین با استفاده از Terraform آشنا شده اید. با استفاده از این ابزارها، می توانید عملکرد و امنیت مدیریت ترافیک وب خود را افزایش دهید.

با خیال راحت در مورد اسناد توسعه دهنده Cloudflare و رجیستری Terraform بیشتر کاوش کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا