AWS Üzerinde Terraform Kullanarak Wallarm Dağıtımı¶
Wallarm, Terraform uyumlu ortamdan AWS üzerinde düğümü dağıtmak için Terraform modülünü sağlar. Bu modülü keşfetmek ve sağlanan dağıtım örneklerini denemek için bu yönergeleri kullanın.
Wallarm Terraform modülünü uygulayarak, iki temel Wallarm dağıtım seçeneğini mümkün kılan çözümü sunduk: in-line (bu dağıtım yönteminde proxy anlamına gelir) ve Out‑of‑band (mirror) güvenlik çözümleri. Dağıtım seçeneği, preset
Wallarm modül değişkeni ile kolayca kontrol edilir.
Kullanım Durumları¶
Desteklenen tüm Wallarm dağıtım seçenekleri arasında, Terraform modülü şu kullanım durumlarında Wallarm dağıtımı için önerilir:
-
Mevcut altyapınız AWS üzerinde yer almaktadır.
-
Altyapıyı Kod olarak (IaC) uyguluyorsunuz. Wallarm'un Terraform modülü, Wallarm düğümünün AWS üzerinde otomatik yönetim ve tahsis edilmesini sağlayarak verimliliği ve tutarlılığı artırır.
Gereksinimler¶
-
Yerel olarak yüklü Terraform 1.0.5 veya daha yüksek
-
ABD veya AB Cloud ortamında Wallarm Console'da Administrator rolüne sahip hesaba erişim
-
ABD Wallarm Cloud ile çalışıyorsanız
https://us1.api.wallarm.com
adresine, AB Wallarm Cloud ile çalışıyorsanızhttps://api.wallarm.com
adresine erişim. Lütfen erişimin bir güvenlik duvarı tarafından engellenmediğinden emin olun -
Saldırı tespit kuralları güncellemelerini ve API spesifikasyonlarını indirmek, ayrıca izin verilen, reddedilen veya gri listelenmiş ülkeler, bölgeler veya veri merkezleri için hassas IP'leri almak üzere aşağıdaki IP adreslerine erişim
Bu konuda, Wallarm'ı dağıtmak için gerekli tüm AWS kaynaklarının, örneğin bir VPC kümesinin oluşturulmasına yönelik talimatlar yer almamaktadır. Detaylar için ilgili Terraform kılavuzuna bakın.
Wallarm AWS Terraform Modülü Nasıl Kullanılır?¶
AWS Terraform modülü kullanarak üretim ortamında Wallarm'ı dağıtmak için:
-
US Cloud veya EU Cloud üzerinden Wallarm Console için kayıt olun.
-
Wallarm Console → Nodes bölümünü açın ve Wallarm node tipinde bir düğüm oluşturun.
-
Oluşturulan düğüm token'ını kopyalayın.
-
Terraform yapılandırmanıza
wallarm
modül kodunu ekleyin: -
wallarm
modül yapılandırmasında değişken değerlerini ayarlayın:
Değişken | Açıklama | Tür | Gerekli? |
---|---|---|---|
instance_type | Wallarm dağıtımı için kullanılacak Amazon EC2 instance type, örn: t3.small . | string | Evet |
vpc_id | Wallarm EC2 instance'ını dağıtmak için kullanılacak AWS Virtual Private Cloud ID'si. | string | Evet |
token | Wallarm Console UI'dan kopyalanan Wallarm düğüm token'ı. Bir token'ı birden fazla kurulumda kullanma Seçilen platform ne olursa olsun, bir token'ı birden fazla kurulumda kullanabilirsiniz. Bu, Wallarm Console UI'da düğüm örneklerinin mantıksal olarak gruplandırılmasını sağlar. Örnek: bir geliştirme ortamına birkaç Wallarm düğümü dağıtırsınız; her düğüm, belirli bir geliştiriciye ait ayrı bir makinede bulunur. | string | Evet |
Wallarm'a özgü değişkenler | |||
host | Wallarm API sunucusu. Olası değerler:
api.wallarm.com . | string | Hayır |
upstream | Dağıtılacak Wallarm düğüm versiyonu. Desteklenen minimum sürüm 4.0 'dır.Varsayılan olarak, 4.8 . | string | Hayır |
preset | Wallarm dağıtım şeması. Olası değerler:
proxy . | string | Hayır |
proxy_pass | Proxy'lenen sunucu protokolü ve adresi. Wallarm düğümü, belirtilen adrese gönderilen istekleri işlemeye alacak ve geçerli olanları başka yere proxy olarak iletecektir. Protokol olarak 'http' veya 'https' belirtilebilir. Adres, alan adı veya IP adresi olarak ve isteğe bağlı olarak bir portla belirtilir. | string | Evet, eğer preset değeri proxy ise |
mode | Trafik filtreleme modu. Olası değerler: off , monitoring , safe_blocking , block .Varsayılan olarak, monitoring . | string | Hayır |
libdetection | Trafik analizi sırasında libdetection kütüphanesinin kullanılıp kullanılmayacağı. Varsayılan olarak, true . | bool | Hayır |
global_snippet | NGINX global yapılandırmasına eklenecek özel yapılandırma. Yapılandırma dosyasını Terraform kod dizinine koyabilir ve bu dosyanın yolunu bu değişkende belirtebilirsiniz. Değişken yapılandırma örneğini proxy gelişmiş çözüm dağıtım örneğinde bulabilirsiniz. | string | Hayır |
http_snippet | NGINX'in http yapılandırma bloğuna eklenecek özel yapılandırma. Yapılandırma dosyasını Terraform kod dizinine koyabilir ve bu dosyanın yolunu bu değişkende belirtebilirsiniz.Değişken yapılandırma örneğini proxy gelişmiş çözüm dağıtım örneğinde bulabilirsiniz. | string | Hayır |
server_snippet | NGINX'in server yapılandırma bloğuna eklenecek özel yapılandırma. Yapılandırma dosyasını Terraform kod dizinine koyabilir ve bu dosyanın yolunu bu değişkende belirtebilirsiniz.Değişken yapılandırma örneğini proxy gelişmiş çözüm dağıtım örneğinde bulabilirsiniz. | string | Hayır |
post_script | Wallarm düğüm başlatma scripti (cloud-init.py ) çalıştırıldıktan sonra çalıştırılacak özel script. Herhangi bir script içeren dosyayı Terraform kod dizinine koyabilir ve bu dosyanın yolunu bu değişkende belirtebilirsiniz.Değişken yapılandırma örneğini proxy gelişmiş çözüm dağıtım örneğinde bulabilirsiniz. | string | Hayır |
AWS dağıtım yapılandırması | |||
app_name | Wallarm modülünün oluşturacağı AWS kaynak adları için ön ek. Varsayılan olarak, wallarm . | string | Hayır |
app_name_no_template | Wallarm modülünün oluşturacağı AWS kaynak adlarında büyük harf, sayı ve özel karakter kullanılacak mı. Eğer false ise, kaynak adları yalnızca küçük harflerden oluşacaktır.Varsayılan olarak, false . | bool | Hayır |
lb_subnet_ids | Bir Application Load Balancer'ın dağıtılacağı AWS Virtual Private Cloud alt ağ ID'lerinin listesi. Önerilen değer, bir internet geçidine yönlendirme olan yönlendirme tablosuna bağlı genel alt ağlardır. | list(string) | Hayır |
instance_subnet_ids | Wallarm EC2 instance'larının dağıtılacağı AWS Virtual Private Cloud alt ağ ID'lerinin listesi. Önerilen değer, yalnızca çıkış bağlantıları için yapılandırılmış özel alt ağlardır. | list(string) | Hayır |
lb_enabled | Bir AWS Application Load Balancer oluşturulup oluşturulmayacağı. custom_target_group değişkeninde özel bir hedef grup belirtilmediği sürece, bu değişkende verilen herhangi bir değerle bir hedef grup oluşturulacaktır.Varsayılan olarak, true . | bool | Hayır |
lb_internal | Bir Application Load Balancer'ın iç yük dengeleyici olmasını isteyip istemediğiniz. Varsayılan olarak, bir ALB internet'e açık tiptedir. Bağlantıları asenkron bir yaklaşımla yönetiyorsanız, önerilen değer true 'dur.Varsayılan olarak, false . | bool | Hayır |
lb_deletion_protection | Bir Application Load Balancer'ın yanlışlıkla silinmesini engelleyecek korumanın etkinleştirilip etkinleştirilmeyeceği. Üretim dağıtımları için önerilen değer true 'dur.Varsayılan olarak, true . | bool | Hayır |
lb_ssl_enabled | Bir istemci ile Application Load Balancer arasında SSL bağlantılarının müzakere edilip edilmeyeceği. Eğer true ise, lb_ssl_policy ve lb_certificate_arn değişkenleri gereklidir. Üretim dağıtımları için önerilir.Varsayılan olarak, false . | bool | Hayır |
lb_ssl_policy | Bir Application Load Balancer için güvenlik politikası. | string | Evet, eğer lb_ssl_enabled true ise |
lb_certificate_arn | Bir AWS Certificate Manager (ACM) sertifikasının Amazon Resource Name (ARN). | string | Evet, eğer lb_ssl_enabled true ise |
custom_target_group | Oluşturulan Auto Scaling grubuna eklenecek mevcut hedef grubunun adı. Varsayılan olarak, yeni bir hedef grup oluşturulup eklenir. Eğer değer varsayılan değilse, AWS ALB oluşturma devre dışı bırakılacaktır. | string | Hayır |
inbound_allowed_ip_ranges | Wallarm instance'larına gelen bağlantılara izin verilmesi için kaynak IP'lerin ve ağların listesi. Unutmayın ki AWS, genel alt ağlardan kaynaklansa bile, yük dengeleyici trafiğini maskeleyebilir. Varsayılan olarak:
| list(string) | Hayır |
outbound_allowed_ip_ranges | Wallarm instance'larının giden bağlantılara izin verilen kaynak IP'lerin ve ağların listesi. Varsayılan olarak: "0.0.0.0/0" . | list(string) | Hayır |
extra_ports | Wallarm instance'larına gelen bağlantılara izin verilmesi için iç ağdaki ekstra portların listesi. Yapılandırma, bir güvenlik grubuna uygulanacaktır. | list(number) | Hayır |
extra_public_ports | Wallarm instance'larına gelen bağlantılara izin verilmesi için genel ağdaki ekstra portların listesi. | list(number) | Hayır |
extra_policies | Wallarm yığınına ilişkilendirilecek AWS IAM politikaları. Amazon S3'ten veri talep eden scripti çalıştıran post_script değişkeni ile birlikte kullanmak yararlı olabilir. | list(string) | Hayır |
source_ranges | AWS Application Load Balancer trafiğine izin verilecek kaynak IP'lerin ve ağların listesi. Varsayılan olarak, "0.0.0.0/0" . | list(string) | Hayır |
https_redirect_code | HTTP isteğinin HTTPS'ye yönlendirilmesi için kod. Olası değerler:
0 . | number | Hayır |
asg_enabled | Bir AWS Auto Scaling grubunun oluşturulup oluşturulmayacağı. Varsayılan olarak, true | bool | Hayır |
min_size | Oluşturulan AWS Auto Scaling grubundaki minimum instance sayısı. Varsayılan olarak, 1 . | number | Hayır |
max_size | Oluşturulan AWS Auto Scaling grubundaki maksimum instance sayısı. Varsayılan olarak, 3 . | number | Hayır |
desired_capacity | Oluşturulan AWS Auto Scaling grubundaki başlangıç instance sayısı. min_size 'a eşit veya daha fazla, max_size 'a eşit veya daha az olmalıdır.Varsayılan olarak, 1 . | number | Hayır |
autoscaling_enabled | Wallarm kümesi için [Amazon EC2 Auto Scaling]'i etkinleştirip etkinleştirmeyeceği. Varsayılan olarak, false . | bool | Hayır |
autoscaling_cpu_target | AWS Auto Scaling grubunda tutulacak ortalama CPU kullanım yüzdesi. Varsayılan olarak, 70.0 . | string | Hayır |
ami_id | Wallarm instance'ının dağıtılmasında kullanılacak Amazon Machine Image (AMI) ID'si. Varsayılan olarak (boş string), upstream'den en son görüntü kullanılır. Wallarm düğümüne dayalı özel bir AMI oluşturabilirsiniz. | string | Hayır |
key_name | Wallarm instance'larına SSH üzerinden bağlanmak için kullanılacak [AWS key pair]'in adı. Varsayılan olarak, SSH bağlantısı devre dışıdır. | string | Hayır |
tags | Wallarm modülünün oluşturacağı AWS kaynakları için etiketler. | map(string) | Hayır |
Wallarm Terraform Modülünü Örneklerle Deneme¶
Wallarm modülünü kullanmanın farklı yollarına dair örnekler hazırladık, böylece üretime dağıtmadan önce deneyebilirsiniz:
Wallarm ve Terraform Hakkında Daha Fazla Bilgi¶
Terraform, çok sayıda entegrasyonu (providers) ve kullanıma hazır yapılandırmaları (modules), birçok satıcı tarafından doldurulan genel registry üzerinden kullanıcılara desteklemektedir.
Wallarm, bu registry'e şunları yayınladı:
-
Terraform uyumlu ortamdan düğümü AWS'e dağıtmak için Wallarm module. Mevcut makalede anlatılmıştır.
-
Terraform üzerinden Wallarm'ı yönetmek için Wallarm provider.
Bu iki öğe birbirinden bağımsız olup farklı amaçlar için kullanılır, birbirlerine ihtiyaç duymazlar.
Sınırlamalar¶
- Credential stuffing detection şu anda desteklenmemektedir.