Service Mesh (ASM), kaynak IP adreslerine, HTTP isteklerindeki alan adlarına, bağlantı noktalarına ve uzak IP bloklarına göre bir ASM örneğindeki uygulamalara erişimi kontrol etmek için giriş ağ geçidinde engelleme listesi veya izin listesi yapılandırmanıza olanak tanır. Bu özelliği kullanarak ASM örneğinizdeki uygulamaların güvenliğini sağlayabilirsiniz. Bu konuda, belirli bir kaynak IP adresinden gelen istekleri reddetmek veya izin vermek için giriş ağ geçidinde engelleme listesi veya izin listesinin nasıl yapılandırılacağı açıklanmaktadır.
Ön koşullar
ASM örneğinize eklenen Container Service for Kubernetes (ACK) kümesinde bir uygulama dağıtılmış olmalıdır. Daha fazla bilgi için bkz. Uygulamayı ASM ile ilişkilendirilmiş bir kümeye dağıtma.
Eşleştirme kuralı açıklaması
Engelleme listesi veya izin listesinin etkili olduğu bir istek, kurallardan biriyle ve bu kuraldaki tüm ölçütlerle eşleşmelidir.
Engelleme listesi veya izin listesi özelliği devre dışı bırakıldığında, ilgili yetkilendirme kuralları otomatik olarak temizlenir.
-
HTTP isteklerindeki alan adları veya ana bilgisayar adları tam eşleşme, önek eşleşme ve sonek eşleşmesini destekler. Örnekler:
Tam eşleşme: aliyun.com
Önek eşleşmesi: aliyun*
Sonek eşleşmesi: *aliyun.com
Giriş ağ geçidi günlüklerini kullanarak belirli bir istemcinin kaynak IP adresini alma
Kuzey-güney trafiğinde bir istemci isteği önce yük dengeleyiciye gönderilir, ardından giriş ağ geçidine iletilir ve son olarak arka uç hizmetine yönlendirilir. Giriş ağ geçidi sürece dahil olduğundan istemcinin kaynak IP adresini almak karmaşık hale gelir. Kuzey-güney trafiği için kaynak IP adreslerinin korunması hakkında daha fazla bilgi için bkz. Senaryo 2: kuzey-güney trafiği.
-
Bir tarayıcı açın ve productpage hizmetine erişmek için adres çubuğuna http://{giriş ağ geçidinizin IP adresi}/productpage yazın. Bu işlem sırasında erişim günlükleri oluşturulur.
Giriş ağ geçidinizin IP adresini alma hakkında daha fazla bilgi için bkz. Giriş ağ geçidinin IP adresini alma.
-
Veri düzlemindeki kümenin kubeconfig dosyasını kullanarak giriş ağ geçidinin erişim günlüklerini almak için aşağıdaki komutu çalıştırın:
kubectl -n istio-system logs ${Name of the pod to which the ingress gateway belongs} -c istio-proxy | grep "/productpage" | tail -n 1Örnek çıktı:
{"method":"GET","authority":"47.99.XXX.XXX","response_flags":"-","start_time":"XXXXXX","requested_server_name":null,"request_id":"*****","upstream_local_address":null,"duration":0,"downstream_local_address":"10.34.0.25:80","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.X.X Safari/537.36","upstream_host":null,"bytes_received":0,"istio_policy_status":null,"protocol":"HTTP/1.1","bytes_sent":19,"downstream_remote_address":"XXXXXXX","response_code":403,"x_forwarded_for":"112.124.XXX.XX","upstream_cluster":"outbound|9080||productpage.default.svc.cluster.local","trace_id":null,"path":"/productpage","upstream_transport_failure_reason":null,"upstream_service_time":null,"route_name":null}Örnek çıktıda
downstream_remote_addressdeğeri, istemcinin kaynak IP adresidir.
Belirli istemcinin kaynak IP adresinden gelen istekleri reddetmek için giriş ağ geçidinde engelleme listesi yapılandırma
ASM konsolu nda oturum açın. Sol gezinme bölmesinde seçeneğine tıklayın.
Mesh Management sayfasında ASM örneğinin adına tıklayın. Sol gezinme bölmesinde seçeneğine tıklayın.
Ingress Gateway sayfasında hedef ağ geçidinin adına tıklayın. Açılan genel bakış sayfasında sol gezinme bölmesinden seçeneğine tıklayın.
-
Black/White List Matching Rules sihirbazında Enable Black/White List anahtarını etkinleştirin. Match Mode değerini Black List olarak ayarlayın. IPBlock anahtarını etkinleştirin, istemci kaynak IP adresini girin ve ardından Submit seçeneğine tıklayın.
NotBirden çok eşleştirme kuralı yapılandırmak için aynı anda birden çok istek türünü engellemek veya izin vermek üzere Add Request Matching Rule seçeneğine tıklayın.
Yapılandırma tamamlandığında ilkenin etkin olduğunu belirten Gateway Black/White List created successfully mesajı görüntülenir. Yapılandırma ayrıntılarını görüntülemek için AuthorizationPolicy öğesinin sağındaki View YAML seçeneğine tıklayabilirsiniz.
-
Tarayıcınızın adres çubuğuna http://{giriş ağ geçidinizin IP adresi}/productpage yazarak productpage hizmetine erişin.
Aşağıdaki mesaj görüntülenirse engelleme listesinin etkili olduğu anlamına gelir.
RBAC: access denied
Yalnızca belirli istemcinin kaynak IP adresinden gelen isteklere izin vermek için giriş ağ geçidinde izin listesi yapılandırma
İzin listesi yapılandırma yöntemi, eşleştirme modları farklı olması dışında engelleme listesi yapılandırmasına benzer.
Ingress Gateway sayfasında hedef ağ geçidinin adına tıklayın. Açılan genel bakış sayfasında sol gezinme bölmesinden seçeneğine tıklayın.
Black/White List Matching Rules sihirbazında Match Mode değerini White list olarak ayarlayın ve ardından Submit seçeneğine tıklayın.
-
Productpage hizmetine erişin.
-
Tarayıcınızın adres çubuğuna http://{giriş ağ geçidinizin IP adresi}/productpage yazın.
Productpage hizmetine erişebilirsiniz.
-
Farklı bir IP adresine sahip başka bir istemcide tarayıcınıza http://{giriş ağ geçidinizin IP adresi}/productpage yazın.
Aşağıdaki yanıt görüntülenir; bu durum, diğer istemci IP adreslerinden gelen erişimin reddedildiğini ve izin listesi kuralının etkin olduğunu gösterir.
RBAC: access denied
-
İlgili konular
ASM, giriş ağ geçitlerinin erişim günlüklerini toplamanıza olanak tanır. Daha fazla bilgi için bkz. ASM ağ geçidi erişim günlükleri oluşturma ve toplama.