paylaşılan erişim imzalarını (SAS) kullanarak Azure Depolama kaynaklarına sınırlı erişim verme

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şe, üzerinde ayrıntılı denetim sahibi olursunuz. Örnek:

  • İstemcinin erişebileceği kaynaklar.

  • Bu kaynaklara sahip oldukları izinler.

  • SAS 'ın geçerli olduğu süre.

Paylaşılan erişim imzası türleri

Azure Depolama, üç tür paylaşılan erişim imzasını destekler:

  • Kullanıcı temsili SAS

  • Hizmet SAS

  • Hesap SAS

Kullanıcı temsili SAS

kullanıcı temsili sas, Azure Active Directory (Azure AD) kimlik bilgileriyle ve SAS için belirtilen izinlerle korunmaktadır. Kullanıcı temsili SAS yalnızca BLOB depolama için geçerlidir.

Kullanıcı temsili SAS hakkında daha fazla bilgi için bkz. Kullanıcı temsilcileri oluşturma SAS (REST API).

Hizmet SAS

Hizmet SAS, depolama hesabı anahtarıyla güvenli hale getirilir. hizmet SAS, azure Depolama hizmetlerinden yalnızca birindeki bir kaynağa erişim devreder: Blob depolama, kuyruk depolama, tablo depolama veya azure dosyaları.

Hizmet SAS hakkında daha fazla bilgi için bkz. HIZMET SAS oluşturma (REST API).

Hesap SAS

Bir hesap SAS, depolama hesabı anahtarıyla güvenli hale getirilir. Hesap SAS ise bir veya daha fazla depolama hizmetindeki kaynaklara erişim atar. Bir hizmet veya Kullanıcı temsili SAS aracılığıyla kullanılabilen tüm işlemler, hesap SAS 'si aracılığıyla da kullanılabilir.

Ayrıca aşağıdakilere erişim temsilciliğini de sağlayabilirsiniz:

  • Hizmet düzeyi işlemleri (örneğin, hizmet özelliklerini al/ayarla ve hizmet istatistikleri al işlemleri).

  • Hizmet SAS ile izin verilmeyen okuma, yazma ve silme işlemleri.

Hesap SAS 'si hakkında daha fazla bilgi için bir hesap SAS (REST API) oluşturun.

Not

Microsoft, Azure AD kimlik bilgilerini, daha kolay tehlikeye giren hesap anahtarını kullanmak yerine en iyi güvenlik uygulaması olarak mümkün olduğunca kullanmanızı önerir. Uygulama tasarımınız blob depolamaya erişim için paylaşılan erişim imzaları gerektirdiğinde, üstün güvenlik için mümkün olduğunda bir Kullanıcı temsili SAS oluşturmak için Azure AD kimlik bilgilerini kullanın. daha fazla bilgi için bkz. Azure Depolama verilere erişim yetkisi verme.

Paylaşılan erişim imzası aşağıdaki iki formdan birini alabilir:

  • Geçici SAS. Geçici SAS oluşturduğunuzda başlangıç saati, süre sonu zamanı ve izinler SAS URI 'sinde belirtilir. Her tür SAS bir geçici SAS olabilir.

  • Depolanan erişim Ilkesiyle HIZMET SAS. Depolanan erişim ilkesi, bir blob kapsayıcısı, tablo, kuyruk veya dosya paylaşma olabilecek bir kaynak kapsayıcısında tanımlanır. Depolanan erişim ilkesi, bir veya daha fazla hizmet paylaşılan erişim imzalarının kısıtlamalarını yönetmek için kullanılabilir. Bir hizmet SAS 'sini depolanan bir erişim ilkesiyle ilişkilendirdiğinizde, SAS, — — depolama erişim ilkesi için tanımlanan başlangıç zamanı, süre sonu zamanı ve izinleri devralır.

Not

Kullanıcı temsili SAS veya hesap SA 'ları bir geçici SAS olmalıdır. Depolanan erişim ilkeleri, Kullanıcı temsili SAS veya hesap SAS 'ları için desteklenmez.

Paylaşılan erişim imzasının nasıl çalıştığı

Paylaşılan erişim imzası, bir veya daha fazla depolama kaynağına işaret eden imzalı bir URI 'dir. URI, özel bir sorgu parametreleri kümesi içeren bir belirteç içerir. Belirteç, kaynaklara istemci tarafından nasıl erişildiğini gösterir. Sorgu parametrelerinden biri olan imza SAS parametrelerinden oluşturulur ve SAS 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. Bir SAS belirteci oluşturma ayrıcalıklarına sahip olan tüm kullanıcılar, hesap anahtarını veya bir Azure rolü atamasını kullanarak, depolama hesabının sahibi hakkında bilgi sahibi olmadan bunu yapabilir. Kullanıcıların SAS belirteçleri oluşturmasına izin veren izinleri kısıtlamak konusunda dikkatli olun. Kullanıcıların, blob ve kuyruk iş yükleri için hesap anahtarıyla imzalanmış bir SAS oluşturmasını önlemek için, depolama hesabına paylaşılan anahtar erişimine izin vermeyebilirsiniz. Daha fazla bilgi için bkz. paylaşılan anahtarla yetkilendirmeyi önleme.

SAS imzası ve yetkilendirme

Bir SAS belirtecini Kullanıcı temsili anahtarıyla veya depolama hesabı anahtarı (paylaşılan anahtar) ile imzalayabilirsiniz.

Bir Kullanıcı temsili anahtarıyla SAS belirtecini imzalama

bir SAS belirtecini, Azure Active Directory (Azure AD) kimlik bilgileri kullanılarak oluşturulan bir kullanıcı temsili anahtarı kullanarak imzalayabilirsiniz. Kullanıcı temsili SAS, Kullanıcı temsili anahtarıyla imzalanır.

Anahtarı almak ve daha sonra SAS oluşturmak için, bir Azure AD güvenlik sorumlusu, eylemi içeren bir Azure rolü atanmalıdır Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey . Daha fazla bilgi için bkz. Kullanıcı TEMSILI SAS (REST API) oluşturma.

Bir SAS belirtecini hesap anahtarıyla imzalama

Depolama hesabı anahtarıyla bir hizmet SAS ve hesap SAS 'si imzalanır. Hesap anahtarı ile imzalanmış bir SAS oluşturmak için, bir uygulamanın hesap anahtarına erişimi olması gerekir.

Bir istek bir SAS belirteci içerdiğinde, bu istek, SAS belirtecinin nasıl imzalandığını temel alarak yetkilendirilir. sas belirteci oluşturmak için kullandığınız erişim anahtarı veya kimlik bilgileri, sas 'ye sahip bir istemciye erişim vermek için Azure Depolama tarafından da kullanılır.

Aşağıdaki tabloda her bir SAS belirteci türünün nasıl yetkilendirildiği özetlenmektedir.

SAS türü Yetkilendirme türü
Kullanıcı temsili SAS (yalnızca BLOB depolama) Azure AD
Hizmet SAS Paylaşılan Anahtar
Hesap SAS Paylaşılan Anahtar

Microsoft, üstün güvenlik için mümkün olduğunda Kullanıcı temsili SAS kullanılmasını ö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 herhangi 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şmesi gereken istemci uygulamalarına dağıtabilirsiniz.

istemci uygulamaları, bir isteğin parçası olarak Azure Depolama SAS urı 'si sağlar. Daha sonra hizmet, geçerli olduğunu doğrulamak için SAS parametrelerini ve imzasını denetler. Hizmet imzanın geçerli olduğunu doğruladığında, istek yetkilendirilir. Aksi takdirde, istek 403 (yasak) hata koduyla reddedilir.

Kaynak URI ve SAS belirtecini gösteren bir Service SAS URI 'SI örneği aşağıda verilmiştir. SAS belirteci URI sorgu dizesini içerdiğinden, kaynak URI 'sinin ardından önce bir soru işareti gelmelidir, sonra SAS belirtecine göre:

Bir hizmet SAS URI 'SI bileşenleri

Paylaşılan erişim imzası ne zaman kullanılır?

Depolama hesabınızdaki kaynaklara güvenli erişim sağlamak için bir SAS kullanın, aksi takdirde bu kaynaklar için izinleri olmayan herhangi bir istemciye.

SAS 'ın yararlı olduğu yaygın bir senaryo, kullanıcıların depolama hesabınıza kendi verilerini okuacağı ve yazdıkları bir hizmettir. Depolama hesabının kullanıcı verilerini depoladığı bir senaryoda iki tipik tasarım deseni vardır:

  1. İ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 izin verir. Ancak büyük miktarlarda veri veya yüksek hacimli işlemler için, talebe uyacak şekilde ölçeklenebilen bir hizmet oluşturmak pahalı veya zor olabilir.

    Senaryo diyagramı: ön uç proxy hizmeti

  2. Basit bir hizmet gerektiğinde istemcinin kimliğini doğrular ve ardından bir SAS oluşturur. İstemci uygulaması SAS aldıktan sonra, depolama hesabı kaynaklarına doğrudan erişebilir. Erişim izinleri SAS tarafından ve SAS tarafından izin verilen aralığa göre tanımlanır. SAS tüm verileri ön uç ara sunucu hizmetiyle yönlendirme gereksinimini azaltır.

    Senaryo diyagramı: SAS sağlayıcı hizmeti

Birçok gerçek dünya hizmeti, bu iki yaklaşımın bir hibriti kullanabilir. Örneğin, bazı veriler ön uç ara sunucusu üzerinden işlenebilir ve doğrulanabilir. Diğer veriler SAS kullanılarak kaydedilir ve/veya doğrudan okunur.

Ayrıca, bazı senaryolarda kopyalama işlemi sırasında kaynak nesneye erişimi yetkilendirmek için sas gereklidir:

  • Bir blobu farklı bir depolama hesabında bulunan başka bir bloba kopyalayıp.

    İsteğe bağlı olarak, hedef bloba erişimi yetkilendirmek için de SAS kullanabilirsiniz.

  • Bir dosyayı farklı bir depolama hesabında bulunan başka bir dosyaya kopyalayıp.

    İsteğe bağlı olarak, hedef dosyaya erişimi yetkilendirmek için bir SAS de kullanabilirsiniz.

  • Bir blobu bir dosyaya veya bir dosyayı bir bloba kopyalayıp kopyalamanız gerekir.

    Kaynak ve hedef nesneler aynı depolama hesabında yer ala bile SAS kullanmalıdır.

SAS kullanırken en iyi uygulamalar

Uygulamalarınız üzerinde paylaşılan erişim imzaları kullanıyorken iki olası risk hakkında bilginiz olması gerekir:

  • SAS sızdırılırsa, onu alan herkes tarafından kullanılabilir ve bu da depolama hesabınıza zarar verme olasılığına neden olabilir.

  • İstemci uygulamasına sağlanan SAS'nin süresi dolsa ve uygulama hizmetinize yeni SAS alamasa, uygulamanın işlevselliği engel olabilir.

Paylaşılan erişim imzalarını kullanmaya yönelik aşağıdaki öneriler bu riskleri azaltmak için yardımcı olabilir:

  • SAS oluşturmak veya dağıtmak için her zaman HTTPS kullanın. SAS HTTP üzerinden geçir geçirildi ve araya alındı, ortadaki adam saldırısı gerçekleştiren bir saldırgan SAS'ı okuyabilir. Ardından, bu SAS'ı hedeflenen kullanıcının sahip olduğu gibi kullanabilirler. Bu, hassas verilerin güvenliğini tehlikeye atarak veya kötü amaçlı kullanıcının veri bozulmasına neden olabilir.

  • Mümkün olduğunda bir kullanıcı temsilcisi SAS kullanın. Kullanıcı temsilcisi SAS,hizmet SAS'lerine veya hesap SAS'lerine karşı üstün güvenlik sağlar. Kullanıcı temsilcisi SAS'leri Azure AD kimlik bilgileriyle güvenli hale getirildi. Böylece, hesap anahtarınızı kodunuzla depolamanız gerekmaz.

  • SAS için bir iptal planınız vardır. SAS'nin güvenliği ihlal edilmişse yanıt vermeye hazır olduğundan emin olun.

  • Hizmet SAS'ı için depolanmış erişim ilkesi tanımlama. Depolanan erişim ilkeleri, depolama hesabı anahtarlarını yeniden oluşturmadan hizmet SAS izinlerini iptal etme seçeneği sunar. Bu süre sonu, gelecekte (veya sonsuzda) çok uzak olacak şekilde ayarlayın ve bunu daha ileri taşımak için düzenli olarak güncelleştirildiğinden emin olun.

  • Geçici sas hizmeti SAS'leri veya hesap SAS'leri için yakın dönem sona erme sürelerini kullanın. Bu şekilde SAS'nin güvenliği ihlal edilmiş olsa bile yalnızca kısa bir süre geçerlidir. Bu uygulama, depolanmış erişim ilkesine başvuramazsanız özellikle önemlidir. Yakın dönem sona erme süreleri, bloba yüklenilen süre sınırlaması ile bir bloba yazılacak veri miktarını da sınırlar.

  • Gerekirse istemcilerin SAS'i otomatik olarak yenilemelerini sağlamak. SAS sağlayan hizmet kullanılamıyorsa yeniden denemeler için zaman sağlamak amacıyla istemcilerin SAS süresinin dolmadan önce iyi yenilemesi gerekir. Bazı durumlarda bu gereksiz olabilir. Örneğin, SAS'nin az sayıda anlık, kısa süreli işlem için kullanılmaktadır. Bu işlemlerin süre sonu içinde tamamlanması beklenir. Sonuç olarak, SAS'nin yenilenmesi beklenmiyor. Ancak SAS aracılığıyla düzenli olarak istek yapan bir istemciniz varsa süre sonu olasılığı devreye girer.

  • SAS başlangıç saati konusunda dikkatli olun. SAS için başlangıç saati olarak geçerli saat olarak ayarlanırsa, hatalar ilk birkaç dakika aralıklı olarak oluşabilir. Bunun nedeni, farklı makinelerin geçerli saatleri biraz farklı olmasıdır (saat eğriltme olarak bilinir). Genel olarak, başlangıç saati geçmişte en az 15 dakika olacak şekilde ayarlayın. Veya bunu hiç ayarlamayın; bu da her durumda hemen geçerli hale gelecektir. Aynı durum genellikle sona erme zamanı için de geçerlidir. Herhangi bir istekte her iki yönde de 15 dakikaya kadar saat eğriltme gözlemleyydnzin. 2012-02-12'den önceki bir REST sürümünü kullanan istemciler için, depolanan erişim ilkesine başvurul olmayan 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 biçimlerinin '+%Y-%m-%dT%H:%M:%SZ' olması gerekir. Bu biçim özellikle saniyeleri içerir.

  • Erişilen kaynağa özgü olması gerekir. Bir kullanıcıya gereken en düşük ayrıcalıkları sağlamak en iyi güvenlik uygulamasıdır. Bir kullanıcının tek bir varlığa yalnızca okuma erişimine ihtiyacı varsa, kullanıcıya bu tek varlığa okuma erişimi ve tüm varlıklara okuma/yazma/silme erişimi verilmez. Bu ayrıca SAS'nin saldırganların elinde daha az güç olduğu için SAS'nin güvenliği tehlikeye atılmışsa zarar daha az olur.

  • SAS aracılığıyla dahil olmak üzere tüm kullanımlar için hesabınıza faturalandırılamayacaklarını anlıyoruz. Bloba yazma erişimi sağlarsanız, kullanıcı 200 GB'lık bir blobu karşıya yükleyebilir. Okuma erişimi de verdiysanız, bu erişimi 10 kez indirmeyi seçebilir ve bu da sizin için 2 TB çıkış maliyetine neden olabilir. Yine kötü amaçlı kullanıcıların olası eylemlerini azaltmak için sınırlı izinler verin. Bu tehdidi azaltmak için kısa süreli SAS kullanın (ancak bitiş zamanında saat eğriltmelerini de dikkatin).

  • SAS kullanarak yazılan verileri doğrulama. İstemci uygulaması depolama hesabınıza veri yazdığında, bu verilerle ilgili sorunlar olduğunu unutmayın. Verileri doğrulamayı planlıyorsanız, veriler yazıldığı ve uygulamanız tarafından kullanılmadan önce bu doğrulamayı gerçekleştirin. Bu uygulama ayrıca, SAS'ı düzgün bir şekilde alan bir kullanıcı veya sızdırılan SAS'den yararlanan bir kullanıcı tarafından hesabınıza yazılmış bozuk veya kötü amaçlı verilere karşı da koruma sağlar.

  • SAS kullanmama zamanlarını bilmek. Bazen depolama hesabınıza karşı belirli bir işlemle ilişkili riskler SAS kullanmanın avantajlarına ağır basıyor olabilir. 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 farklı şekillerde yönetmek daha kolaydır. Örneğin, bir kapsayıcıda yer alan tüm blobları genel olarak okunabilir yapmak için her istemciye erişim için sas sağlamak yerine kapsayıcıyı Genel hale abilirsiniz.

  • Uygulamanızı Azure İzleyici için azure Depolama günlüklerini kullanın. YETKILENDIRME hataları SAS sağlayıcı hizmetinizin kesintisi nedeniyle oluşabilir. Depolanmış erişim ilkesi yanlışlıkla kaldırılandan da oluşabilir. Bu tür yetkilendirme Azure İzleyici ani artışları gözlemlemek için depolama ve depolama analizi günlüğünü kullanabilirsiniz. Daha fazla bilgi için bkz. Depolama azure Azure İzleyici ölçümleri ve Azure Depolama Analytics günlüğü.

Not

Depolama, depolama hesabı için oluşturulan paylaşılan erişim imzalarının sayısını izlemez ve hiçbir API bu ayrıntıyı sağ tıklatın. Depolama hesabı için oluşturulan paylaşılan erişim imzalarının sayısını biliyorsanız, s numarayı el ile izlemeniz gerekir.

SAS Kullanmaya başlayın ile birlikte

Paylaşılan erişim imzaları ile çalışmaya başlama için her SAS türü için aşağıdaki makalelere bakın.

Kullanıcı temsilcisi SAS

Hizmet SAS'ı

Hesap SAS'ı

Sonraki adımlar