Share via


Hizmet SAS’si oluşturma

Önemli

En iyi güvenlik için Microsoft mümkün olduğunda blob, kuyruk ve tablo verilerine karşı istekleri yetkilendirmek için yönetilen kimliklerle Microsoft Entra ID kullanılmasını önerir. Microsoft Entra ID ve yönetilen kimliklerle yetkilendirme, Paylaşılan Anahtar yetkilendirmesi üzerinden üstün güvenlik ve kullanım kolaylığı sağlar. Daha fazla bilgi edinmek için bkz. Microsoft Entra ID ile yetkilendirme. Yönetilen kimlikler hakkında daha fazla bilgi edinmek için bkz. Azure kaynakları için yönetilen kimlikler nedir?

Şirket içi uygulamalar gibi Azure dışında barındırılan kaynaklar için Azure Arc aracılığıyla yönetilen kimlikleri kullanabilirsiniz. Örneğin, Azure Arc özellikli sunucularda çalışan uygulamalar, Azure hizmetlerine bağlanmak için yönetilen kimlikleri kullanabilir. Daha fazla bilgi edinmek için bkz. Azure Arc özellikli sunucularla Azure kaynaklarında kimlik doğrulaması.

Paylaşılan erişim imzalarının (SAS) kullanıldığı senaryolar için Microsoft, kullanıcı temsilcisi SAS'sini kullanmanızı önerir. Kullanıcı temsilcisi SAS'sinin güvenliği hesap anahtarı yerine Microsoft Entra kimlik bilgileriyle sağlanır. Paylaşılan erişim imzaları hakkında bilgi edinmek için bkz. Kullanıcı temsilcisi SAS'İçerik Oluşturucu.

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)

Bir istekte paylaşılan erişim imzası 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 2013-08-15 Azure Dosyalar için veya daha sonraki bir sürüme 2015-02-21 ayarlanmış parametreyi 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, 2013-08-15 veya sonraki bir sürümle oluşturulan paylaşılan erişim imzasının sorgu parametresini belirtirseniz rsct=binary , Content-Type 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 gösterir. 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, bir kapsayıcı ilkesi kullanılmadığı sürece ile 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 kapsayıcıdır. Atlanırsa, tablo varlıklarında erişilebilen 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 yüksek bölüm ve satır anahtarları. Anahtar değerler kapsayıcıdır. Atlanırsa, tablo varlıklarında erişilebilen ü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.

bir istemcinin 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, , rdrl, wd, wlve rlverilebilir. Geçersiz ayarlara örnek olarak wr, dr, lrve dwverilebilir. İzin atamasını birden çok kez belirtemezsiniz.

Hizmet SAS'ı belirli işlemlere erişim izni 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'sini İçerik Oluşturucu.

Önemli

Paylaşılan erişim imzaları, depolama kaynaklarına izin veren anahtarlardır ve bunları aynı 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 işlemler gerçekleştirin ve paylaşılan erişim imzası URI'lerini yalnızca HTTPS gibi güvenli bir bağlantı üzerinde dağıtin.

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ı 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 bir blob yazın, bir blobu anlık görüntüye yükleyin veya bir blobu yeni bir bloba kopyalayın.
Write w Kapsayıcı
Directory
Blob
Tümü İçerik Oluşturucu veya içerik, özellikler, meta veriler veya blok listesi 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 İçerik Oluşturucu veya dosyayı yeni bir dosyaya kopyalayın.
Write w İçerik Oluşturucu veya içerik, özellikler, meta veriler yazın. 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. Paylaşımdaki herhangi bir dosyayı kopyalama işleminin kaynağı olarak kullanın.
Oluştur c Paylaşımda yeni bir dosya İçerik Oluşturucu veya bir dosyayı paylaşımdaki yeni bir dosyaya kopyalayın.
Write w Paylaşımdaki herhangi bir dosya için içerik, özellik veya meta veri 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 için izinler

İzin URI simgesi İzin verilen işlemler
Read r İleti sayısı da dahil olmak üzere meta verileri ve özellikleri okuyun. İ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ştir ile İşlem iznini kullanın.
İşleme p Kuyruktan iletileri alın ve silin.

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ştirme. Not: Upsert işlemleri için Ekleme ve Güncelleştirme izinleri gereklidir.
Sil d Varlıkları silin.

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 istekleri kabul etmek için bir genel IP adresi aralığı 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 üzerinde 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 bağlı olarak, belirtilen 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 bir 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ölgenin içinden 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 'dir (https). 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ıkları 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 bir 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 dizinin 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 depolanmış bir 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 önce yeni satır karakterini atlamalıdır signedVersion .

  • Dizenin canonicalizedResource 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) içermesi, depolama hesabı adını ve kaynak adını içermesi ve URL kodunun çözülmesi gerekir. Blob adları blobun kapsayıcısını içermelidir. Tablo adları küçük harfle yazılmalıdır.

Kapsayıcı, kuyruk, tablo veya dosya paylaşımı için 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 örneklerde, kaynağın canonicalizedResource türüne bağlı olarak dizenin bir kısmının nasıl inşası gösterilmektedir.

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 edip etmeyebileceğini 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.

    Geçici SAS'nin ömrünü alanını kullanarak signedExpiry 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 ilkesiyle 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 denetim ölçüsü sağlar.

SAS iptal etme

SAS URI'si bir URL olduğundan, SAS'yi ilk oluşturandan bağımsız olarak, SAS'yi alan herkes bunu 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 izni verir:

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

  • Bir depolanmış erişim ilkesine başvurulur ve erişim ilkesi bir süre sonu belirtirse, SAS tarafından başvurulan depolanmış erişim ilkesinde belirtilen süre sonu süresine ulaşılır.

    Süre sonu süresi, zaman aralığı geçtiğinden veya depolanmış erişim ilkesini geçmişte bir süre sonu süresine sahip olacak şekilde değiştirdiğinizden (SAS'yi iptal etmenin bir yoludur) ulaşılabilir.

  • 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 mevcut tüm SAS belirteçleri yeniden geçerli olur. Bu, SAS'de süre sonu süresinin 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 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 yeniden 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. Depolanmış 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 bir depolanmış erişim ilkesi kullanmanızı öneririz. Depolanmış 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ğil.
İ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 atlarsınız.
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 edildiğ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.