API uç noktası yapılandırma önerileri

İç API iletişimi

Openstack hem genel hem de özel API uç noktaları sağlar. Öntanımlı olarak, OpenStack bileşenleri genel tanımlanmış uç noktaları kullanır. Önerilen, bu bileşenleri uygun güvenlik alanında kullanacak şekilde yapılandırmaktır.

Servisler, OpenStack servis kataloğuna göre kendi API uç noktalarını seçer. Bu servis listelenmiş genel ya da iç API uç nokta değerlerine uymayabilir. Bu, iç yönetim trafiğinin dış API uç noktalarından yönlendirilmesine yol açabilir.

İç URL’leri kimlik servis kataloğunda yapılandır

Kimlik servis kataloğunun sizin iç URL’lerinizden haberdar olması gerekiyor. Bu özelliklik öntanımlı olarak gelmemekle fakat yapılandırma ile ayarlanabilir. Ek olarak, bu davranışın öntanımlı olduktan sonra değişiklikler için ileri uyumlu olmalıdır.

Bir uç nokta için iç URL kayıt etmek için:

$ openstack endpoint create identity \
  --region RegionOne internal \
  https://MANAGEMENT_IP:5000/v3

MANAGEMENT_IP yi denetleyici düğümünüzün yönetim IP adresi ile değiştirin.

İç URL’ler için uygulamaları yapılandırın

Bazı servisleri özel API uç noktalarını kullanması için zorlayabilirsiniz. Bu sebeple, her bir OpenStack servisini, bir diğer servisin API’si ile haberleşmesinde uygun iç API uç noktasına erişebilmesi için özel olarak yapılandırılması önerilmektedir.

Her projenin kendi özel hedef API uç noktası tanımlama yöntemi olabilir. OpenStack’in gelecek sürümleri, bu tutarsızlığa, kimlik servis kataloğu ile bir çözüm bulmaya çalışacaktır.

Yapılandırma örneği #1: nova

cinder_catalog_info='volume:cinder:internalURL'
glance_protocol='https'
neutron_url='https://neutron-host:9696'
neutron_admin_auth_url='https://neutron-host:9696'
s3_host='s3-host'
s3_use_ssl=True

Yapılandırma örneği #2: cinder

glance_host = 'https://glance-server'

Paste ve ara katman

OpenStack’teki çoğu API uç noktası ve diğer HTTP servisleri Python Paste Deploy kitaplığı kullanır. Güvenlik açısından, bu kitaplık uygulamanın yapılandırmasından istek filtre hattını değiştirmeyi etkinleştirir. Zincirdeki her bir öge ara katman olarak adlandırılır. Hattaki filtrelerin sırasını değiştirmek ya da ek ara katman eklemek beklenmeyen güvenlik sonuçlarına yol açabilir.

Genellikle, uygulayıcılar OpenStack’in temel işlevselliğini genişletmek için orta katman ekler. Uygulayıcıları, standart olmayan yazılım bileşenlerini HTTP istek hattına ekleyerek ortaya çıkabilecek potansiyel maruziyeti dikkatle incelemenizi öneririz.

Paste Deploy hakkında daha fazla bilgi için Python Paste Deployment belgelendirmesi.

API uç nokta süreç izolasyonu ve kuralı

API uç noktası süreçlerini, özellikle de genel güvenliği alanında bulunanları izole etmeniz gerekir. Dağıtımların izin verdiği durumlarda, API uç noktaları, daha fazla yalıtım için ayrı ana bilgisayarlara yerleştirilmelidir.

İsim uzayları

Pek çok işletim sistemi artık bölümlendirme desteği sağlamaktadır. Linux süreçleri bağımsız alanlara atamak için isim alanlarını destekler. Bu kılavuzun diğer kısımları sistem bölümlemesini daha ayrıntılı olarak kapsar.

Ağ kuralı

API uç noktaları genellikle birden fazla güvenlik alanını köprülemektedir, API işlemlerinin bölümlendirilmesine özel dikkat göstermelisiniz. Bu bölgede ek bilgi için bkz .: ref: Bridging_security_domains.

Dikkatli bir modelleme ile, ağ servisleri arasındaki açık uç noktadan noktaya iletişimi zorlamak için ağ ACL’lerini ve IDS teknolojilerini kullanabilirsiniz. Kritik bir çapraz alan hizmeti olarak bu tür açık uygulama, OpenStack’ın mesaj kuyruğu hizmeti için iyi çalışır.

Kuralları uygulamak için, hizmetleri, ana bilgisayar tabanlı güvenlik duvarlarını (iptables gibi), yerel kuralı (SELinux veya AppArmor) ve isteğe bağlı olarak genel ağ ilkesini yapılandırabilirsiniz.

Sorunlu erişim kontrolleri

API uç nokta süreçlerini diğerlerinden ve makinedeki diğer süreçlerden soyutlamalısınız. Bu süreçler için yapılandırmalar, diğer süreçlere sadece İsteğe Bağlı Erişim Kontrolü üzerinden değil, Zorunlu Erişim Kontrolü ile de kısıtlanmalıdır. Bu gelişmeiş erişim kontrollerinin hedefi API uç noktasının güvenlik ihlallerini sınırlanmasına yardımcı olmaktır. Zorunlu erişim kontrolleri ile bu tip ihlallerde kaynaklara erişimi kısıtlayabilir ve erken uyarı sistemleri sağlayabilir.

API uç noktası oran-sınırlama

Oran Sınırlama, bir ağ tabanlı uygulamadan gelen olay frekansını kontrol etmek demektir. Güçlü oran sınırlama mevcut değilse, bu uygulamanın hizmet kesintisi saldırılarına müsat olmasına yol açar. Bu özellikle doğası gereği yüksek frenkasta benzer istek türleri ve oprasyonu kabul eden API’ler için doğrudur.

OpenStack içinde, özellikle genel olan tüm uç noktalara, fazladan koruma katmanı sağlanır. Yani bu, bir oran-sınırlama vekili ya da web uygulaması güvenlik duvarı demektir.

Operatör için, OpenStack bulut ortamında oran sınırlama özelliğini yapılandırırken ve gerçekleştirirken kullanıcı ve servislerin ihtiyaçlarına göre planlama yapma ve performanslarını değerlendirme çok önemlidir.

Oran-sınırlama sağlarken yaygın çözümler Nginx, HAProxy, OpenRepose, ya da mod_ratelimit, mod_qos, veya mod_security gibi Apache modülleridir.