Erişim Kontrolü
Genel Bilgi
Azure altyapısında, iç kaynaklara (ör: veritabanı, cache sunucuları, uygulama sunucuları, nginx ayarları vb.) erişim için tüm kullanıcıların Bastion Host kullanması zorunludur. Sadece iki instance dış dünyaya açıktır:
- App Gateway (sadece HTTPS)
- Bastion Host (sadece SSH)
Diğer tüm iç servisler dış erişime kapalıdır.
SSH Anahtarları ile Erişim
Her geliştirici/kullanıcı, kendisine özel bir SSH anahtarı kullanmak zorundadır. DB ve Cache gibi servislere erişim/baglanti SSH Tüneli (SSH Tunnel) ile sağlanır.
SSH Anahtarı Oluşturma
Yeni bir kullanıcı için SSH anahtarı oluşturmak için aşağıdaki komut kullanılabilir:
ssh-keygen -t ed25519 -C "kullanici_adi@example.com"
Oluşan id_ed25519.pub dosyasını yöneticinize veya DevOps ekibine iletin.
Yetki Ekleme ve Yönetimi
Tüm SSH tabanlı erişim kontrolü ilgili sunucuların $HOME/.ssh/authorized_keys dosyasında tutulur.
Bir kullanıcıya erişim vermek için ilgili public key bu dosyaya eklenir. Erişim kaldırmak veya geçici olarak engellemek için, aşağıdaki gibi ilgili satırı yoruma alabilirsiniz:
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBz...KULLANICININ_ADI
Not: Bir satırı yoruma almak, o anahtarla gelen tüm erişimleri engeller. Yanlışlıkla başka anahtar satırlarını değiştirmemeye dikkat edin.
Erişim yetkisi gereksiz yere verilmemeli ve düzenli aralıklarla gözden geçirilmelidir.
Erişim Alımı
Eğer Bastion Host’a veya iç servislere erişim için SSH anahtarınız yoksa, lütfen DevOps yöneticisi veya ilgili yöneticiye başvurun. SSH public anahtarınızı ilettikten sonra, yetkiniz verilecektir.
SSH Tüneli Oluşturarak DB ve Cache Erişimi
Veritabanı veya Cache servislerine erişim sağlarken, çoğu veritabanı ya da cache istemcisinde (örneğin: DataGrip, Redis Insight gibi) SSH tünel bağlantısı için özel bir bölüm bulunur ve ilgili bağlantı ayarları oradan yapılmalıdır. Kullanacağınız istemcinin bağlantı ayarlarında "SSH Tunnel" veya "SSH üzerinden bağlantı" gibi seçenekleri kullanarak doğrudan Bastion Host üzerinden bu servislere erişim sağlayabilirsiniz.
Aşağıda DataGrip üzerinde nasıl SSH tunnel tanımlaması yapılacağına dair bir görsel bulunmaktadır:

Eğer terminal veya komut satırından manuel olarak bir SSH tüneli oluşturmak isterseniz aşağıdaki komutları kullanabilirsiniz:
Genel SSH Tunnel Kullanımı
ssh -i ~/.ssh/id_ed25519 -L local_port:internal_service_address:remote_port user@bastion-host.public.ip
Burada:
local_port: Kendi bilgisayarınızda kullanılacak portinternal_service_address: Azure içindeki servis adı/IP'siremote_port: Servisin çalıştığı port (ör: PostgreSQL için 5432, Redis için 6379)user: Size verilen Azure/Bastion kullanıcı adı
Notlar
- Hiçbir şekilde doğrudan iç servislerin public erişimi açılmamalıdır.
- SSH anahtarlarınızı ve parolalarınızı kimseyle paylaşmayın.
- Erişimlerle ilgili tüm talepler için lütfen yöneticinizle iletişim kurun.