Tamamen uzaktan hizmet veren bir SaaS işletmesi olan Iframely, hazırlama ortamlarını korumak için uygulamanın kendisini değiştirmeyi gerektirmeyen ve böylece canlı sürümden farklı hale getiren kullanışlı ama güvenli bir yol arıyordu. Tüm ekip üyeleri (geçici olanlar dahil) arasında kimlik bilgilerinin paylaşılmasını gerektirdiği için oldukça zahmetli olduğu kanıtlanan HTTP Temel kimlik doğrulamasını kullanıyorlardı.
IP tabanlı erişim kısıtlaması uyguluyorlar ve sabit bir IP adresi kümesinden hem hazırlık uygulamalarına hem de belirli bir arka ofis uygulamasına bağlanmak için ZenVPN tahsis edilmiş sunucularını kullanıyorlar.
Ekip üyelerinin çoğu iş için kendi özel donanımlarını kullandığından ve bazıları müşterinin makineleri üzerinde bu düzeyde bir kontrolü kabul etmeyecek bağımsız yükleniciler olduğundan, ekip üyelerine genel trafik yönlendirme kuralları koymamak da onlar için önemliydi. VPN üzerinden yalnızca projeyle ilgili trafik yönlendirildiği için bölünmüş tünelleme kullanarak bu sorunu kolayca çözebildiler.
Son olarak şirket, uygulama sunucularına ssh erişimi için kullandıkları bastion ana bilgisayarlarında IP beyaz listesini de uygulayarak ekstra bir güvenlik katmanı eklemeyi seçti.
Uygulama
Evreleme ve arka ofis uygulaması için IP kısıtlaması Nginx ngx_http_access_module modülü kullanılarak uygulanmıştır:
allow: "{{ shield_ips }}"
deny: all
Bastion ana bilgisayarı için kısıtlama AWS güvenlik grupları kullanılarak uygulanmıştır:
resource "aws_security_group" "bastion" {
name = "bastion"
vpc_id = aws_vpc.main.id
ingress {
description = "SSH from Internet"
protocol = "tcp"
from_port = 22
to_port = 22
cidr_blocks = shieldIps
ipv6_cidr_blocks = shieldIpv6s
}
}
Sonuç
ZenVPN'i IP tabanlı erişim kısıtlamaları ile kullanmak, bu şirkete hazırlık ve arka ofis uygulamalarına erişimi yönetmek için göze batmayan bir yol sağladı ve temel tekliflerinin geliştirilmesine odaklanmalarına izin verdi.