Paylaşılan Erişim İmzası kullanarak Event Hubs kaynaklarına erişim yetkisi verme
Paylaşılan erişim imzası (SAS), Event Hubs ad alanınızdaki kaynaklara sınırlı erişim vermenin bir yolunu sağlar. SAS, yetkilendirme kurallarına göre Event Hubs kaynaklarına erişimi sağlar. Bu kurallar bir ad alanında veya olay hub'ına yapılandırılır. Bu makalede SAS modeline genel bir bakış sağlanır ve SAS en iyi yöntemleri inceler.
Not
Bu makale, SAS kullanarak Event Hubs kaynaklarına erişimi yetkilendirmeyi kapsar. SAS kullanarak Event Hubs kaynaklarına erişimin kimliğini doğrulama hakkında bilgi edinmek için bkz. SAS ile kimlik doğrulaması.
Paylaşılan erişim imzaları nedir?
Paylaşılan erişim imzası (SAS), yetkilendirme kurallarına göre Event Hubs kaynaklarına temsilci erişimi sağlar. Yetkilendirme kuralının bir adı vardır, belirli haklarla ilişkilendirilir ve bir çift şifreleme anahtarı taşır. SAS belirteçleri oluşturmak için Event Hubs istemcileri aracılığıyla veya kendi kodunuzda kuralın adını ve anahtarını kullanırsınız. İstemci daha sonra istenen işlem için yetkilendirmeyi kanıtlamak için belirteci Event Hubs'a geçirebilir.
SAS, basit belirteçler kullanan talep tabanlı bir yetkilendirme mekanizmasıdır. SAS kullandığınızda anahtarlar hiçbir zaman kabloya geçirilmeyecek. Anahtarlar, daha sonra hizmet tarafından doğrulanacak bilgileri şifreli olarak imzalamak için kullanılır. SAS, istemcinin hemen yetkilendirme kuralı adına ve eşleşen bir anahtara sahip olduğu kullanıcı adı ve parola düzenine benzer şekilde kullanılabilir. SAS, istemcinin imzalama anahtarına sahip olmadan bir güvenlik belirteci hizmetinden zaman sınırlı ve imzalı erişim belirteci aldığı federasyon güvenlik modeline benzer şekilde kullanılabilir.
Not
Azure Event Hubs, Microsoft Entra Id kullanarak Event Hubs kaynaklarını yetkilendirmeyi de destekler. Microsoft Entra ID tarafından döndürülen OAuth 2.0 belirtecini kullanarak kullanıcıları veya uygulamaları yetkilendirmek, paylaşılan erişim imzaları (SAS) üzerinden üstün güvenlik ve kullanım kolaylığı sağlar. Microsoft Entra Id ile belirteçleri kodunuzda depolamanız ve olası güvenlik açıklarını riske atmanıza gerek yoktur.
Microsoft, mümkün olduğunda Azure Event Hubs uygulamalarınızla Microsoft Entra Id kullanmanızı önerir. Daha fazla bilgi için bkz . Microsoft Entra Id kullanarak Azure Event Hubs kaynağına erişimi yetkilendirme.
Önemli
SAS (Paylaşılan Erişim İmzaları) belirteçleri, kaynaklarınızı korumak için kritik öneme sahiptir. Sas, ayrıntı düzeyi sağlarken istemcilere Event Hubs kaynaklarınıza erişim verir. Bunlar genel olarak paylaşılmamalıdır. Paylaşım sırasında, sorun giderme nedenleriyle gerekirse günlük dosyalarının azaltılmış bir sürümünü kullanmayı veya SAS belirteçlerini (varsa) günlük dosyalarından silmeyi göz önünde bulundurun ve ekran görüntülerinin SAS bilgilerini içermediğinden emin olun.
Paylaşılan erişim yetkilendirme ilkeleri
Her Event Hubs ad alanı ve her Event Hubs varlığı (olay hub'ı veya Kafka konusu) kurallardan oluşan bir paylaşılan erişim yetkilendirme ilkesine sahiptir. Ad alanı düzeyindeki ilke, tek tek ilke yapılandırmasından bağımsız olarak ad alanı içindeki tüm varlıklar için geçerlidir.
Her yetkilendirme ilkesi kuralı için üç bilgi parçasına karar verirsiniz: ad, kapsam ve haklar. Ad, bu kapsamdaki benzersiz bir addır. Kapsam, söz konusu kaynağın URI'sini oluşturur. Event Hubs ad alanı için kapsam, gibi https://<yournamespace>.servicebus.windows.net/
tam etki alanı adıdır (FQDN).
İlke kuralı tarafından sağlanan haklar aşağıdakilerin bir bileşimi olabilir:
- Gönder – Varlığa ileti gönderme hakkı verir
- Dinleme – Varlıktan iletileri dinleme veya alma hakkı verir
- Yönet – Varlık oluşturma ve silme dahil olmak üzere ad alanının topolojisini yönetme hakkı verir. Yönet hakkı Gönderme ve Dinleme haklarını içerir.
Ad alanı veya varlık ilkesi en fazla 12 paylaşılan erişim yetkilendirme kuralı barındırabilir ve her biri temel hakları ve Gönder ve Dinle birleşimini kapsayan üç kural kümesine yer açabilir. Bu sınır, SAS ilke deposunun kullanıcı veya hizmet hesabı deposu olma amacını taşımadığının altını çizer. Uygulamanızın kullanıcı veya hizmet kimliklerine göre Event Hubs kaynaklarına erişim vermesi gerekiyorsa, kimlik doğrulaması ve erişim denetimi sonrasında SAS belirteçleri veren bir güvenlik belirteci hizmeti uygulamalıdır.
Yetkilendirme kuralına birincil anahtar ve ikincil anahtar atanır. Bu anahtarlar şifreleme açısından güçlü anahtarlardır. Onları kaybetmeyin veya sızdırmayın. Bunlar her zaman Azure portalında kullanılabilir olacaktır. Oluşturulan anahtarlardan birini kullanabilir ve bunları istediğiniz zaman yeniden oluşturabilirsiniz. İlkedeki bir anahtarı yeniden oluşturur veya değiştirirseniz, bu anahtarı temel alan daha önce verilen tüm belirteçler anında geçersiz hale gelir. Ancak, bu belirteçler temelinde oluşturulan devam eden bağlantılar, belirtecin süresi dolana kadar çalışmaya devam eder.
Event Hubs ad alanı oluşturduğunuzda, ad alanı için RootManageSharedAccessKey adlı bir ilke kuralı otomatik olarak oluşturulur. Bu ilke, ad alanının tamamı için izinleri yönetmektedir . Bu kurala bir yönetici kök hesabı gibi davranmanız ve bunu uygulamanızda kullanmamanız önerilir. Portaldaki ad alanı için Yapılandır sekmesinde PowerShell veya Azure CLI aracılığıyla daha fazla ilke kuralı oluşturabilirsiniz.
SAS kullanırken en iyi uygulamalar
Uygulamalarınızda paylaşılan erişim imzalarını kullandığınızda, iki olası riskin farkında olmanız gerekir:
- Sas sızdırılırsa, bunu alan herkes tarafından kullanılabilir ve bu da Event Hubs kaynaklarınızın güvenliğini tehlikeye atabilir.
- bir istemci uygulamasına sağlanan SAS'nin süresi dolarsa ve uygulama hizmetinizden yeni bir SAS alamıyorsa uygulamanın işlevselliği engellenebilir.
Paylaşılan erişim imzalarını kullanmaya yönelik aşağıdaki öneriler bu riskleri azaltmaya yardımcı olabilir:
- Gerekirse istemcilerin SAS'yi otomatik olarak yenilemesini sağlayın: İstemciler, SAS'yi sağlayan hizmet kullanılamıyorsa yeniden denemelere izin vermek için SAS'yi sona ermeden önce yenilemelidir. SAS'nizin son kullanma süresi içinde tamamlanması beklenen az sayıda anlık, kısa süreli işlem için kullanılması amaçlanıyorsa SAS'nin yenilenmesi beklenmediğinden gereksiz olabilir. Ancak, SAS aracılığıyla düzenli olarak istekte bulunan bir istemciniz varsa, süre sonu olasılığı devreye girer. Önemli nokta, SAS'nin kısa süreli (daha önce belirtildiği gibi) gereksinimini, istemcinin yenilemeyi yeterince erken istediğinden emin olma gereksinimiyle (başarılı bir yenilemeden önce SAS süresinin dolmasından kaynaklanan kesintiyi önlemek için) dengelemektir.
- SAS başlangıç zamanına dikkat edin: SAS'nin başlangıç zamanını şu anda olarak ayarlarsanız, saat dengesizliği (farklı makinelere göre geçerli saat farklılıkları) nedeniyle ilk birkaç dakika boyunca aralıklı olarak hatalar gözlemlenebilir. Genel olarak, başlangıç zamanını geçmişte en az 15 dakika olacak şekilde ayarlayın. Ya da bunu hiç ayarlamayın; bu da her durumda hemen geçerli olmasını sağlar. Aynı durum genellikle süre sonu süresi için de geçerlidir. Herhangi bir istekte her iki yönde de 15 dakikaya kadar saat dengesizliği gözlemleyebilirsiniz.
- Erişilecek kaynağa özgü olun: Güvenlik açısından en iyi yöntem, kullanıcıya gerekli en düşük ayrıcalıkları sağlamaktır. Bir kullanıcının tek bir varlığa yalnızca okuma erişimine ihtiyacı varsa, o kullanıcıya bu tek varlığa okuma erişimi verin ve tüm varlıklara okuma/yazma/silme erişimi vermeyin. Ayrıca SAS bir saldırganın elinde daha az güç olduğundan SAS tehlikeye atılırsa zararın daha az olmasına da yardımcı olur.
- Her zaman SAS kullanmayın: Bazen Event Hubs'ınıza yönelik belirli bir işlemle ilişkili riskler SAS'nin avantajlarından daha fazladır. Bu tür işlemler için iş kuralı doğrulaması, kimlik doğrulaması ve denetimden sonra olay hub'larınıza yazan bir orta katman hizmeti oluşturun.
- Her zaman HTTP'leri kullanın: SAS oluşturmak veya dağıtmak için her zaman Https kullanın. BIR SAS HTTP üzerinden geçirilirse ve araya girilirse, ortadaki adam saldırısı gerçekleştiren bir saldırgan SAS'yi okuyabilir ve daha sonra hassas verilerin güvenliğini tehlikeye atabilir veya kötü amaçlı kullanıcının veri bozulmasına izin vererek sas'ı hedeflenen kullanıcının kullandığı gibi kullanabilir.
Sonuç
Paylaşım erişim imzaları, istemcilerinize Event Hubs kaynaklarına sınırlı izinler sağlamak için kullanışlıdır. Azure Event Hubs kullanan tüm uygulamalar için güvenlik modelinin önemli bir parçasıdır. Bu makalede listelenen en iyi yöntemleri izlerseniz, uygulamanızın güvenliğinden ödün vermeden kaynaklarınıza daha fazla erişim esnekliği sağlamak için SAS kullanabilirsiniz.
İlgili içerik
Aşağıdaki ilgili makalelere bakın:
- Paylaşılan Erişim İmzalarını kullanarak Azure Event Hubs'a yönelik isteklerin kimliğini doğrulama
- Microsoft Entra Id kullanarak bir uygulamadan Azure Event Hubs'a yönelik isteklerin kimliğini doğrulama
- Event Hubs Kaynaklarına erişmek için Microsoft Entra Id ile yönetilen kimliğin kimliğini doğrulama