Hizmet SAS’si oluşturma

Hizmet paylaşılan erişim imzası (SAS), depolama hizmetlerinden yalnızca birindeki kaynağa erişim yetkisi verir: Azure Blob Depolama, Azure Kuyruk Depolama, Azure Tablo Depolama veya Azure Dosyalar. Hizmet düzeyi SAS'nin URI'si, SAS'nin erişim yetkisi verdiği kaynağın URI'sini ve ardından SAS belirtecini oluşturur.

SAS belirteci, isteği yetkilendirmek için gereken tüm bilgileri içeren sorgu dizesidir. Belirteç, bir istemcinin erişebileceği kaynağı, verilen izinleri ve imzanın geçerli olduğu süreyi belirtir.

SAS ayrıca isteklerin kaynaklandığı desteklenen IP adresini veya adres aralığını, isteğin oluşturulabileceği desteklenen protokolü veya istekle ilişkili isteğe bağlı erişim ilkesi tanımlayıcısını da belirtebilir.

Son olarak, her SAS belirteci bir imza içerir.

Dikkat

Paylaşılan erişim imzaları, depolama kaynaklarına izin veren anahtarlardır ve bunları bir hesap anahtarını koruduğu gibi korumanız gerekir. SAS'yi kötü amaçlı veya istenmeyen kullanıma karşı korumak önemlidir. SAS dağıtırken takdire bağlılığı kullanın ve güvenliği aşılmış SAS'yi iptal etmek için bir planınız var. Paylaşılan erişim imzalarını kullanan işlemler yalnızca HTTPS bağlantısı üzerinden gerçekleştirilmeli ve SAS URI'leri yalnızca HTTPS gibi güvenli bir bağlantı üzerinde dağıtılmalıdır.

Hizmet SAS'si yetkilendirme

Depolama hesabı anahtarı kullanarak bir hesap SAS'sinin güvenliğini sağlarsınız. Hesap SAS'sini oluşturduğunuzda istemci uygulamanızın hesap anahtarına sahip olması gerekir.

Kapsayıcı veya blob için SAS güvenliğini sağlamak üzere Microsoft Entra kimlik bilgilerini kullanmak için kullanıcı temsilcisi SAS oluşturun.

Dizin kapsamlı erişim için hizmet SAS desteği

Yetkilendirme sürümü () 2020-02-10 veya üzeri olduğunda ve hiyerarşik ad alanı etkinleştirildiğinde hizmet SAS'i dizin kapsamını (sr=dsv) destekler. Dizin kapsamı () semantiği, kapsayıcı kapsamına ()sr=dsr=c benzer; tek farkı, erişimin bir dizinle ve içindeki tüm dosya ve alt dizinlerle sınırlı olmasıdır. Belirtildiğinde sr=dsdd sorgu parametresi de gereklidir.

Yetkilendirme sürümü 2020-02-10 için imzaya dize biçimi değişmemiştir.

Hizmet SAS'si oluşturma

Aşağıdaki görüntü, paylaşılan erişim imzası URI'sinin bölümlerini temsil eder. Gerekli parçalar turuncu renkte görünür. SAS belirtecini oluşturan alanlar sonraki bölümlerde açıklanmıştır.

Paylaşılan erişim imzası URL'sinin parametre öğelerinin diyagramı.

Aşağıdaki bölümlerde hizmet SAS belirtecini oluşturan parametrelerin nasıl belirtileceğini açıklanmaktadır.

signedVersion Alanı belirtin

signedVersion (sv) alanı, paylaşılan erişim imzasının hizmet sürümünü içerir. Bu değer, paylaşılan erişim imzası (alanda signature ) tarafından kullanılan Paylaşılan Anahtar yetkilendirme sürümünü belirtir. değeri, bu paylaşılan erişim imzası ile yapılan istekler için hizmet sürümünü de belirtir.

Paylaşılan erişim imzası aracılığıyla istekleri yürütürken hangi sürümün kullanıldığı hakkında bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.

Bu parametrenin paylaşılan erişim imzası ile yapılan isteklerin yetkilendirmesini nasıl etkilediği hakkında bilgi için bkz. Paylaşılan erişim imzası ile erişim temsilcisi atama.

Alan adı Sorgu parametresi Açıklama
signedVersion sv Gereklidir. 2012-02-12 ve sonraki sürümlerde desteklenir. Bu paylaşılan erişim imzası ile yaptığınız istekleri yetkilendirmek ve işlemek için kullanılacak depolama hizmeti sürümü. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.

Eski bir SAS isteğinin sürümünü belirleme

Kullanılmayan eski senaryolarda signedVersion , Blob Depolama sürümü belirlemek için kurallar uygular. Bu kurallar hakkında daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.

Önemli

İstemci yazılımından daha yeni bir depolama hizmeti sürümü kullanan bir paylaşılan erişim imzası URI'sini kullandığınızda istemci yazılımı beklenmeyen protokol davranışıyla karşılaşabilir. Paylaşılan erişim imzası URI'lerini oluşturan kod, depolama hizmeti istekleri yapan istemci yazılımı tarafından anlaşılan sürümlere güvenmelidir.

İmzalı kaynağı belirtme (yalnızca Blob Depolama)

Gerekli signedResource (sr) alanı, paylaşılan erişim imzası aracılığıyla erişilebilen kaynakları belirtir. Aşağıdaki tabloda SAS belirtecindeki bir bloba veya kapsayıcı kaynağına başvurma açıklanmaktadır.

Kaynak Parametre değeri Desteklenen sürümler Description
Blob b Tümü Blobun içeriğine ve meta verilerine erişim verir.
Blob sürümü Bv 2018-11-09 ve üzeri Blob sürümünün içeriğine ve meta verilerine erişim verir, ancak temel bloba erişim vermez.
Blob anlık görüntüsü Bs 2018-11-09 ve üzeri Blob anlık görüntüsünün içeriğine ve meta verilerine erişim verir, ancak temel bloba erişim vermez.
Kapsayıcı c Tümü Kapsayıcıdaki herhangi bir blobun içeriğine ve meta verilerine ve kapsayıcıdaki blobların listesine erişim verir.
Directory d 2020-02-10 ve üzeri Hiyerarşik ad alanı etkinleştirilmiş bir depolama hesabında dizindeki herhangi bir blobun içeriğine ve meta verilerine ve dizindeki blobların listesine erişim verir. Alan için signedResource bir dizin belirtilirse (signedDirectoryDepthsdd) parametresi de gereklidir. Dizin her zaman bir kapsayıcının içinde iç içe yerleştirilmiştir.

İmzalı kaynağı belirtme (Azure Dosyalar)

SAS, Azure Dosyalar sürüm 2015-02-21 ve üzeri için desteklenir.

alanı, signedResource paylaşılan erişim imzası aracılığıyla hangi kaynakların erişilebilir olduğunu belirtir. Aşağıdaki tabloda URI'de bir dosyaya veya paylaşım kaynağına başvurma açıklanmaktadır.

Alan adı Sorgu parametresi Açıklama
signedResource sr Gereklidir.

Paylaşılan kaynağın bir dosya olup olmadığını belirtin f . Bunun yapılması, dosyanın içeriğine ve meta verilerine erişim verir.

Paylaşılan kaynağın bir paylaşım olup olmadığını belirtin s . Bunu yaptığınızda, paylaşımdaki herhangi bir dosyanın içeriğine ve meta verilerine ve paylaşımdaki dizinler ve dosyalar listesine erişim izni verir.

Yanıt üst bilgilerini geçersiz kılmak için sorgu parametrelerini belirtme (Yalnızca Blob Depolama ve Azure Dosyalar)

Paylaşılan erişim imzası bir istekte kullanıldığında döndürülecek belirli yanıt üst bilgilerinin değerlerini tanımlamak için sorgu parametrelerinde yanıt üst bilgilerini belirtebilirsiniz. Bu özellik Blob Depolama için 2013-08-15 ve Azure Dosyalar için 2015-02-21 sürümü itibarıyla desteklenir. Bu özelliği kullanan paylaşılan erişim imzaları, Blob Depolama için veya Azure Dosyalar için veya üzeri için ayarlanan 2013-08-15 parametreyi 2015-02-21 içermelidirsv.

Yanıt üst bilgileri ve karşılık gelen sorgu parametreleri aşağıdaki tabloda listelenmiştir:

Yanıt üst bilgisi adı Karşılık gelen SAS sorgu parametresi
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Örneğin, sorgu parametresini rsct=binary 2013-08-15 veya sonraki bir sürümle oluşturulmuş bir paylaşılan erişim imzasıyla Content-Type belirtirseniz, yanıt üst bilgisi olarak binaryayarlanır. Bu değer, yalnızca bu paylaşılan erişim imzasını Content-Type kullanan bir istek için blob için depolanan üst bilgi değerini geçersiz kılar.

Yanıt üst bilgilerini sorgu parametreleri olarak belirten bir paylaşılan erişim imzası oluşturursanız, bunları imza dizesini oluşturmak için kullanılan imza dizesine eklemeniz gerekir. Daha fazla bilgi için bu makalenin devamında yer alan "İmza dizesini oluşturma" bölümüne bakın. Ek örnekler için bkz . Hizmet SAS örnekleri.

Tablo adını belirtin (yalnızca Tablo Depolama alanı)

alanı tableName , paylaşacak tablonun adını belirtir.

Alan adı Sorgu parametresi Açıklama
tableName tn Gereklidir. Paylaştıracak tablonun adı.

Erişim ilkesini belirtme

URI'nin erişim ilkesi bölümü, paylaşılan erişim imzasının geçerli olduğu süreyi ve kullanıcıya verilecek izinleri belirtir. Erişim ilkesini oluşturan URI bölümleri aşağıdaki tabloda açıklanmıştır:

Alan adı Sorgu parametresi Açıklama
signedStart st İsteğe bağlı. Paylaşılan erişim imzasının geçerli olduğu zaman, kabul edilen ISO 8601 UTC biçimlerinden birinde ifade edilir. Bu parametre atlanırsa, başlangıç saati olarak geçerli UTC saati kullanılır.

2012-02-12'den önceki sürümlerde, kapsayıcı ilkesi kullanılmadığı sürece ve signedExpiry arasındaki signedStart süre bir saati aşamaz. Kabul edilen UTC biçimleri hakkında daha fazla bilgi için bkz . Tarih/saat değerlerini biçimlendirme.
signedExpiry se Gereklidir. Paylaşılan erişim imzası geçersiz hale geldiğinde, kabul edilen ISO 8601 UTC biçimlerinden birinde ifade edilir. İlişkili bir depolanmış erişim ilkesinde belirtilmişse bu alanı atlamalısınız. Kabul edilen UTC biçimleri hakkında daha fazla bilgi için bkz . Tarih/saat değerlerini biçimlendirme.
signedPermissions1 sp Gereklidir. Paylaşılan erişim imzası ile ilişkili izinler. Kullanıcı, izinler tarafından izin verilen işlemlerle sınırlıdır. İlişkili bir depolanmış erişim ilkesinde belirtilmişse bu alanı atlamalısınız.
startPk2

startRk2
spk

srk
Yalnızca Tablo Depolama.

İsteğe bağlı, ancak startPk eşlik startRketmelidir. Bu paylaşılan erişim imzası ile erişilebilen en düşük bölüm ve satır anahtarları. Anahtar değerler dahil edilir. Atlanırsa, erişilebilen tablo varlıklarında alt sınır yoktur.
endPk2

endRk2
epk

erk
Yalnızca Tablo Depolama.

İsteğe bağlı, ancak endPk eşlik endRketmelidir. Bu paylaşılan erişim imzası ile erişilebilen en fazla bölüm ve satır anahtarı. Anahtar değerler dahil edilir. Atlanırsa, erişilebilen tablo varlıklarında üst sınır yoktur.

1 Bu signedPermissions alan, depolanmış erişim ilkesinin bir parçası olarak belirtilmediği sürece URI'de gereklidir.
2 , startPkstartRk, endPkve endRk alanları yalnızca Tablo Depolama kaynaklarında belirtilebilir.

İzinleri belirtme

SAS belirtecinde signedPermissions (sp) alanı için belirtilen izinler, bir istemcinin kaynakta hangi işlemleri gerçekleştirebileceğini gösterir.

İstemcinin aynı SAS ile birden çok işlem gerçekleştirmesine izin vermek için izinleri birleştirebilirsiniz. SAS'yi oluştururken, izinleri aşağıdaki sırayla eklemeniz gerekir:

racwdxltmeop

Kapsayıcı için geçerli izin ayarlarına örnek olarak rw, rd, rl, wd, wlve rlverilebilir. Geçersiz ayarlara örnek olarak wr, dr, lrve dwverilebilir. İzin atamasını birden çok kez belirtemezsiniz.

Hizmet SAS'i belirli işlemlere erişim veremiyor:

  • Kapsayıcılar, kuyruklar ve tablolar oluşturulamaz, silinemez veya listelenemez.
  • Kapsayıcı meta verileri ve özellikleri okunamaz veya yazılamaz.
  • Kuyruklar temizlenemez ve meta verileri yazılamaz.
  • Kapsayıcılar kiralanamaz.

Bu işlemlere erişim veren bir SAS oluşturmak için bir hesap SAS'si kullanın. Daha fazla bilgi için bkz. Hesap SAS'ı oluşturma.

Önemli

Paylaşılan erişim imzaları, depolama kaynaklarına izin veren anahtarlardır ve bunları bir hesap anahtarını koruduğu gibi korumanız gerekir. Paylaşılan erişim imzalarını yalnızca bir HTTPS bağlantısı üzerinden kullanan ve paylaşılan erişim imzası URI'lerini yalnızca HTTPS gibi güvenli bir bağlantı üzerinde dağıtan işlemler gerçekleştirin.

Her kaynak türü için desteklenen izinler aşağıdaki bölümlerde açıklanmıştır.

Dizin, kapsayıcı veya blob izinleri

Her kaynak türü için desteklenen izinler aşağıdaki tabloda açıklanmıştır:

İzin URI simgesi Kaynak Sürüm desteği İzin verilen işlemler
Read r Kapsayıcı
Directory
Blob
Tümü Kapsayıcıdaki veya dizindeki herhangi bir blobun içeriğini, blok listesini, özelliklerini ve meta verilerini okuyun. Kopyalama işleminin kaynağı olarak blob kullanın.
Ekle a Kapsayıcı
Directory
Blob
Tümü Ekleme blob'una blok ekleyin.
Oluştur c Kapsayıcı
Directory
Blob
Tümü Yeni blob yazma, blob anlık görüntüsü alma veya blobu yeni bir bloba kopyalama.
Write w Kapsayıcı
Directory
Blob
Tümü İçerik, özellik, meta veri veya blok listesi oluşturun veya yazın. Blobu anlık görüntüye alma veya kiralama. Blobu yeniden boyutlandırın (yalnızca sayfa blobu). Blobu kopyalama işleminin hedefi olarak kullanın.
Sil d Kapsayıcı
Directory
Blob
Tümü Blobu silme. Sürüm 2017-07-29 ve üzeri için, Silme izni blob üzerinde kirayı bozmaya da olanak tanır. Daha fazla bilgi için bkz . Kira Blobu işlemi.
Sürümü sil x Kapsayıcı
Blob
2019-12-12 ve üzeri Blob sürümünü silme.
Kalıcı olarak silme y Blob 2020-02-10 ve üzeri Blob anlık görüntüsünü veya sürümünü kalıcı olarak silin.
Liste l Kapsayıcı
Directory
Tümü Blobları özyinelemeli olmayan şekilde listeleyin.
Etiketler t Blob 2019-12-12 ve üzeri Blobdaki etiketleri okuyun veya yazın.
Bul f Kapsayıcı 2019-12-12 ve üzeri Dizin etiketlerine sahip blobları bulun.
Move m Kapsayıcı
Directory
Blob
2020-02-10 ve üzeri Blobu veya dizini ve içeriğini yeni bir konuma taşıyın. Parametre SAS belirtecine eklendiğinde ve yapışkan bit üst dizinde ayarlandıysa saoid , bu işlem isteğe bağlı olarak alt blob, dizin veya üst dizinin sahibiyle sınırlandırılabilir.
Yürütme e Kapsayıcı
Directory
Blob
2020-02-10 ve üzeri Sistem özelliklerini alın ve depolama hesabı için hiyerarşik ad alanı etkinleştirildiyse bir blobun POSIX ACL'sini alın. Hiyerarşik ad alanı etkinse ve çağıran bir blobun sahibiyse, bu izin blobun sahip olan grubunu, POSIX izinlerini ve POSIX ACL'sini ayarlama olanağı verir. çağıranın kullanıcı tanımlı meta verileri okumasına izin vermez.
Sahiplik o Kapsayıcı
Directory
Blob
2020-02-10 ve üzeri Hiyerarşik ad alanı etkinleştirildiğinde, bu izin çağıranın sahibini veya sahip olan grubu ayarlamasını ya da yapışkan biti ayarlanmış bir dizin içindeki bir dizini veya blobu yeniden adlandırırken veya silerken sahip olarak davranmasını sağlar.
İzinler p Kapsayıcı
Directory
Blob
2020-02-10 ve üzeri Hiyerarşik ad alanı etkinleştirildiğinde, bu izin çağıranın dizinler ve bloblar üzerinde izinleri ve POSIX ACL'lerini ayarlamasına olanak tanır.
Değişmezlik İlkesini Ayarla ı Kapsayıcı
Blob
2020-06-12 ve üzeri Blob üzerinde değişmezlik ilkesini veya yasal saklamayı ayarlayın veya silin.

Bir dosya için izinler

İzin URI simgesi İzin verilen işlemler
Read r İçeriği, özellikleri ve meta verileri okuyun. Kopyalama işleminin kaynağı olarak dosyasını kullanın.
Oluştur c Yeni bir dosya oluşturun veya dosyayı yeni bir dosyaya kopyalayın.
Write w İçerik, özellik, meta veri oluşturma veya yazma. Dosyayı yeniden boyutlandırın. Dosyayı kopyalama işleminin hedefi olarak kullanın.
Sil d Dosyayı silin.

Paylaşım izinleri

İzin URI simgesi İzin verilen işlemler
Read r Paylaşımdaki herhangi bir dosyanın içeriğini, özelliklerini veya meta verilerini okuyun. Kopyalama işleminin kaynağı olarak paylaşımdaki herhangi bir dosyayı kullanın.
Oluştur c Paylaşımda yeni bir dosya oluşturun veya bir dosyayı paylaşımdaki yeni bir dosyaya kopyalayın.
Write w Paylaşımdaki herhangi bir dosya için içerik, özellikler veya meta veriler oluşturun veya yazın. Dosyayı yeniden boyutlandırın. Dosyayı kopyalama işleminin hedefi olarak kullanın. Not: Hizmet SAS'sini kullanarak paylaşım özelliklerini veya meta verilerini okuma veya yazma izinleri veremezsiniz. Bunun yerine bir hesap SAS'i kullanın.
Sil d Paylaşımdaki herhangi bir dosyayı silin. Not: Hizmet SAS'sini kullanarak bir paylaşımı silme izni veremezsiniz. Bunun yerine bir hesap SAS'i kullanın.
Liste l Paylaşımdaki dosyaları ve dizinleri listeleyin.

Kuyruk izinleri

İzin URI simgesi İzin verilen işlemler
Read r İleti sayısı da dahil olmak üzere meta verileri ve özellikleri okuma. İletilerde Gözatma.
Ekle a Kuyruğa ileti ekleyin.
Güncelleştir u Kuyruktaki iletileri güncelleştirin. Not: Önce güncelleştirmek istediğiniz iletiyi alabilmeniz için Güncelleştirme ile İşlem iznini kullanın.
İşleme p kuyruktan ileti alma ve silme.

Tablo izinleri

İzin URI simgesi İzin verilen işlemler
Sorgu r Varlıkları ve sorgu varlıklarını alma.
Ekle a Varlık ekleme. Not: Upsert işlemleri için Ekleme ve Güncelleştirme izinleri gereklidir.
Güncelleştir u Varlıkları güncelleştirin. Not: Upsert işlemleri için Ekleme ve Güncelleştirme izinleri gereklidir.
Sil d Varlıkları silme.

IP adresi veya IP aralığı belirtme

2015-04-05 sürümünden itibaren isteğe bağlı signedIp (sip) alanı bir genel IP adresi veya isteklerin kabul edildiği genel IP adresleri aralığını belirtir. İsteğin kaynaklandığı IP adresi SAS belirtecinde belirtilen IP adresi veya adres aralığıyla eşleşmiyorsa istek yetkilendirilmedi. Yalnızca IPv4 adresleri desteklenir.

Bir IP adresi aralığı belirtirken aralığın dahil olduğunu unutmayın. Örneğin, SAS'de veya sip=168.1.5.60-168.1.5.70 belirtilmesi sip=168.1.5.65 isteği bu IP adresleriyle kısıtlar.

Aşağıdaki tabloda, istemci ortamına ve depolama hesabının konumuna signedIp göre, belirtilen bir senaryo için alanın SAS belirtecine eklenip eklenmeyeceği açıklanmaktadır.

İstemci ortamı Depolama hesabı konumu Öneri
Azure'da çalışan istemci İstemciyle aynı bölgede Bu senaryoda istemciye sağlanan sas alanı için signedIp giden IP adresi içermemelidir. Belirtilen giden IP adresine sahip bir SAS kullanan aynı bölgeden yapılan istekler başarısız olur.

Bunun yerine, ağ güvenlik kısıtlamalarını yönetmek için bir Azure sanal ağı kullanın. Aynı bölgeden Azure Depolama'ya yönelik istekler her zaman özel bir IP adresi üzerinden gerçekleşir. Daha fazla bilgi için bkz. Azure Depolama güvenlik duvarlarını ve sanal ağları yapılandırma.
Azure'da çalışan istemci İstemciden farklı bir bölgede Bu senaryoda istemciye sağlanan sas, alan için signedIp genel IP adresi veya adres aralığı içerebilir. SAS ile yapılan bir istek, belirtilen IP adresinden veya adres aralığından kaynaklanmalıdır.
Şirket içinde veya farklı bir bulut ortamında çalışan istemci Herhangi bir Azure bölgesinde Bu senaryoda istemciye sağlanan sas, alan için signedIp genel IP adresi veya adres aralığı içerebilir. SAS ile yapılan bir istek, belirtilen IP adresinden veya adres aralığından kaynaklanmalıdır.

İstek bir ara sunucu veya ağ geçidinden geçerse, alan için signedIp bu ara sunucu veya ağ geçidinin genel giden IP adresini sağlayın.

HTTP protokolunu belirtme

2015-04-05 sürümünden itibaren isteğe bağlı signedProtocol (spr) alanı SAS ile yapılan istek için izin verilen protokolü belirtir. Olası değerler hem HTTPS hem de HTTP (https,http) veya yalnızca HTTPS (https) değerleridir. https,http varsayılan değerdir. Yalnızca HTTP'nin izin verilen bir değer olmadığını unutmayın.

Tablo erişim aralıklarını belirtme

startPk, startRk, endPkve endRk alanları, paylaşılan erişim imzası ile ilişkili bir tablo varlığı aralığını tanımlar. Tablo sorguları yalnızca aralık içindeki sonuçları döndürür ve paylaşılan erişim imzasını kullanarak bu aralığın dışındaki varlıkları ekleme, güncelleştirme veya silme girişimleri başarısız olur.

eşitse startPkendPk, paylaşılan erişim imzası tablodaki yalnızca bir bölümdeki varlıklara erişim yetkisi sağlar.

eşit endPk ve startRk eşitse startPkendRk, paylaşılan erişim imzası bir bölümdeki yalnızca bir varlığa erişebilir.

Bu alanların tablodaki varlıklara erişimi nasıl kısıtladığını anlamak için aşağıdaki tabloya bakın:

Mevcut alanlar Kısıtlama kapsamı
startPk partitionKey >= startPk
endPk partitionKey <= endPk
startPk, startRk (partitionKey >startPk) || (partitionKey == startPk && rowKey >= startRk)
endPk, endRk (partitionKey <endPk) || (partitionKey == endPk && rowKey <= endRk)

Dizin derinliğini belirtin

Hiyerarşik ad alanı etkinleştirildiğinde ve alan bir dizin () belirttiğindesignedResource, kök dizin altındaki alt dizin sayısını belirtmek için (sdd) alanını da belirtmeniz signedDirectoryDepthsr=dgerekir. Alanın değeri sdd negatif olmayan bir tamsayı olmalıdır.

Örneğin, kök dizinin https://{account}.blob.core.windows.net/{container}/ derinliği 0'dır. Kök dizindeki her alt dizin, derinliğe 1 ekler. Dizinin https://{account}.blob.core.windows.net/{container}/d1/d2 derinliği 2'dir.

Bu alan 2020-02-10 veya sonraki sürümlerde desteklenir.

İmzalı tanımlayıcıyı belirtme

URI'de alanı belirttiğinizde signedIdentifier , belirtilen paylaşılan erişim imzasını ilgili depolanmış erişim ilkesiyle ilişkilendirebilirsiniz. Depolanan erişim ilkesi, gerekirse imzayı iptal etme özelliği de dahil olmak üzere bir veya daha fazla paylaşılan erişim imzası üzerinde ek bir denetim ölçüsü sağlar. Her kapsayıcı, kuyruk, tablo veya paylaşım en fazla beş depolanmış erişim ilkesine sahip olabilir.

Aşağıdaki tabloda, URI'de imzalı bir tanımlayıcıya nasıl başvuracakları açıklanmaktadır:

Alan adı Sorgu parametresi Açıklama
signedIdentifier si İsteğe bağlı. Kapsayıcı, kuyruk veya tablo için belirtilen bir erişim ilkesiyle ilişkilendiren en fazla 64 karakterlik benzersiz bir değer.

Depolanan erişim ilkesi, kaynak içinde benzersiz olan en fazla 64 karakterlik bir değer olan imzalı bir tanımlayıcı içerir. Paylaşılan erişim imzası için URI'deki alan için signedidentifier bu imzalı tanımlayıcının değerini belirtebilirsiniz. URI'de imzalı bir tanımlayıcı belirttiğinizde, imzayı depolanan erişim ilkesiyle ilişkilendirirsiniz. REST API kullanarak kapsayıcı düzeyinde erişim ilkesi oluşturmak için bkz. Paylaşılan erişim imzası ile erişim temsilcisi seçme.

Şifreleme kapsamını belirtme

URI'de alanını kullanarak signedEncryptionScope , istemci uygulamasının kullanabileceği şifreleme kapsamını belirtebilirsiniz. SAS belirteciyle blobları (PUT) karşıya yüklediğinizde belirtilen şifreleme kapsamıyla sunucu tarafı şifrelemesini zorlar. GET ve HEAD kısıtlanmaz ve daha önce olduğu gibi gerçekleştirilmez.

Aşağıdaki tabloda URI'de imzalı şifreleme kapsamına nasıl başvuracakları açıklanmaktadır:

Alan adı Sorgu parametresi Açıklama
signedEncryptionScope ses İsteğe bağlı. İstek içeriğini şifrelemek için kullanılacak şifreleme kapsamını gösterir.

Bu alan 2020-12-06 veya sonraki sürümlerde desteklenir. öğesini desteklenen sürümden önce eklerseniz ses , hizmet hata yanıt kodu 403 (Yasak) döndürür.

Kapsayıcı veya dosya sistemi için varsayılan şifreleme kapsamını ayarlarsanız, ses sorgu parametresi kapsayıcı şifreleme ilkesine saygı gösterir. Sorgu parametresi ile x-ms-default-encryption-scope üst bilgi arasında ses uyuşmazlık varsa ve x-ms-deny-encryption-scope-override üst bilgi olarak ayarlanırsatrue, hizmet hata yanıt kodu 403 (Yasak) döndürür.

PUT isteğinde x-ms-encryption-scope üst bilgi ve ses sorgu parametresini sağladığınızda, uyuşmazlık varsa hizmet hata yanıt kodu 400 (Hatalı İstek) döndürür.

İmzayı belirtme

Paylaşılan erişim imzası ile yapılan isteği yetkilendirmek için URI'nin imza bölümünü kullanırsınız. Azure Depolama, bir hizmet SAS'sini yetkilendirmek için Paylaşılan Anahtar yetkilendirme şeması kullanır.

Aşağıdaki tabloda, URI'de imzanın nasıl belirtileceğini açıklanmaktadır:

Alan adı Sorgu parametresi Açıklama
signature sig İmzalanacak dize, alanlardan üretilen ve isteği yetkilendirmek için doğrulanması gereken benzersiz bir dizedir. İmza, SHA256 algoritmasını kullanarak imzaya dize ve anahtar üzerinden hesapladığınız ve ardından Base64 kodlamasını kullanarak kodladığınız karma tabanlı bir ileti kimlik doğrulama kodudur (HMAC).

İmza dizesini oluşturma

Paylaşılan erişim imzasının imza dizesini oluşturmak için, önce isteği oluşturan alanlardan imza için dizeyi oluşturun, dizeyi UTF-8 olarak kodlayın ve sonra HMAC-SHA256 algoritmasını kullanarak imzayı hesaplayın. İşaret dizesinde yer alan alanların URL kodunun çözülmesi gerekir.

Sürüm 2020-12-06 ve üzeri

Sürüm 2020-12-06, imzalı şifreleme kapsamı alanı için destek ekler. Blob Depolama kaynakları için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               signedResource + "\n" +
               signedSnapshotTime + "\n" +
               signedEncryptionScope + "\n" +
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
Sürüm 2018-11-09 ve üzeri

Sürüm 2018-11-09, imzalı kaynak ve imzalı blob anlık görüntü zaman alanları için destek ekler. Bu alanlar, imzalanacak dizeye eklenmelidir. Blob Depolama kaynakları için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               signedResource + "\n"
               signedSnapshotTime + "\n" +
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  
Sürüm 2015-04-05 ve üzeri

Sürüm 2015-04-05, imzalı IP ve imzalı protokol alanları için destek ekler. Bu alanlar, imzalanacak dizeye eklenmelidir. Blob Depolama veya Azure Dosyalar kaynakları için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  

Tablo Depolama kaynakları için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               startingPartitionKey + "\n"  
               startingRowKey + "\n"  
               endingPartitionKey + "\n"  
               endingRowKey  
  

Kuyruk Depolama kaynakları için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion  
  
Sürüm 2013-08-15 - 2015-02-21

2013-08-15 ile 2015-02-21 arası sürümleri kullanarak Blob Depolama veya Azure Dosyalar kaynakları için imzaya dize oluşturmak için aşağıdaki biçimi kullanın. Azure Dosyalar için SAS, 2015-02-21 sürümünden itibaren desteklenir.

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion + "\n" +  
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  

Bir tablo için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion + "\n" +  
               startPk + "\n" +  
               startRk + "\n" +  
               endPk + "\n" +  
               endRk  
  

Bir kuyruk için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion 
Sürüm 2012-02-12

Sürüm 2012-02-12 için Blob Depolama kaynakları için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion  
2012-02-12'den önceki sürümler

2012-02-12'den önceki sürümlerin Blob Depolama kaynakları için imzaya dize oluşturmak için aşağıdaki biçimi kullanın:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier  
  

İmzalanacak dizeyi oluştururken aşağıdakileri göz önünde bulundurun:

  • Bir alan isteğe bağlıysa ve isteğin bir parçası olarak sağlanmadıysa, bu alan için boş bir dize belirtin. Boş dizeden sonra yeni satır karakterini (\n) eklediğinizden emin olun.

  • Tablo için imzaya dize, boş dizeler olsa bile ek parametreleri içermelidir.

  • signedpermission Dizenin bölümü, her kaynak türüne özgü sabit bir sırada izin atamalarını içermelidir. Bu izinlerin herhangi bir bileşimi kabul edilebilir, ancak izin mektuplarının sırası aşağıdaki tabloda yer alan sırayla eşleşmelidir.

    Kaynak türü İzin sırası
    Blob racwd
    Kapsayıcı racwdl
    Kuyruk raup
    File rcwd
    Paylaş rcwdl
    Tablo raud

    Örneğin, kapsayıcı için geçerli izin ayarlarına örnek olarak rw, rd, rl, wd, wlve rlverilebilir. Geçersiz ayarlara örnek olarak wr, dr, lrve dwverilebilir. İzin belirtmeye birden çok kez izin verilmez.

  • İsteği bir depolanmış erişim ilkesiyle ilişkilendiriyorsanız dizenin bölümü için signedIdentifier bir değer sağlayın.

  • 2012-02-12'den önceki bir depolama hizmeti sürümünü belirten paylaşılan erişim imzası yalnızca bir blobu veya kapsayıcıyı paylaşabilir ve öncesinde yeni satır karakterini atlamalıdır signedVersion .

  • canonicalizedResource Dizenin bölümü, imzalı kaynağın kurallı yoludur. Sürüm 2015-02-21 veya üzeri için hizmet adını (Blob Depolama, Tablo Depolama, Kuyruk Depolama veya Azure Dosyalar), depolama hesabı adını ve kaynak adını içermelidir ve URL kodu çözülmelidir. Blob adları blobun kapsayıcısını içermelidir. Tablo adları küçük harf olmalıdır.

Kapsayıcı, kuyruk, tablo veya dosya paylaşımının kurallı hale getirilmiş kaynak dizesi, bu nesneye erişim sağlayan bir SAS için sondaki eğik çizgiyi (/) atlamalıdır.

Aşağıdaki örnekler, kaynağın canonicalizedResource türüne bağlı olarak dizenin bir kısmının nasıl yapılacağını gösterir.

Kapsayıcılar

Sürüm 2015-02-21 ve üzeri için:

URL = https://myaccount.blob.core.windows.net/music  
canonicalizedResource = "/blob/myaccount/music"  

2015-02-21'den önceki sürümler için:

URL = https://myaccount.blob.core.windows.net/music
canonicalizedResource = "/myaccount/music"  

Bloblar

Sürüm 2015-02-21 ve üzeri için:

URL = https://myaccount.blob.core.windows.net/music/intro.mp3  
canonicalizedResource = "/blob/myaccount/music/intro.mp3"  

2015-02-21'den önceki sürümler için:

URL = https://myaccount.blob.core.windows.net/music/intro.mp3
canonicalizedResource = "/myaccount/music/intro.mp3"  

Dosya Paylaşımları

URL = https://myaccount.file.core.windows.net/music
canonicalizedResource = "/file/myaccount/music"  

Dosyalar

URL = https://myaccount.file.core.windows.net/music/intro.mp3
canonicalizedResource = "/file/myaccount/music/intro.mp3"  

Kuyruklar

Sürüm 2015-02-21 ve üzeri için:

URL = https://myaccount.queue.core.windows.net/thumbnails  
canonicalizedResource = "/queue/myaccount/thumbnails"  

2015-02-21'den önceki sürümler için:

URL = https://myaccount.queue.core.windows.net/thumbnails  
canonicalizedResource = "/myaccount/thumbnails"  

Tablolar

İmzalı kaynak bir tabloysa, tablo adının kurallı biçimde küçük harf olduğundan emin olun.

Sürüm 2015-02-21 ve üzeri için:

URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')  
canonicalizedResource = "/table/myaccount/employees"  

2015-02-21'den önceki sürümler için:

URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')  
canonicalizedResource = "/myaccount/employees"  

Paylaşılan erişim imzasının kullanım ömrü ve iptali

Paylaşılan erişim imzaları, kullanıcılara depolama hesabı kaynaklarına erişim hakları verir. SAS kullanmayı planlarken SAS'nin ömrünü ve uygulamanızın belirli koşullar altında erişim haklarını iptal etmek zorunda olup olmayacağını düşünün.

Geçici SAS ile depolanmış erişim ilkesi karşılaştırması

Hizmet SAS'i iki biçimden birini alabilir:

  • Geçici SAS: Geçici BIR SAS oluşturduğunuzda SAS için başlangıç zamanı, süre sonu ve izinlerin tümü SAS URI'sinde belirtilir (veya başlangıç saati atlanırsa örtülür). Herhangi bir SAS türü geçici bir SAS olabilir.

    alanını kullanarak signedExpiry geçici SAS'nin ömrünü yönetebilirsiniz. Son kullanma tarihinden sonra kaynağa istemci erişimi vermek istiyorsanız, yeni bir imza vermelisiniz. Paylaşılan erişim imzasının ömrünü kısa tutmanızı öneririz. 2012-02-12 sürümünden önce, depolanan erişim ilkesiyle ilişkilendirilmiş olmayan paylaşılan erişim imzası bir saati aşan etkin bir süreye sahip değildi.

  • Depolanan erişim ilkesine sahip SAS: Blob kapsayıcısı, tablo, kuyruk veya dosya paylaşımı olabilecek bir kaynak kapsayıcısı üzerinde depolanan erişim ilkesi tanımlanır. Bir veya daha fazla paylaşılan erişim imzasının kısıtlamalarını yönetmek için depolanmış erişim ilkesini kullanabilirsiniz. Bir SAS'yi 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.

    Depolanan erişim ilkesi URI'daki signedIdentifier alanla temsil edilir. Depolanan erişim ilkesi, gerekirse imzayı iptal etme özelliği de dahil olmak üzere bir veya daha fazla paylaşılan erişim imzası üzerinde ek bir denetim ölçüsü sağlar.

SAS'i iptal etme

SAS URI'si bir URL olduğundan, SAS'yi ilk oluşturandan bağımsız olarak SAS'yi alan herkes kullanabilir. Sas genel olarak yayımlanırsa, dünyadaki herkes tarafından kullanılabilir. SAS, dört şeyden biri gerçekleşene kadar kaynaklara sahip olan herkese erişim verir:

  • Geçici SAS'de belirtilen süre sonu süresine ulaşılır.

  • Sas tarafından başvurulan saklı erişim ilkesinde belirtilen süre sonu süresine ulaşılır. Depolanan erişim ilkesine başvurulur ve erişim ilkesi bir süre sonu belirtir.

    Süre sonu süresine ulaşılma nedeni, sürenin dolması veya depolanmış erişim ilkesini geçmişte bir süre sonu süresine sahip olacak şekilde değiştirmiş olmanızdır. Bu, SAS'yi iptal etmenin bir yoludur.

  • SAS tarafından başvurulan saklı erişim ilkesi silinir ve sas iptal edilir. Azure Depolama paylaşılan erişim imzasında belirtilen depolanmış erişim ilkesini bulamazsa, istemci URI tarafından belirtilen kaynağa erişemez.

    Depolanan erişim ilkesini silinen ilkeyle tam olarak aynı adla yeniden oluşturursanız, bu depolanmış erişim ilkesiyle ilişkili izinlere göre tüm mevcut SAS belirteçleri yeniden geçerli olur. Bu, SAS üzerindeki süre sonunun geçmediğini varsayar. SAS'yi iptal etmek istiyorsanız, gelecekte bir süre sonu ile erişim ilkesini yeniden oluştururken farklı bir ad kullandığınızdan emin olun.

  • SAS'yi oluşturmak için kullanılan hesap anahtarı yeniden oluşturulur. Bir hesap anahtarını yeniden oluşturmak, bu anahtarı kullanan tüm uygulama bileşenlerinin diğer geçerli hesap anahtarını veya yeni oluşturulan hesap anahtarını kullanacak şekilde güncelleştirilene kadar yetki verememesine neden olur. Geçici SAS'yi hemen iptal etmenin tek yolu hesap anahtarını yeniden oluşturmadır.

Önemli

Paylaşılan erişim imzası URI'si, imzayı oluşturmak için kullanılan hesap anahtarıyla ve varsa ilişkili depolanmış erişim ilkesiyle ilişkilendirilir. Hiçbir saklı erişim ilkesi belirtilmezse, paylaşılan erişim imzasını iptal etmenin tek yolu hesap anahtarını değiştirmektir.

En iyi uygulama olarak, hizmet SAS'siyle depolanmış erişim ilkesi kullanmanızı öneririz. Saklı erişim ilkesi kullanmamayı seçerseniz geçici SAS'nin geçerli olduğu süreyi kısa tuttuğunuzdan emin olun. Hizmet SAS'sini depolanmış erişim ilkesiyle ilişkilendirme hakkında daha fazla bilgi için bkz. Saklı erişim ilkesi tanımlama.

Hizmet SAS örneği

Aşağıdaki örnek, sonuna hizmet SAS belirteci eklenmiş bir blob URI'sini gösterir. Hizmet SAS belirteci bloba okuma ve yazma izinleri sağlar.

https://myaccount.blob.core.windows.net/sascontainer/blob1.txt?sp=rw&st=2023-05-24T01:13:55Z&se=2023-05-24T09:13:55Z&sip=168.1.5.60-168.1.5.70&spr=https&sv=2022-11-02&sr=b&sig=<signature>

URI'nin her bölümü aşağıdaki tabloda açıklanmıştır:

Name SAS bölümü Description
Kaynak URI'sı https://myaccount.blob.core.windows.net/sascontainer/blob1.txt Blobun adresi. HTTPS kullanmanızı kesinlikle öneririz.
Sınırlayıcı ? Sorgu dizesinden önce gelen sınırlayıcı. Sınırlayıcı SAS belirtecinin bir parçası değildir.
İzinler sp=rw SAS tarafından verilen izinler Okuma (r) ve Yazma (w) izinlerini içerir.
Başlangıç saati st=2023-05-24T01:13:55Z UTC saatinde belirtilir. SAS'nin hemen geçerli olmasını istiyorsanız, başlangıç saatini atla.
Süre sonu se=2023-05-24T09:13:55Z UTC saatinde belirtilir.
IP aralığı sip=168.1.5.60-168.1.5.70 İsteğin kabul edileceği IP adresi aralığı.
Protokol spr=https Yalnızca HTTPS kullanan isteklere izin verilir.
Azure Depolama sürümü sv=2023-05-24 Azure Depolama sürüm 2012-02-12 ve üzeri için bu parametre kullanılacak sürümü gösterir.
Kaynak sr=b Kaynak bir blobdur.
İmza sig=<signature> Bloba erişimi yetkilendirmek için kullanılır. İmza, SHA256 algoritması kullanılarak bir dizeden imzaya ve anahtara göre hesaplanan ve ardından Base64 kodlaması kullanılarak kodlanan bir HMAC'dir.

Ayrıca bkz.