Terraform ile DependencyTrack Yapılandırma: Yazılım Güvenliğini Otomatikleştirmek
Günümüz yazılım geliştirme süreçlerinde, yazılım tedarik zinciri güvenliği her zamankinden daha kritik bir hale gelmiştir. Açık kaynak bağımlılıklarının yaygın kullanımı, uygulamaların içerdiği bilinen güvenlik açıklarının takibini zorunlu kılmaktadır. İşte tam bu noktada, yazılım bileşen listesi (SBOM) ve güvenlik açığı yönetimi için güçlü bir platform olan DependencyTrack devreye girer. Ancak, DependencyTrack’ın dağıtımı ve yapılandırması manuel olarak yapıldığında zaman alıcı ve hataya açık olabilir. Bu makalede, altyapıyı kod olarak (IaC) yönetmenin popüler bir aracı olan Terraform’u kullanarak DependencyTrack kurulumunu ve yapılandırmasını nasıl otomatikleştireceğimizi detaylı bir şekilde inceleyeceğiz. Bu sayede, güvenlik duruşunuzu güçlendirirken operasyonel verimliliğinizi artırabileceksiniz.
1. DependencyTrack ve Otomasyonun Önemi
Yazılım geliştirme süreçlerinde hız ve verimlilik arayışı, beraberinde güvenlik risklerini de getirebilir. Binlerce bağımlılık içeren modern uygulamaların her bir bileşenini manuel olarak takip etmek imkansızdır.
1.1. DependencyTrack Nedir?
DependencyTrack, yazılım bileşen listelerini (SBOM) analiz ederek, bilinen güvenlik açıklarını (CVE’ler) ve lisans uyumsuzluklarını proaktif bir şekilde tespit eden ve yöneten bir açık kaynak platformudur. OWASP projesi kapsamında geliştirilen DependencyTrack, geliştiricilerin ve güvenlik ekiplerinin yazılım tedarik zinciri risklerini anlamalarına ve azaltmalarına yardımcı olur. Projelerinizin kullandığı tüm kütüphanelerin ve bağımlılıkların bir envanterini çıkarır, bu bağımlılıkların bilinen güvenlik açıklarına karşı sürekli olarak izlenmesini sağlar ve riskleri görselleştirir.
1.2. Yazılım Tedarik Zinciri Güvenliği
Yazılım tedarik zinciri güvenliği, bir yazılımın geliştirilmesinden dağıtımına kadar geçen tüm aşamalardaki riskleri kapsar. Üçüncü taraf kütüphaneler, açık kaynak bileşenleri, geliştirme araçları ve altyapı bileşenleri bu zincirin halkalarını oluşturur. Bir zincir en zayıf halkası kadar güçlü olduğu için, bu bileşenlerdeki herhangi bir güvenlik açığı tüm sistemi riske atabilir. DependencyTrack gibi araçlar, bu zincirdeki zayıflıkları erken aşamada tespit ederek olası saldırı yüzeyini daraltmaya yardımcı olur.
1.3. Neden Otomasyon?
Manuel kurulum ve yapılandırma süreçleri, insan hatasına açık olmasının yanı sıra, tekrarlanabilirlik ve tutarlılık sorunları yaratır. Özellikle büyük ölçekli veya sık güncellenen sistemlerde bu durum, ciddi operasyonel yük ve güvenlik açıkları anlamına gelebilir. Otomasyon, bu sorunları ortadan kaldırarak:
* Tutarlılık: Her dağıtımın aynı konfigürasyona sahip olmasını sağlar.
* Hız: Kurulum ve güncelleme sürelerini dramatik şekilde azaltır.
* Tekrarlanabilirlik: Geliştirme, test ve üretim ortamları arasında kolayca geçiş yapmayı mümkün kılar.
* Hata Azaltma: Manuel hataları ortadan kaldırır.
* Güvenlik: Güvenlik politikalarının ve en iyi uygulamaların otomatik olarak uygulanmasını sağlar.
Terraform ile DependencyTrack’ı otomatikleştirmek, bu avantajları güvenlik altyapınıza taşımanın en etkili yollarından biridir.
2. Terraform’a Giriş ve Temel Kavramlar
Terraform, HashiCorp tarafından geliştirilen, altyapıyı kod olarak (Infrastructure as Code – IaC) tanımlamanızı ve sağlamanızı sağlayan açık kaynaklı bir araçtır.
2.1. Terraform Nedir?
Terraform, altyapı kaynaklarını (sanal makineler, ağlar, veritabanları, depolama vb.) bildirimsel bir sözdizimi kullanarak tanımlamanıza olanak tanır. Bu tanımlamalar, HCL (HashiCorp Configuration Language) adı verilen okunabilir bir dilde yazılır. Terraform, bu yapılandırma dosyalarını okur, mevcut altyapınızın durumunu öğrenir ve tanımladığınız duruma ulaşmak için gerekli değişiklikleri planlar ve uygular. Bu sayede, altyapınızın yaşam döngüsünü baştan sona yönetebilirsiniz.
2.2. IaC ve Avantajları
Altyapıyı kod olarak (IaC), altyapı yönetimi için geleneksel manuel süreçlerin yerine, sürüm kontrol sistemleriyle yönetilebilen, test edilebilir ve otomatikleştirilebilir kod dosyalarını kullanma prensibidir. IaC’nin temel avantajları şunlardır:
* Sürüm Kontrolü: Altyapı değişiklikleri kod gibi izlenir, geri alınabilir ve denetlenebilir.
* Tekrarlanabilirlik: Aynı altyapıyı farklı ortamlarda veya bölgelerde kolayca oluşturabilirsiniz.
* Hız ve Çeviklik: Altyapı dağıtımını hızlandırır ve yeni özelliklerin daha hızlı devreye alınmasını sağlar.
* Maliyet Azaltma: Operasyonel hataları ve manuel iş yükünü azaltarak maliyet tasarrufu sağlar.
2.3. Terraform Temelleri: Provider’lar, Kaynaklar, Modüller
Terraform’un çalışma prensibi birkaç temel kavram üzerine kuruludur:
* Provider’lar: Terraform’un farklı bulut sağlayıcıları (AWS, Azure, GCP) veya diğer hizmetlerle (Kubernetes, Docker, Datadog) etkileşim kurmasını sağlayan eklentilerdir. Her provider, belirli bir hizmetin API’si ile iletişim kurar. Örneğin, AWS provider’ı EC2 instance’ları veya S3 bucket’ları oluşturmak için kullanılır.
* Kaynaklar (Resources): Provider’lar aracılığıyla yönetilen altyapı bileşenleridir. Her bir kaynak bloğu, belirli bir altyapı nesnesini (örneğin, aws_instance, azurerm_virtual_machine, docker_container) tanımlar ve yapılandırır.
* Modüller (Modules): Terraform kodunu düzenlemenin ve yeniden kullanmanın bir yoludur. Bir modül, bir veya daha fazla kaynak tanımını kapsayan bir koleksiyondur. Modüller sayesinde karmaşık altyapıları daha küçük, yönetilebilir ve tekrar kullanılabilir parçalara bölebilirsiniz.
3. DependencyTrack Kurulum Ortamının Hazırlanması
DependencyTrack’ı Terraform ile dağıtmadan önce, gerekli ön koşulların yerine getirildiğinden emin olmalıyız.
3.1. Gereksinimler: Docker, Veritabanı (PostgreSQL önerilir)
DependencyTrack, Docker konteynerleri aracılığıyla dağıtılmak üzere tasarlanmıştır. Bu nedenle, hedef sunucunuzda Docker ve Docker Compose’un kurulu olması gerekmektedir. Veritabanı olarak PostgreSQL veya H2 (küçük ölçekli testler için) kullanabilir. Üretim ortamları için PostgreSQL şiddetle tavsiye edilir.
3.2. Terraform Kurulumu
Terraform’u sisteminize kurmak oldukça basittir. HashiCorp’un resmi web sitesinden (releases.hashicorp.com/terraform/) işletim sisteminize uygun paketi indirip PATH’inize eklemeniz yeterlidir. Kurulumu doğrulama için aşağıdaki komutu kullanabilirsiniz:
terraform --version
3.3. Cloud Provider Seçimi (AWS, Azure, GCP veya On-Prem)
DependencyTrack'ı hangi ortamda barındıracağınıza karar vermelisiniz. Terraform, başlıca bulut sağlayıcılarını (AWS, Azure, GCP) desteklediği gibi, Docker veya Kubernetes gibi on-premise ortamları da yönetebilir. Seçtiğiniz sağlayıcıya göre Terraform yapılandırmanız değişiklik gösterecektir. Bu makalede, örneklerimizde AWS'yi temel alacağız, ancak konseptler diğer sağlayıcılara da kolayca uyarlanabilir.
4. Terraform ile Temel DependencyTrack Altyapısının Oluşturulması
Şimdi Terraform ile DependencyTrack için gerekli altyapı bileşenlerini oluşturmaya başlayabiliriz.
4.1. Veritabanı Kaynaklarının Tanımlanması (Örn: AWS RDS PostgreSQL)
Üretim ortamları için yönetilen bir veritabanı hizmeti kullanmak en iyi yaklaşımdır. AWS RDS PostgreSQL örneği:
# main.tf
provider "aws" {
region = "us-east-1"
}
resource "aws_db_instance" "dependencytrack_db" {
allocated_storage = 20
engine = "postgres"
engine_version = "13.6"
instance_class = "db.t3.micro"
name = "dependencytrack"
username = "dtadmin"
password = "SuperSecretPassword123!" # Üretim ortamında AWS Secrets Manager kullanın!
skip_final_snapshot = true
publicly_accessible = false
vpc_security_group_ids = [aws_security_group.db_sg.id]
db_subnet_group_name = aws_db_subnet_group.default.name
tags = {
Name = "DependencyTrack-DB"
}
}
resource "aws_db_subnet_group" "default" {
# Mevcut VPC subnet ID'lerinizi buraya ekleyin
subnet_ids = ["subnet-0abcdef1234567890", "subnet-0fedcba9876543210"]
tags = {
Name = "DependencyTrack-DB-SubnetGroup"
}
}
4.2. Compute Kaynaklarının Tanımlanması (Örn: EC2, Azure VM veya Docker Compose için EC2 User Data)
DependencyTrack uygulamasını çalıştıracak sunucuyu veya konteyner ortamını oluşturmalıyız. Basit bir EC2 örneği ve user_data ile Docker Compose kurulumu:
resource "aws_instance" "dependencytrack_app" {
ami = "ami-0abcdef1234567890" # Ubuntu 20.04 LTS veya benzeri bir AMI ID
instance_type = "t3.medium"
key_name = "my-ssh-key" # SSH erişimi için anahtarınız
vpc_security_group_ids = [aws_security_group.app_sg.id]
user_data = < /home/ubuntu/docker-compose.yml
version: "3.8"
services:
database:
image: postgres:13-alpine
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=${DB_NAME}
volumes:
- ./data/database:/var/lib/postgresql/data
restart: unless-stopped
networks:
- dtrack-network
# Üretim ortamında bu servisi kullanmak yerine AWS RDS gibi yönetilen bir DB kullanın!
# Bu örnekte, harici RDS'ye bağlanacağız, bu yüzden bu servis aslında kullanılmayacak.
# Sadece Docker Compose dosyasının tamamlanması için burada bırakıldı.
dependencytrack:
image: dependencytrack/apiserver:4.9.0 # Güncel sürümü kontrol edin
depends_on:
- database
environment:
- ALPINE_DATABASE_MODE=external
- ALPINE_DATABASE_URL=jdbc:postgresql://${aws_db_instance.dependencytrack_db.address}:5432/${aws_db_instance.dependencytrack_db.name}
- ALPINE_DATABASE_USERNAME=${aws_db_instance.dependencytrack_db.username}
- ALPINE_DATABASE_PASSWORD=${aws_db_instance.dependencytrack_db.password}
- ALPINE_WORKER_THREADS=4
- ALPINE_METRICS_ENABLED=true
ports:
- "8080:8080"
volumes:
- ./data/dependencytrack:/data
restart: unless-stopped
networks:
- dtrack-network
frontend:
image: dependencytrack/frontend:4.9.0 # Güncel sürümü kontrol edin
depends_on:
- dependencytrack
ports:
- "80:8080" # Frontend için 80 portunu açıyoruz
environment:
- API_BASE_URL=/api
restart: unless-stopped
networks:
- dtrack-network
networks:
dtrack-network:
driver: bridge
EOT
# Docker Compose dosyasındaki placeholder'ları gerçek değerlerle değiştir
sed -i "s/\${DB_USER}/${aws_db_instance.dependencytrack_db.username}/g" /home/ubuntu/docker-compose.yml
sed -i "s/\${DB_PASSWORD}/${aws_db_instance.dependencytrack_db.password}/g" /home/ubuntu/docker-compose.yml
sed -i "s/\${DB_NAME}/${aws_db_instance.dependencytrack_db.name}/g" /home/ubuntu/docker-compose.yml
# Docker Compose'u başlat
docker-compose -f /home/ubuntu/docker-compose.yml up -d
EOF
tags = {
Name = "DependencyTrack-App"
}
}
*Not: Yukarıdaki user_data script'i, aws_db_instance kaynaklarının çıktılarından dinamik olarak veritabanı bağlantı bilgilerini almaktadır. ami ve key_name değerlerini kendi ortamınıza göre güncellemeyi unutmayın.*
4.3. Güvenlik Grupları ve Ağ Yapılandırması
Ağ güvenliği kritik öneme sahiptir. Veritabanı ve uygulama sunucuları için güvenlik grupları tanımlayalım:
resource "aws_security_group" "db_sg" {
name = "dependencytrack-db-sg"
description = "Allow inbound traffic to DependencyTrack DB"
vpc_id = "vpc-0abcdef1234567890" # Kendi VPC ID'nizi girin
ingress {
from_port = 5432
to_port = 5432
protocol = "tcp"
security_groups = [aws_security_group.app_sg.id] # Sadece uygulama sunucusundan erişime izin ver
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "DependencyTrack-DB-SG"
}
}
resource "aws_security_group" "app_sg" {
name = "dependencytrack-app-sg"
description = "Allow inbound traffic to DependencyTrack App"
vpc_id = "vpc-0abcdef1234567890" # Kendi VPC ID'nizi girin
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"] # HTTP erişimine izin ver (Üretimde daha kısıtlı olmalı!)
}
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["YOUR_IP_ADDRESS/32"] # SSH erişimine sadece kendi IP'nizden izin ver
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "DependencyTrack-App-SG"
}
}
5. DependencyTrack Uygulamasının Dağıtımı ve Yapılandırması
Temel altyapı hazırlandıktan sonra, DependencyTrack uygulamasının kendisini dağıtma ve ilk yapılandırmalarını yapma zamanı.
5.1. Docker Compose veya Kubernetes ile Dağıtım Stratejileri
Yukarıdaki örnekte user_data ile Docker Compose kullanarak basit bir dağıtım gösterdik. Üretim ortamları için daha sağlam ve ölçeklenebilir çözümler tercih edilmelidir:
* Kubernetes: Terraform, Kubernetes kümelerini (EKS, AKS, GKE) oluşturabilir ve kubernetes provider'ı ile bu kümeler üzerinde DependencyTrack'ın Helm chart'ını veya Kubernetes manifest'lerini dağıtabilirsiniz. Bu, yüksek kullanılabilirlik ve ölçeklenebilirlik sağlar.
* AWS ECS/Fargate: Terraform ile ECS kümeleri, görev tanımları ve servisler oluşturarak DependencyTrack konteynerlerini yönetebilirsiniz. Bu, sunucusuz konteyner yönetimi ile operasyonel yükü azaltır.
5.2. DependencyTrack Ayarlarının Terraform ile Yönetimi (API Key, Projeler, Politikalar)
Terraform, altyapı kaynaklarını yönetmek için tasarlanmıştır. DependencyTrack'ın *içindeki* kaynakları (kullanıcılar, API anahtarları, projeler, politikalar) doğrudan yönetmek için resmi bir Terraform provider'ı bulunmamaktadır. Ancak bu, otomasyonun mümkün olmadığı anlamına gelmez:
* null_resource ve local-exec: Terraform'un null_resource kaynağını local-exec provisioner'ı ile birleştirerek, DependencyTrack API'sine curl komutları veya Python/Go betikleri aracılığıyla çağrılar yapabilirsiniz. Bu, Terraform'un yaşam döngüsü içinde DependencyTrack içindeki kaynakları oluşturmanıza veya güncellemenize olanak tanır.
* Custom Provider: Daha gelişmiş senaryolar için, DependencyTrack API'sini kullanan özel bir Terraform provider'ı geliştirebilirsiniz. Bu, daha entegre ve sürdürülebilir bir çözüm sunar.
Örnek: local-exec ile API Anahtarı Oluşturma (Basitleştirilmiş)
resource "null_resource" "create_dtrack_api_key" {
depends_on = [aws_instance.dependencytrack_app] # Uygulama ayağa kalktıktan sonra çalıştır
provisioner "local-exec" {
# DependencyTrack'ın ilk admin kullanıcısı ve şifresi ile oturum açıp bir API anahtarı oluştur
# Bu örnek, DTrack'ın varsayılan admin/admin şifresiyle çalıştığını varsayar.
# Üretim ortamında bu şifreyi değiştirmeli veya daha güvenli bir yöntem kullanmalısınız.
command = < dtrack_api_key.txt
EOF
}
}
output "dependencytrack_api_key" {
value = file("dtrack_api_key.txt")
sensitive = true
}
*Bu örnek, jq aracının sunucuda kurulu olduğunu varsayar ve hassas bilgileri (API anahtarı) bir dosyaya yazar. Üretim ortamında bu anahtarı AWS Secrets Manager gibi güvenli bir yere kaydetmeli ve sensitive = true kullanmalısınız.*
5.3. Uygulama İçi Kaynakların Yönetimi (Örn: dtrack-client veya custom provider)
Yukarıdaki local-exec yaklaşımıyla API anahtarları oluşturabildiğimiz gibi, aynı yöntemle DependencyTrack API'sini kullanarak projeler, bileşenler ve politikalar gibi diğer uygulama içi kaynakları da yönetebiliriz. Bu, CI/CD boru hatlarınızda SBOM'ları otomatik olarak yüklemek veya belirli güvenlik politikalarını uygulamak için temel oluşturur.
6. Gelişmiş Yapılandırma ve Entegrasyonlar
DependencyTrack'ın yeteneklerini daha da artırmak için gelişmiş yapılandırmalar ve diğer sistemlerle entegrasyonlar yapılabilir.
6.1. LDAP/SSO Entegrasyonu
Kurumsal ortamlarda, kullanıcı kimlik doğrulamasını mevcut LDAP dizinleri veya Tek Oturum Açma (SSO) çözümleri (örneğin Okta, Azure AD) ile entegre etmek yaygın bir gereksinimdir. DependencyTrack, LDAP ve OIDC (OpenID Connect) tabanlı SSO'yu destekler. Bu entegrasyonlar, genellikle DependencyTrack'ın application.properties dosyası üzerinden veya web arayüzünden yapılır. Terraform ile bu yapılandırma dosyalarını dinamik olarak oluşturup sunucuya dağıtabilirsiniz.
6.2. Bildirim Mekanizmaları (Slack, Microsoft Teams)
Güvenlik açıkları tespit edildiğinde ilgili ekiplerin hızlıca bilgilendirilmesi hayati önem taşır. DependencyTrack, Slack, Microsoft Teams, Webhook'lar ve e-posta gibi çeşitli bildirim mekanizmalarını destekler. Bu bildirim kuralları ve entegrasyon ayarları da yine application.properties dosyası veya API aracılığıyla yapılandırılabilir. Terraform, bu ayarları user_data script'i içinde veya bir yapılandırma dosyası şablonu (template) kullanarak otomatikleştirebilir.
6.3. CI/CD Boru Hatları ile Entegrasyon
DependencyTrack'ın gerçek gücü, CI/CD boru hatlarına entegre edildiğinde ortaya çıkar. Geliştirme sürecinin her aşamasında SBOM'ların otomatik olarak oluşturulup DependencyTrack'a yüklenmesi, güvenlik açıklarının erken tespiti için kritik öneme sahiptir.
* SBOM Oluşturma: Maven (CycloneDX Maven Plugin), Gradle (CycloneDX Gradle Plugin), Node.js (cyclonedx-node-npm), .NET (dotnet-cyclonedx) gibi araçlarla projelerinizin SBOM'larını otomatik olarak oluşturun.
* SBOM Yükleme: Oluşturulan SBOM'ları, Terraform ile oluşturduğunuz API anahtarını kullanarak DependencyTrack API'sine gönderin.
* Politika Kontrolü: DependencyTrack'taki politikaları kullanarak, kritik güvenlik açıkları içeren bağımlılıkların dağıtımını engelleyin.
7. Sonuç
Terraform ile DependencyTrack'ı yapılandırmak, yazılım tedarik zinciri güvenliği süreçlerinizi otomatikleştirmek ve modern DevOps uygulamalarına entegre etmek için güçlü bir yaklaşımdır. Bu makalede, DependencyTrack'ın ne olduğunu, neden otomasyonun önemli olduğunu, Terraform'un temel prensiplerini ve AWS üzerinde DependencyTrack altyapısını nasıl oluşturacağınızı adım adım inceledik. Ayrıca, DependencyTrack'ın uygulama içi kaynaklarını Terraform ile yönetme zorluklarına ve çözümlerine değindik.
Terraform kullanarak, DependencyTrack kurulumunuzu tutarlı, tekrarlanabilir ve ölçeklenebilir hale getirebilirsiniz. Bu, manuel hataları azaltırken, güvenlik açıklarının daha hızlı tespit edilmesini ve giderilmesini sağlayarak genel güvenlik duruşunuzu önemli ölçüde güçlendirecektir. Unutmayın, güvenlik bir yolculuktur ve otomasyon bu yolculukta en iyi müttefiklerinizden biridir.
SSS (Sık Sorulan Sorular)
DependencyTrack'ı Terraform ile yönetmek ne gibi avantajlar sağlar?
Terraform ile yönetim, kurulum ve yapılandırma süreçlerinde tutarlılık, tekrarlanabilirlik, hız ve hata azaltma gibi önemli avantajlar sunar. Altyapınızı kod olarak tanımlayarak, sürüm kontrolü altında tutabilir, farklı ortamlarda kolayca dağıtabilir ve güvenlik politikalarınızı otomatik olarak uygulayabilirsiniz.
Terraform ile DependencyTrack'ın hangi bileşenlerini yapılandırabilirim?
Terraform ile DependencyTrack için gerekli olan temel altyapı bileşenlerini (sanal sunucular, veritabanları, ağ güvenlik grupları) oluşturabilir ve yönetebilirsiniz. Uygulamanın kendisini (Docker konteynerleri veya Kubernetes dağıtımı) başlatabilir ve hatta local-exec provisioner'ı veya özel bir provider kullanarak DependencyTrack içindeki API anahtarları, projeler ve kullanıcılar gibi kaynakları da dolaylı olarak yönetebilirsiniz.
Mevcut bir DependencyTrack kurulumunu Terraform'a nasıl aktarabilirim?
Mevcut bir altyapıyı Terraform'a aktarmak için terraform import komutunu kullanabilirsiniz. Bu komut, mevcut kaynakları Terraform state dosyasına eklemenizi sağlar, böylece daha sonra bu kaynakları Terraform kodunuzla yönetebilirsiniz. Ancak, uygulama içi yapılandırmalar için (API anahtarları, projeler) bu genellikle manuel olarak veya özel betikler aracılığıyla yapılmalıdır.
Terraform ile DependencyTrack içindeki projeleri veya API anahtarlarını yönetebilir miyim?
Doğrudan bir DependencyTrack Terraform provider'ı olmamasına rağmen, null_resource ve local-exec provisioner'ları kullanarak DependencyTrack API'sine çağrılar yapabilir ve bu sayede projeler, API anahtarları, kullanıcılar ve politikalar gibi uygulama içi kaynakları dolaylı olarak yönetebilirsiniz. Daha entegre bir çözüm için özel bir Terraform provider'ı geliştirmek de bir seçenektir.
Hangi bulut sağlayıcıları desteklenir?
Terraform, AWS, Azure ve Google Cloud Platform (GCP) gibi başlıca bulut sağlayıcılarını tam olarak destekler. Ayrıca Docker, Kubernetes ve VMware gibi on-premise veya hibrit ortamlar için de provider'lar mevcuttur. Bu sayede DependencyTrack'ı neredeyse her ortamda Terraform ile dağıtabilirsiniz.
