Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Paylaşılan Erişim İmzası (SAS), depolama hesabınızdaki kaynaklara güvenli, yetkilendirilmiş erişim sağlar. SAS ile, istemcilerin verilerinize nasıl erişim sağladığı üzerinde detaylı kontrole sahipsiniz. Örneğin:
- Kullanıcı hangi kaynaklara erişebilir.
- Bu kaynaklar için sahip oldukları izinler.
- SAS'nin geçerli olduğu süre.
Paylaşılan erişim imzası türleri
Azure Storage üç tür paylaşılan access imzayı destekler:
Önemli
Paylaşılan erişim imzalarının kullanıldığı senaryolar için Microsoft, kullanıcı yetkilendirme SAS'sı kullanmanızı önerir. "Hesap anahtarı yerine Microsoft Entra kimlik bilgileriyle güvence altına alınan bir kullanıcı yetkilendirme SAS'si, üstün güvenlik sağlar." Veri erişimi yetkilendirmesi hakkında daha fazla bilgi için bkz. Azure Depolama'daki verilere erişimi yetkilendirme.
Kullanıcı temsilcisi SAS
Kullanıcı temsilcisi SAS'ın güvenliği, Microsoft Entra kimlik bilgileri ile ve SAS için tanımlanan izinlerle sağlanır. Kullanıcı temsilcisi SAS'i Blob Storage (Data Lake Storage ve dfs uç noktaları dahil), Kuyruk Depolama, Tablo Depolama veya Azure Files için desteklenir.
Kullanıcı temsilinde SAS hakkında daha fazla bilgi için bkz Kullanıcı temsilinde SAS oluşturma (REST API).
SAS Hizmeti
Bir hizmet SAS’si, depolama hesabı anahtarıyla güvence altına alınır. Azure Storage hizmetlerinden yalnızca birinde bir kaynağa erişimi devreden bir hizmet SAS'si: Blob Depolama (Data Lake Storage ve dfs uç noktaları dahil), Kuyruk Depolama, Tablo Depolama veya Azure Dosyaları.
Hizmet SAS hakkında daha fazla bilgi için bkz: Hizmet SAS'i (REST API) oluşturma.
Hesap SAS'i
SAS hesabı depolama hesabı anahtarıyla güvence altına alınır. Hesap SAS, bir veya daha fazla depolama hizmetindeki kaynaklara erişim sağlar. Bir hizmet veya kullanıcı temsilcisi SAS'i aracılığıyla kullanılabilen tüm işlemler, hesap SAS'i aracılığıyla da kullanılabilir.
Aşağıdakilere erişim iznini de devredebilirsiniz:
- Hizmet düzeyi işlemleri (Örneğin, Hizmet Özelliklerini Al/Ayarla ve Hizmet İstatistiklerini Al işlemleri).
- Okuma, yazma ve silme işlemleri Hizmet SAS ile yapılamayan işlemlerdir.
Hesap SAS'i hakkında daha fazla bilgi için Hesap SAS (REST API) oluşturma.
Paylaşılan access imzası aşağıdaki iki biçimden birini alabilir:
- Geçici SAS. Geçici bir SAS oluşturduğunuzda, SAS URI'sinde başlangıç saati, süre sonu süresi ve izinler belirtilir. Herhangi bir SAS türü geçici bir SAS olabilir.
- depolama erişim ilkesiyle Service SAS. Saklanan erişim politikası, blob kapsayıcısı, tablo, kuyruk veya dosya paylaşımı olabilecek bir kaynak kapsayıcısı üzerinde tanımlanır. Depolanan erişim ilkesi, bir veya daha fazla hizmet paylaşımlı erişim imzasının kısıtlamalarını yönetmek için kullanılabilir. Bir hizmet SAS'sini depolanan access ilkesiyle ilişkilendirdiğinizde SAS, depolanan access ilkesi için tanımlanan kısıtlamaları (başlangıç saati, süre sonu süresi ve izinler) devralır.
Not
Kullanıcı temsilcisi SAS'i veya hesap SAS'sinin geçici bir SAS olması gerekir. Depolanan erişim ilkeleri, kullanıcı devri SAS'i veya hesap SAS'i için desteklenmez.
Paylaşılan access imzası nasıl çalışır?
Paylaşılan access imzası, bir Azure Storage kaynağı için URI'ye eklenen bir belirteçtir. Kaynaklara istemci tarafından nasıl erişilebileceğini gösteren özel bir sorgu parametreleri kümesi içeren belirteç. Sorgu parametrelerinden biri olan imza, SAS parametrelerinden oluşturulur ve SAS'yi oluşturmak için kullanılan anahtarla imzalanır. Bu imza, depolama kaynağına erişimi yetkilendirmek için Azure Storage tarafından kullanılır.
Not
SAS belirteçlerinin oluşturulmasını denetlemek mümkün değildir. Hesap anahtarını kullanarak veya bir Azure rol ataması aracılığıyla SAS belirteci oluşturma ayrıcalıklarına sahip olan tüm kullanıcılar, storage hesabının sahibinin bilgisi olmadan bunu yapabilir. Kullanıcıların SAS belirteçleri oluşturmasına izin veren izinleri kısıtlamaya dikkat edin. Kullanıcıların blob ve kuyruk iş yükleri için hesap anahtarıyla imzalanan bir SAS oluşturmasını önlemek için Paylaşılan Anahtar erişimini depolama hesabına engelleyebilirsiniz. Daha fazla bilgi için bkz . Paylaşılan Anahtar ile yetkilendirmeyi engelleme.
SAS imzası ve yetkilendirmesi
SAS belirtecini kullanıcı temsilci anahtarıyla veya storage hesap anahtarıyla (Paylaşılan Anahtar) imzalayabilirsiniz.
SAS belirteci kullanarak kullanıcı temsil anahtarını imzalama
Sas belirtecini, Microsoft Entra kimlik bilgileri kullanılarak oluşturulmuş bir kullanıcı temsilcisi anahtarı kullanarak imzalayabilirsiniz. Kullanıcı temsilcisi SAS'i, kullanıcı temsilcisi anahtarıyla imzalanır.
Anahtarı almak ve sas oluşturmak için bir Microsoft Entra güvenlik sorumlusuna Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey eylemini içeren bir Azure rolü atanmalıdır. Daha fazla bilgi için Kullanıcı temsilcisi SAS'i (REST API) oluşturma bölümüne bakın.
SAS jetonunu hesap anahtarıyla imzalama
Hem hizmet SAS'i hem de hesap SAS'i, depolama hesap anahtarı ile imzalanmıştır. Hesap anahtarıyla imzalanan bir SAS oluşturmak için bir uygulamanın hesap anahtarına access olması gerekir.
bir istek SAS belirteci içerdiğinde, bu istek SAS belirtecinin nasıl imzalandığına göre yetkilendirilmiştir. SAS belirteci oluşturmak için kullandığınız access anahtarı veya kimlik bilgileri, SAS'ye sahip bir istemciye access vermek için Azure Storage tarafından da kullanılır.
Aşağıdaki tabloda her SAS belirteci türünün nasıl yetkilendirilmiş olduğu özetlenmiştir.
| SAS türü | Yetkilendirme türü |
|---|---|
| Kullanıcı temsilcisi SAS | Microsoft Entra ID |
| SAS Hizmeti | Paylaşılan Anahtar |
| Hesap SAS'i | Paylaşılan Anahtar |
Microsoft, üstün güvenlik için mümkün olduğunda bir kullanıcı temsilcisi SAS kullanmanızı önerir.
SAS belirteci
SAS belirteci, örneğin Azure Storage istemci kitaplıklarından birini kullanarak istemci tarafında oluşturduğunuz bir dizedir. SAS belirteci hiçbir şekilde Azure Storage tarafından izlenmez. İstemci tarafında sınırsız sayıda SAS belirteci oluşturabilirsiniz. SAS oluşturduktan sonra, depolama hesabınızdaki kaynaklara erişim gerektiren istemci uygulamalarına dağıtabilirsiniz.
İstemci uygulamaları, isteğin bir parçası olarak Azure Storage için SAS URI'sini sağlar. Ardından hizmet SAS parametrelerini ve imzayı denetleerek geçerli olduğunu doğrular. Hizmet imzanın geçerli olduğunu doğrularsa istek yetkilendirilmiş olur. Aksi takdirde istek 403 (Yasak) hata koduyla reddedilir.
Burada kaynak URI'sini, sınırlayıcı karakterini ('?') ve SAS belirtecini gösteren bir hizmet SAS URI'sine örnek verilmiş.
Not
Sorgu dizesinin sınırlayıcı karakteri ('?') SAS belirtecinin bir parçası değil. Portal, PowerShell, Azure CLI veya Azure Storage SDK'larından birinden SAS belirteci oluşturursanız, sınırlayıcı karakterini kaynak URL'sine eklemeniz gerekebilir.
Paylaşılan access imzası ne zaman kullanılır?
Depolama hesabınızdaki kaynaklara aksi takdirde izinleri olmayan herhangi bir kullanıcıya/güvenli erişim sağlamak için bir SAS kullanın.
SAS'nin yararlı olduğu yaygın bir senaryo, kullanıcıların kendi verilerini okuyup storage hesabınıza yazdığı bir hizmettir. bir storage hesabının kullanıcı verilerini depoladığı bir senaryoda iki tipik tasarım deseni vardır:
İstemciler, kimlik doğrulamasını yapan ön uç ara sunucu hizmeti üzerinden verileri karşıya yükleyip indirirler. Bu ön uç proxy hizmeti, iş kurallarının doğrulanmasına olanak tanır. Ancak büyük miktarda veri veya yüksek hacimli işlemler için talebi karşılayacak şekilde ölçeklenebilen bir hizmet oluşturmak pahalı veya zor olabilir.
Basit bir hizmet gerektiğinde istemcinin kimliğini doğrular ve ardından bir SAS oluşturur. İstemci uygulaması SAS'yi aldıktan sonra depolama hesabı kaynaklarına doğrudan erişebilir. Access izinleri SAS tarafından ve SAS tarafından izin verilen aralık için tanımlanır. SAS tüm verileri ön uç ara sunucu hizmetiyle yönlendirme gereksinimini azaltır.
Birçok gerçek dünya hizmeti bu iki yaklaşımın karma sürümünü kullanabilir. Örneğin, bazı veriler ön uç ara sunucusu aracılığıyla işlenebilir ve doğrulanabilir. Diğer veriler doğrudan SAS kullanılarak kaydedilir ve/veya okunur.
Ayrıca, belirli senaryolarda kopyalama işlemi sırasında kaynak nesneye erişimi yetkilendirmek için bir SAS gereklidir.
- Bir blobu farklı bir storage hesabında bulunan başka bir bloba kopyaladığınızda. İsteğe bağlı olarak hedef bloba erişim yetkilendirmesi yapmak için SAS kullanabilirsiniz.
- Bir dosyayı farklı bir storage hesabında bulunan başka bir dosyaya kopyaladığınızda. İsteğe bağlı olarak hedef dosyaya access yetkilendirmek için sas kullanabilirsiniz.
- Bir blobu bir dosyaya veya bir dosyayı bloba kopyaladığınızda. Kaynak ve hedef nesneler aynı storage hesabı içinde olsa bile SAS kullanmanız gerekir.
SAS kullanırken en iyi uygulamalar
Uygulamalarınızda paylaşılan access imzaları 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 storage hesabı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 access imzalarını kullanmaya yönelik aşağıdaki öneriler bu risklerin azaltılmasına yardımcı olabilir:
SAS oluşturmak veya dağıtmak için her zaman HTTPS kullanın. SAS, HTTP üzerinden iletilir ve ele geçirilirse, ortadaki adam saldırısı yapan bir saldırgan SAS'i okuyabilir. Daha sonra bu SAS'yi hedeflenen kullanıcının kullanabildiği gibi kullanabilirler. Bu, hassas verilerin güvenliğini tehlikeye atabilir veya kötü amaçlı kullanıcının veri bozulmasına izin verebilir.
Mümkün olduğunda kullanıcı temsilci SAS'sini kullanın. Kullanıcı temsilcisi SAS,hizmet SAS'sine veya hesap SAS'sine üstün güvenlik sağlar. Kullanıcı temsilcisi SAS'sinin güvenliği Microsoft Entra kimlik bilgileriyle sağlanır, böylece hesap anahtarınızı kodunuzla depolamanız gerekmez.
SAS için bir iptal planına sahip olun. SAS'nin gizliliği ihlal edilirse yanıt vermeye hazır olduğunuzdan emin olun.
SAS süre sonu ilkesini depolama hesabı için yapılandırın. SAS süre sonu ilkesi, SAS'nin geçerli olduğu önerilen aralığı belirtir. SAS süre sonu ilkeleri hizmet SAS'sine veya hesap SAS'sine uygulanır. Kullanıcı, önerilen aralıktan daha büyük geçerlilik aralığına sahip bir hizmet SAS'ı veya hesap SAS'sini oluşturduğunda bir uyarı görür. Azure İzleyici ile Azure Storage günlüğe kaydı etkinleştirildiyse, Azure Storage günlüklerine bir giriş yazılır. Daha fazla bilgi edinmek için bkz. Paylaşılan erişim imzaları için son kullanma politikası oluşturma.
Hizmet SAS'si için depolanan bir erişim ilkesi oluşturun. Depolanan erişim ilkeleri, depolama hesabı anahtarlarını yeniden oluşturmak zorunda kalmadan bir hizmet SAS'inin izinlerini iptal etme seçeneği sağlar. Süre sonunu çok ileri bir geleceğe (veya sonsuza) ayarlayın ve daha ileriye taşımak için düzenli olarak güncellendiğinden emin olun. Kapsayıcı başına beş depolanmış erişim ilkesi sınırı vardır.
Belirli bir amaç için yaratılmış bir SAS hizmeti ya da hesap SAS üzerinde kısa vadeli son kullanma süreleri kullanın. Bu şekilde, sas güvenliği aşılmış olsa bile, bu yalnızca kısa bir süre için geçerlidir. Depolanan bir erişim politikasına başvuramıyorsanız bu uygulama özellikle önemlidir. Yakın vadeli süre sonu süreleri, bloba yüklenebilecek süreyi sınırlayarak bloba yazılabilecek veri miktarını da sınırlar.
gerekirse istemcilerin SAS'yi otomatik olarak yenilemesini sağlayın. İstemcilerin, SAS'yi sağlayan hizmetin kullanılamama ihtimaline karşı yeniden denemeler için zaman tanıyabilmek amacıyla SAS'yi süre dolmadan önce yenilemeleri önerilir. Bazı durumlarda bu gereksiz olabilir. Örneğin, SAS'nin az sayıda anlık, kısa süreli işlem için kullanılmasını isteyebilirsiniz. Bu işlemlerin son kullanma süresi içinde tamamlanması beklenir. Sonuç olarak SAS'nin yenilenmesini beklemiyorsunuz. Ancak, SAS aracılığıyla düzenli olarak istekte bulunan bir istemciniz varsa, süre sonu olasılığı devreye girer.
SAS başlangıç zamanına dikkat edin. SAS'nin başlangıç saatini geçerli saate ayarlarsanız, ilk birkaç dakika boyunca aralıklı olarak hatalar oluşabilir. Bunun nedeni, farklı makinelerin geçerli zamanlarının biraz farklı olmasıdır (saat dengesizliği olarak bilinir). Genel olarak, başlangıç zamanını geçmişte en az 15 dakika olacak şekilde ayarlayın. Ya da hiç ayarlamayın; bu da her durumda hemen geçerli olmasını sağlar. Aynı durum genellikle son kullanma süresi için de geçerlidir--unutmayın ki herhangi bir talebinizde her iki yönde de 15 dakikaya kadar saat dengesizliği gözlemleyebilirsiniz. 2012-02-12 tarihinden önce bir REST sürümünü kullanan istemciler için, kaydedilmiş erişim ilkesine başvurmayan bir SAS için maksimum süre 1 saattir. 1 saatten uzun bir süre belirten ilkeler başarısız olur.
SAS tarih saat biçimine dikkat edin. Bazı yardımcı programlar (azCopy gibi) için tarih/saat değerleri '+%Y-%m-%dT%H:%M:%SZ' olarak biçimlendirilmelidir. Bu biçim özellikle saniyeleri içerir.
SAS ile mümkün olan en düşük ayrıcalıkları verin. En iyi güvenlik uygulaması, kullanıcıya mümkün olan en az kaynak için gereken en düşük ayrıcalıkları sağlamaktır. Mümkün olduğunda Salt Okunur SAS kullanın. Bir kullanıcının tek bir nesneye yalnızca okuma erişimi ihtiyacı varsa, o kullanıcıya o tek nesneye okuma erişimi verin ve tüm nesnelere okuma/yazma/silme erişimi vermeyin. Bu, SAS'nin saldırganın elinde daha az güç olduğundan SAS'nin gizliliğinin tehlikeye düşmesi durumunda da zararın daha az olmasına yardımcı olur.
Bir kaynağa erişen istemcileri belirlemenin doğrudan bir yolu yoktur. Ancak, erişimi izlemek için SAS'deki benzersiz alanları, imzalı IP (
sip), imzalı başlangıç (st) ve imzalı süre sonu (se) alanlarını kullanabilirsiniz. Örneğin, benzersiz bir süre sonu süresine sahip bir SAS belirteci oluşturabilir ve bu belirtecin verildiği istemciyle bağıntı oluşturabilirsiniz.Hesabınızın SAS aracılığıyla da dahil olmak üzere tüm kullanımlar için faturalandırılacağını anlayın. Bir bloba yazma access sağlarsanız, kullanıcı 200 GB blob yüklemeyi seçebilir. Onlara okuma izni de verdiyseniz, 10 kez indirmeyi seçebilirler ve bu da sizin için çıkış maliyetlerinde 2 TB'lık bir maliyete neden olabilir. Yine, kötü amaçlı kullanıcıların olası eylemlerini azaltmaya yardımcı olmak için sınırlı izinler sağlayın. Bu tehdidi azaltmak için kısa süreli SAS kullanın (ancak bitiş zamanında saat dengesizliği konusunda dikkatli olun).
SAS kullanarak yazılan verileri doğrulayın. İstemci uygulaması storage hesabınıza veri yazdığında, bu verilerle ilgili sorunlar olabileceğini unutmayın. Verileri doğrulamayı planlıyorsanız, veriler yazıldıktan sonra ve uygulamanız tarafından kullanılmadan önce bu doğrulamayı gerçekleştirin. Bu uygulama ayrıca, SAS'yi düzgün bir şekilde edinen bir kullanıcı veya sızdırılan sas'tan yararlanan bir kullanıcı tarafından hesabınıza yazılan bozuk veya kötü amaçlı verilere karşı da koruma sağlar.
SAS'i ne zaman kullanmamanız gerektiğini bilin. Bazen storage hesabınıza yönelik belirli bir işlemle ilişkili riskler SAS kullanmanın avantajlarından daha fazladır. Bu tür işlemler için iş kuralı doğrulama, kimlik doğrulaması ve denetim gerçekleştirdikten sonra storage hesabınıza yazan bir orta katman hizmeti oluşturun. Ayrıca, bazen erişimi başka şekillerde yönetmek daha kolaydır. Örneğin, kapsayıcıdaki tüm blobları genel olarak okunabilir hale getirmek istiyorsanız, erişim için her bir istemciye SAS sağlamak yerine kapsayıcıyı Genel yapabilirsiniz.
uygulamanızı izlemek için Azure İzleyici ve Azure Storage günlüklerini kullanın. SAS sağlayıcı hizmetinizdeki bir kesinti nedeniyle yetkilendirme hataları oluşabilir. Bunlar, yanlışlıkla depolanan bir erişim politikasının silinmesinden de kaynaklanabilir. Bu tür yetkilendirme hatalarında ani artışları gözlemlemek için Azure İzleyici ve storage analytics günlüğü kullanabilirsiniz. Daha fazla bilgi için, Azure İzleyici'deki Azure Storage ölçümleri ve Azure Storage Analytics günlük kaydı konularına bakın.
Depolama hesabı için bir SAS son kullanma ilkesi yapılandırın. En iyi yöntemler, bir SAS'nin gizliliğinin tehlikeye atılması durumunda aralığı sınırlamanızı önerir. Depolama hesaplarınız için bir SAS sona erme politikası ayarlayarak, kullanıcı bir hizmet SAS'ı veya hesap SAS'ı oluşturduğunda önerilen bir üst sona erme sınırı sağlayabilirsiniz. Daha fazla bilgi için bkz. Paylaşılan erişim imzaları için bir süre sonu politikası oluşturma.
Not
Storage, bir storage hesabı için oluşturulan paylaşılan access imzalarının sayısını izlemez ve hiçbir API bu ayrıntıyı sağlayamaz. Bir depolama hesabı için oluşturulan paylaşılan erişim imzalarının sayısını öğrenmeniz gerekiyorsa, sayısını manuel olarak takip etmelisiniz.
SAS ile Başlayın
Paylaşılan erişim imzalarına başlamak için SAS türlerinin her biri için aşağıdaki makalelere göz atın.
Kullanıcı temsilcisi SAS
- PowerShell ile bir kapsayıcı veya blob için kullanıcı temsilcisi SAS oluşturma
- Azure CLI ile bir kapsayıcı veya blob için bir kullanıcı delege SAS'i oluşturma
- < c0 >.NET kullanarak bir kapsayıcı veya blob için kullanıcı delegesi SAS oluşturma< /c0 >
- Python ile bir kapsayıcı veya blob için kullanıcı temsilcisi SAS oluşturma
- JavaScript ile bir kapsayıcı veya blob için kullanıcıya özel delegasyon SAS'si oluşturma
- Java ile bir kapsayıcı veya blob için kullanıcı temsilcisi SAS oluşturma
SAS Hizmeti
- Bir kapsayıcı veya blob için hizmet SAS'si .NET ile oluşturun
- Python ile kapsayıcı veya blob için hizmet SAS'i oluşturma
- JavaScript ile bir kapsayıcı veya blob için bir hizmet SAS'si oluşturun
- Java ile kapsayıcı veya blob için hizmet SAS'i oluşturma
Hesap SAS'i
- .NET ile hesap SAS oluşturun
- Python ile hesap SAS'si oluşturma
- JavaScript ile hesap SAS'si oluşturma
- Java ile SAS hesabı oluşturma