Ana içeriğe geç

Terraform kullanarak Wallarm'ı yönetme

Altyapılarınızı yönetmek için Terraform kullanıyorsanız, Wallarm'ı yönetmek için de onu kullanmak sizin için rahat bir seçenek olabilir. Terraform için Wallarm provider bunu yapmanıza olanak tanır.

Gereksinimler

  • Terraform temellerini bilmek

  • Terraform 0.15.5 veya daha yeni ikili dosya

  • US Cloud veya EU Cloud üzerinde Wallarm hesabı

  • US veya EU Bulut ortamında Wallarm Console içinde Administrator rolüne sahip hesaba erişim

  • US Wallarm Cloud ile çalışırken https://us1.api.wallarm.coma veya EU Wallarm Cloud ile çalışırken https://api.wallarm.coma erişim. Lütfen erişimin güvenlik duvarı tarafından engellenmediğinden emin olun

Sağlayıcının kurulumu

  1. Aşağıdakini Terraform yapılandırmanıza kopyalayıp yapıştırın:

    terraform {
      required_version = ">= 0.15.5"
    
      required_providers {
        wallarm = {
          source = "wallarm/wallarm"
          version = "1.5.0"
        }
      }
    }
    
    provider "wallarm" {
      # Yapılandırma seçenekleri
    }
    
  2. terraform init komutunu çalıştırın.

Sağlayıcıyı Wallarm hesabınıza bağlama

Wallarm Terraform provider'ını US veya EU Cloud içindeki Wallarm hesabınıza bağlamak için, Terraform yapılandırmanızda API erişim kimlik bilgilerini ayarlayın:

provider "wallarm" {
  api_token = "<WALLARM_API_TOKEN>"
  api_host = "https://us1.api.wallarm.com"
  # Yalnızca çoklu kiracılık özelliği kullanıldığında gereklidir:
  # client_id = <CLIENT_ID>
}
provider "wallarm" {
  api_token = "<WALLARM_API_TOKEN>"
  api_host = "https://api.wallarm.com"
  # Yalnızca çoklu kiracılık özelliği kullanıldığında gereklidir:
  # client_id = <CLIENT_ID>
}
  • <WALLARM_API_TOKEN>, Wallarm hesabınızın API'sine erişim sağlar. Nasıl alınır →

  • <CLIENT_ID>, kiracının (müşteri) kimliğidir; yalnızca çoklu kiracılık özelliği kullanıldığında gereklidir. Burada açıklandığı gibi uuid değil id değerini alın.

Ayrıntılar için Wallarm provider belgelerine bakın: ayrıntılar.

Sağlayıcı ile Wallarm'ı yönetme

Wallarm provider ile, Terraform aracılığıyla şunları yönetebilirsiniz:

Wallarm Terraform provider ve Edge düğümleri

Şu anda, Edge inline ve connector düğümleri Wallarm Terraform provider üzerinden yönetilememektedir.

Listelenen işlemlerin nasıl gerçekleştirileceğini Wallarm provider belgelerinde görebilirsiniz.

Kullanım örneği

Aşağıda Wallarm için Terraform yapılandırma örneği verilmiştir:

provider "wallarm" {
  api_token = "<WALLARM_API_TOKEN>"
  api_host = "https://us1.api.wallarm.com"
}

resource "wallarm_global_mode" "global_block" {
  waf_mode = "default"
}

resource "wallarm_application" "tf_app" {
  name = "Terraform Application 001"
  app_id = 42
}

resource "wallarm_rule_mode" "tiredful_api_mode" {
  mode =  "monitoring"

  action {
    point = {
      instance = 42
    }
  }

  action {
    type = "regex"
    point = {
      scheme = "https"
    }
  }
}

Yapılandırma dosyasını kaydedin, ardından terraform apply komutunu çalıştırın.

Yapılandırma şunları yapar:

  • US Cloud → şirket hesabına, sağlanan Wallarm API belirteci ile bağlanır.

  • resource "wallarm_global_mode" "global_block" → global filtreleme modunu Local settings (default) olarak ayarlar; bu, filtreleme modunun her düğümde yerel olarak kontrol edildiği anlamına gelir.

  • resource "wallarm_application" "tf_app"Terraform Application 001 adlı, 42 kimliğine sahip uygulamayı oluşturur.

  • resource "wallarm_rule_mode" "tiredful_api_mode" → HTTPS protokolü üzerinden 42 kimlikli uygulamaya gönderilen tüm istekler için trafik filtreleme modunu Monitoring olarak ayarlayan bir kural oluşturur.

Wallarm ve Terraform hakkında daha fazla bilgi

Terraform, bir dizi entegrasyonu (providers) ve kullanıma hazır yapılandırmaları (modules) birden çok sağlayıcı tarafından sağlanan herkese açık kayıt üzerinden kullanıcılara sunar.

Bu kayıt içine Wallarm şunları yayımladı:

  • Terraform aracılığıyla Wallarm'ı yönetmek için Wallarm provider. Bu yazıda açıklanmıştır.

  • Terraform uyumlu bir ortamdan AWS'ye düğüm dağıtmak için Wallarm modülü.

Bu ikisi farklı amaçlar için kullanılan, birbirinden bağımsız araçlardır. Birini kullanmak için diğerine ihtiyaç yoktur.