Güvenlik grupları, Container Service for Kubernetes (ACK) içinde Elastic Container Instance (ECI) olarak çalışan pod'lar için sanal güvenlik duvarı görevi görür. Durum bilgisi olan paket denetimi (SPI) ve paket filtreleme kullanarak gelen ve giden trafiği pod düzeyinde kontrol ederler. Güvenlik gruplarını cloud üzerinde güvenlik alanları tanımlamak için kullanabilirsiniz.
Geçerlilik: Virtual Node (Virtual Kubelet) etkinleştirilmiş ACK kümeleri
Başlamadan önce
Güvenlik gruplarını atamadan önce aşağıdakileri yaptığınızdan emin olun:
Virtual Node bileşeni (Virtual Kubelet) yüklü bir ACK kümesi
Kümenizle aynı Virtual Private Cloud (VPC) içinde oluşturulmuş en az bir güvenlik grubu. Oluşturmak için bkz. Güvenlik grubu oluşturma
Pod'ları yeniden başlatmadan küme düzeyindeki yapılandırma değişikliklerinin uygulanması (sıcak güncelleme) gerekiyorsa Virtual Kubelet v2.0.0.90-15deb126e-aliyun veya sonraki bir sürüm. Sürümünüzü kontrol etmek ve gerekirse yükseltmek için Virtual Kubelet sürüm notlarına bakın
Sınırlamalar
İlerlemeden önce aşağıdaki kısıtlamaları gözden geçirin:
| Kısıtlama | Ayrıntı |
|---|---|
| Üyelik gereklidir | Her Elastic Container Instance bir güvenlik grubuna ait olmalıdır. |
| Değişmezlik | Çalışan bir pod üzerindeki güvenlik grupları değiştirilemez. Bir pod'u farklı bir güvenlik grubuna taşımak için o güvenlik grubunda aynı özelliklere sahip yeni bir pod oluşturun. |
| Pod düzeyinde sınır | Bir pod en fazla beş güvenlik grubuna ait olabilir. |
| Aynı VPC | Bir pod'a atanan tüm güvenlik grupları aynı VPC içinde yer almalıdır. |
| Aynı tür | Bir pod'a atanan tüm güvenlik grupları aynı türde olmalıdır; ya hepsi temel güvenlik grubu ya da hepsi gelişmiş güvenlik grubu olmalıdır. |
| Ek açıklama zamanlaması | k8s.aliyun.com/eci-security-group ek açıklaması yalnızca bir pod oluşturulduğunda etkili olur. Mevcut bir pod'a ek açıklama eklemek veya değiştirmek hiçbir etki yaratmaz. |
Güvenlik grubu türleri
ECI iki güvenlik grubu türünü destekler:
| Tür | Açıklama | Önerilen durum |
|---|---|---|
| Temel güvenlik grubu | Kural tabanlı trafik kontrolüne sahip standart güvenlik grubu | Genel iş yükleri |
| Gelişmiş güvenlik grubu | Daha yüksek örnek kapasitesi, basitleştirilmiş kural yönetimi | Yüksek operasyonel verimlilik gerektiren büyük ölçekli ECI dağıtımları |
Bir güvenlik grubundaki tüm örnekler karşılıklı olarak güvenilirdir ve aynı güvenlik grubu kuralları kapsamında korunur. Güvenlik grubu kuralları, güvenlik grubundaki Elastic Container Instance'lar için İnternet'e veya dahili ağa erişimi kontrol eder.
Detaylı karşılaştırma için bkz. Temel güvenlik grupları ve gelişmiş güvenlik grupları.
Küme düzeyinde güvenlik grubu atama
Varsayılan olarak, bir ACK kümesindeki tüm ECI tabanlı pod'lar eci-profile ConfigMap içinde belirtilen güvenlik grubunu kullanır. Kümedeki tüm pod'lar için varsayılan güvenlik grubunu değiştirmek üzere bu ConfigMap'i düzenleyin.
-
Düzenlemek için
eci-profileConfigMap'ini açın:kubectl edit configmap eci-profile -n kube-system -
databölümündekisecurityGroupIddeğerini güvenlik grubu kimliğinizle güncelleyin. Küme düzeyinde yalnızca tek bir güvenlik grubu kimliği desteklenir.data: enableClusterIp: "true" enableHybridMode: "false" enablePrivateZone: "false" resourceGroupId: "" securityGroupId: sg-2ze0b9o8pjjzts4h**** # Specify a single security group ID. selectors: "" vSwitchIds: vsw-2zeet2ksvw7f14ryz****,vsw-2ze94pjtfuj9vaymf**** vpcId: vpc-2zeghwzptn5zii0w7**** Dosyayı kaydedin. Virtual Kubelet v2.0.0.90-15deb126e-aliyun veya sonraki bir sürümse değişiklik, mevcut pod'ları yeniden başlatmadan hemen etkili olur.
Belirli bir pod'a güvenlik grupları atama
Bireysel pod'lar için küme düzeyindeki varsayılanı geçersiz kılmak amacıyla pod belirtimine (spec) k8s.aliyun.com/eci-security-group ek açıklamasını ekleyin. Bu yaklaşım, belirli iş yüklerinin daha katı veya daha esnek ağ ilkelerine ihtiyaç duyduğu durumlarda kullanışlıdır.
Ek açıklamaları Deployment'lar için üst düzey metadata yerine spec.template.metadata içine ekleyin. Ek açıklamalar yalnızca pod oluşturma sırasında etkili olur.
Aşağıdaki örnekte test Deployment tarafından oluşturulan tüm pod'lara iki güvenlik grubu atanmıştır:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-security-group: "sg-bp1dktddjsg5nktv****,sg-2ze0b9o8pjjzts4h****" # Up to 5 IDs, comma-separated.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Güvenlik grubu kuralı ekleme
Güvenlik grubu kuralları pod'larınıza hangi trafiğin ulaşabileceğini kontrol eder. Yaygın kullanım senaryoları:
Güvenlik grupları arası iletişimi etkinleştirme: Pod'un güvenlik grubu dışındaki bir hizmetten gelen trafiğe izin vermek için güvenlik grubu kuralı ekleyin.
Kötü niyetli kaynakları engelleme: Saldırılar tespit edildiğinde erişimi engellemek için güvenlik grubu kuralı ekleyin.
Kural eklemek için bkz. Güvenlik grubu kuralı ekleme.
Sonraki adımlar
Güvenlik gruplarına genel bakış — Güvenlik gruplarının nasıl çalıştığını ve kuralların nasıl değerlendirildiğini öğrenin
Temel güvenlik grupları ve gelişmiş güvenlik grupları — İş yükünüz için doğru türü seçmek amacıyla iki türü karşılaştırın