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 imzası (SAS), depolama hesabınızdaki kaynaklara güvenli temsilci erişimi sağlar. SAS ile, bir istemcinin verilerinize nasıl erişebileceği üzerinde ayrıntılı denetime sahipsiniz. Örneğin:
- İstemcinin erişebileceği kaynaklar.
- Bu kaynaklar için sahip oldukları izinler.
- SAS'nin geçerli olduğu süre.
Paylaşılan erişim imzası türleri
Azure Depolama üç tür paylaşılan erişim imzalarını destekler:
Önemli
Paylaşılan erişim imzalarının kullanıldığı senaryolar için Microsoft, kullanıcı temsilcisi SAS'sini 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'da 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, Blob Depolama ve Veri Gölü Depolama için desteklenir ve blob
uç noktalarına ve dfs
uç noktalarına yapılan çağrılar için kullanılabilir. Şu anda Kuyruk Depolama, Tablo Depolama veya Azure Dosyalar için desteklenmez.
Kullanıcı temsilinde SAS hakkında daha fazla bilgi için bkz Kullanıcı temsilinde SAS oluşturma (REST API).
SAS Hizmeti
Hizmet SAS'sinin güvenliği depolama hesabı anahtarıyla sağlanır. Bir hizmet SAS, Azure Depolama hizmetlerinden yalnızca birindeki kaynağa erişim yetkilendirir: 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
Bir hesap SAS'sinin güvenliği depolama hesabı anahtarıyla sağlanır. Hesap SAS, bir veya daha fazla depolama hizmetindeki kaynaklara erişimi devreder. 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.
Ayrıca, aşağıdakilere erişim temsilcisi de atayabilirsiniz:
- 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 erişim 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.
- Depolanan erişim ilkesine sahip hizmet SAS'i. Depolanan erişim ilkesi, 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şılan erişim imzasının kısıtlamalarını yönetmek için kullanılabilir. Bir hizmet SAS'sini depolanmış erişim ilkesiyle ilişkilendirdiğinizde SAS, depolanan erişim ilkesi için tanımlanan kısıtlamaları (başlangıç saati, süre sonu ve izinler) devralır.
Not
Kullanıcı temsilcisi SAS'i veya hesap SAS'sinin geçici bir SAS olması gerekir. Kullanıcı temsilcisi SAS veya hesap SAS için depolanan erişim ilkeleri desteklenmez.
Paylaşılan erişim imzası nasıl çalışır?
Paylaşılan erişim imzası, Azure Depolama kaynağının URI'sine 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 Depolama tarafından kullanılır.
Not
SAS belirteçlerinin oluşturulmasını denetlemek mümkün değildir. Hesap anahtarını kullanarak veya Azure rol ataması aracılığıyla SAS belirteci oluşturma ayrıcalıklarına sahip olan tüm kullanıcılar, depolama 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, Depolama hesabına Paylaşılan Anahtar erişimine izin verilmiyebilirsiniz. Daha fazla bilgi için bkz . Paylaşılan Anahtar ile yetkilendirmeyi engelleme.
SAS imzası ve yetkilendirmesi
SAS belirtecini kullanıcı temsilci anahtarıyla veya depolama hesabı 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
eylemi 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’ı hem de hesap SAS’ı, depolama hesabı anahtarıyla imzalanmıştır. Hesap anahtarıyla imzalanan bir SAS oluşturmak için uygulamanın hesap anahtarına erişimi olmalıdır.
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 erişim anahtarı veya kimlik bilgileri de Azure Depolama tarafından SAS'ye sahip bir istemciye erişim vermek için 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 (yalnızca Blob Depolama ve Data Lake Storage) | Microsoft Entra Kimlik |
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 Depolama istemci kitaplıklarından birini kullanarak istemci tarafında oluşturduğunuz bir dizedir. SAS belirteci Azure Depolama tarafından hiçbir şekilde 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 Depolama'ya 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. Portaldan, PowerShell'den, Azure CLI'dan veya Azure Depolama SDK'larından birinden SAS belirteci oluşturursanız, sınırlayıcı karakterini kaynak URL'sine eklemeniz gerekebilir.
Paylaşılan erişim imzası ne zaman kullanılır?
Depolama hesabınızdaki kaynaklara başka şekilde izinlere sahip olmayan tüm istemcilere güvenli erişim vermek için SAS kullanın.
SAS'nin yararlı olduğu yaygın bir senaryo, kullanıcıların kendi verilerini okuyup depolama hesabınıza yazdığı bir hizmettir. Depolama 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. Erişim 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 bir kopyalama işleminde kaynak nesneye erişimi yetkilendirmek için bir SAS gerekir:
- Bir blobu farklı bir depolama hesabında bulunan başka bir bloba kopyaladığınızda. İsteğe bağlı olarak, hedef bloba erişimi yetkilendirmek için sas kullanabilirsiniz.
- Bir dosyayı farklı bir depolama hesabında bulunan başka bir dosyaya kopyaladığınızda. İsteğe bağlı olarak, hedef dosyaya erişimi yetkilendirmek için de sas kullanabilirsiniz.
- Bir blobu bir dosyaya veya bir dosyayı bloba kopyaladığınızda. Kaynak ve hedef nesneler aynı depolama hesabında bulunsa bile SAS kullanmanız gerekir.
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 depolama 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 erişim imzalarını kullanmaya yönelik aşağıdaki öneriler bu riskleri azaltmaya 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.
Depolama hesabı için bir SAS süre sonu ilkesi 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 Depolama günlüğü etkinleştirildiyse, Azure Depolama günlüklerine bir giriş yazılır. Daha fazla bilgi edinmek için bkz . Paylaşılan erişim imzaları için süre sonu ilkesi oluşturma.
Hizmet SAS için saklı erişim ilkesi oluşturma. Depolanan erişim ilkeleri, depolama hesabı anahtarlarını yeniden oluşturmak zorunda kalmadan hizmet SAS'sinin izinlerini iptal etme seçeneği sunar. 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 ilkesine başvuramıyorsanız, bu uygulama yöntemi ö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 öncesi bir REST sürümü kullanan istemciler için, saklı bir erişim ilkesine bağlı olmayan bir SAS için en uzun 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şimine ihtiyacı varsa, bu 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 'yi (
sip
st
), imzalı başlangıç () 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 erişimi sağlarsanız, kullanıcı 200 GB blob yüklemeyi seçebilir. Onlara okuma erişimi de verdiyseniz, çıkış maliyetlerinde 2 TB tutarında masraf yaratarak veriyi 10 kez indirmeyi seçebilirler. 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. bir istemci uygulaması depolama 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 depolama 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ğrulaması, kimlik doğrulaması ve denetim gerçekleştirdikten sonra depolama hesabınıza yazan bir orta katman hizmeti oluşturun. Ayrıca, bazen erişimi başka yollarla yönetmek daha kolaydır. Örneğin, bir kapsayıcıdaki tüm blobları genel olarak okunabilir hale getirmek istiyorsanız, erişim için her istemciye SAS sağlamak yerine, kapsayıcıyı Genel olarak ayarlayabilirsiniz.
Uygulamanızı izlemek için Azure İzleyici ve Azure Depolama günlüklerini kullanın. SAS sağlayıcı hizmetinizdeki bir kesinti nedeniyle yetkilendirme hataları oluşabilir. Bunlar, saklı erişim ilkesinin yanlışlıkla kaldırılmasından da kaynaklanabilir. Bu tür yetkilendirme hatalarında ani artışları gözlemlemek için Azure İzleyici ve depolama analizi günlüğünü kullanabilirsiniz. Daha fazla bilgi için Azure Monitor'da Azure Depolama ölçümleri ve Azure Depolama Analizi günlüğü ifadelerine bakın.
Depolama hesabı için bir SAS süre sonu 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 süre sonu ilkesi ayarlayarak, kullanıcı bir hizmet SAS'ı veya hesap SAS'ı oluşturduğunda önerilen bir üst süre sonu sınırı sağlayabilirsiniz. Daha fazla bilgi için bkz . Paylaşılan erişim imzaları için süre sonu ilkesi oluşturma.
Not
Depolama, depolama hesabı için oluşturulan paylaşılan erişim imzalarının sayısını izlemez ve hiçbir API bu bilgiyi sağlayamaz. Depolama hesabı için oluşturulan paylaşılan erişim imzalarının sayısını bilmeniz gerekiyorsa, sayıyı el ile izlemeniz gerekir.
SAS ile çalışmaya başlama
Paylaşılan erişim imzalarını kullanmaya başlamak için her SAS türü için aşağıdaki makalelere bakın.
Kullanıcı temsilcisi SAS
- PowerShell ile kapsayıcı veya blob için kullanıcı temsilcisi SAS'i oluşturma
- Azure CLI ile kapsayıcı veya blob için kullanıcı temsilcisi SAS'i oluşturma
- .NET ile kapsayıcı veya blob için kullanıcı yetki devri SAS'i oluşturma
- Python ile kapsayıcı veya blob için kullanıcı temsilcisi SAS'i oluşturma
- JavaScript ile kapsayıcı veya blob için kullanıcı yetkilendirme SAS'i oluşturma
- Kapsayıcı veya blob için Java ile kullanıcı yetkilendirme SAS'i oluşturma
SAS Hizmeti
- Bir kapsayıcı veya blob için .NET ile SAS hizmeti 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'i oluşturma
- Python ile hesap SAS'i oluşturma
- JavaScript ile hesap SAS'i oluşturma
- Java ile hesap SAS'i oluşturma