dtcloud_security_group (Kaynak)
Bir güvenlik grubunu, yani bir makinenin ağ arayüzlerine uygulanan güvenlik duvarı kuralları kümesini yönetir.
Grup yalnızca bir ad ve bir açıklamadan ibarettir. İçindeki kurallar ayrı dtcloud_security_group_rule kaynaklarıdır; böylece bir kural eklemek ya da kaldırmak gruba ve diğer kurallara dokunmaz.
Örnek Kullanım
resource "dtcloud_security_group" "web" {
name = "web-tier"
description = "HTTPS from anywhere, SSH from the office"
}
# Kurallar ayrı kaynaklardır; bu yüzden birini eklemek ya da kaldırmak gruba
# ve diğer kurallara dokunmaz.
resource "dtcloud_security_group_rule" "https" {
security_group_id = dtcloud_security_group.web.id
direction = "ingress"
protocol = "tcp"
port_range_min = 443
port_range_max = 443
remote_ip_prefix = "0.0.0.0/0"
}
Grubu, onu kullanan makinelerden .id ile referans verin. Bu, Terraform'a makinenin gruba bağlı olduğunu söyler; böylece terraform destroy önce makineyi kaldırır. Kopyalanmış bir kimlikle yazılan bir grubun böyle bir bağımlılığı yoktur ve bir şey onu kullanırken silinmesi başarısız olur.
Şema
Zorunlu
name(String) Güvenlik grubunun adı. Yerinde değiştirilebilir. Adların benzersiz olması gerekmez.
İsteğe Bağlı
description(String) Güvenlik grubunun açıklaması. Yerinde değiştirilebilir; kaldırılırsa temizlenir.timeouts(Block, Optional) (bkz. aşağıdaki iç içe şema)
Salt Okunur
id(String) Bu kaynağın kimliği.inbound_rule(List of Object) Platformun gösterdiği haliyle gelen trafik kuralları. Salt okunur; kuralları dtcloud_security_group_rule ile yönetin. (bkz. aşağıdaki iç içe şema)outbound_rule(List of Object) Platformun gösterdiği haliyle giden trafik kuralları. Yeni bir grup, platformun eklediği iki kuralla başlar: tüm IPv4 ve IPv6 çıkışına izin veren kurallar. (bkz. aşağıdaki iç içe şema)
timeouts için iç içe şema
İsteğe Bağlı:
create(String)delete(String)update(String)
inbound_rule için iç içe şema
Salt Okunur:
id(String)port_range(String)protocol(String)source(String)
outbound_rule için iç içe şema
Salt Okunur:
id(String)port_range(String)protocol(String)source(String)
Bilinmesi Gerekenler
- Buradaki hiçbir şey yeniden oluşturma gerektirmez. İki argüman da yerinde değişir ve
description'ı yapılandırmadan kaldırmak onu temizler. Bu önemlidir, çünkü platform hâlâ kullanımdaki bir grubu silmeyi reddeder; yani bir yeniden oluşturma asla tamamlanamazdı. inbound_ruleveoutbound_rulebir görüntü anlık kopyasıdır. Ayrıntı uç noktası kuralları web panelinin gösterdiği gibi bildirir: protokolün görünen adı, metin olarak bağlantı noktası aralığı ve referans verilen grubun kimliği yerine adı. Bunların hiçbiri tekrar bir kurala dönüştürülemez; kuralların ayrı bir kaynak olmasının ve farklı bir uç noktadan okunmasının nedeni budur. Anlık kopya bu kaynağın son okumasına aittir, bu yüzden aynı apply'da oluşturulan kurallar bir sonraki yenilemeden sonra görünür.- Yeni bir grup boş değildir. Platform biri IPv4, biri IPv6 için olmak üzere tüm çıkışa izin veren iki kural ekler. Bunların sahibi Terraform değildir. Birini kaldırmak için onu bir
dtcloud_security_group_ruleolarak içe aktarın, ardından o kaynağı yapılandırmadan silin. - Kullanımdaki bir grup silinemez. Platformun reddi olduğu gibi aktarılır. Önce grubu kullanan her şeyi yok edin ya da ayırın.
Zaman Aşımları
create, update ve delete için varsayılan süre 5 dakikadır. Bu çağrılar eşzamanlıdır, bu yüzden zaman aşımları bir beklemeyi değil takılı kalmış bir isteği sınırlar. Bunları bir timeouts bloğuyla değiştirin:
resource "dtcloud_security_group" "web" {
# ...
timeouts {
create = "10m"
}
}
İçe Aktarma
terraform import dtcloud_security_group.web 7f9c1e40-1c3d-4b6a-9a2f-5f1c9d0e3b11
name ve description geri okunur. Kurallar içe aktarmaya dahil değildir: her biri kendi başına bir dtcloud_security_group_rule'dur ve platformun oluşturduğu iki kural dahil ayrı ayrı içe aktarılır.