Ana içeriğe geç

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:

DataGrip SSH Tunnel

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 port
  • internal_service_address: Azure içindeki servis adı/IP'si
  • remote_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.