Aracılığıyla paylaş


Kapsayıcı ACL'lerini ayarlama

Set Container ACL işlemi, belirtilen kapsayıcı için izinleri ayarlar. İzinler, bir kapsayıcıdaki bloblara genel olarak erişilip erişilemeyeceğini gösterir.

Sürüm 2009-09-19 itibarıyla kapsayıcı izinleri kapsayıcı erişimini yönetmek için aşağıdaki seçenekleri sağlar:

  • Tam genel okuma erişimi: Kapsayıcı ve blob verileri anonim istek aracılığıyla okunabilir. İstemciler anonim istek aracılığıyla kapsayıcı içindeki blobları numaralandırabilir, ancak depolama hesabı içindeki kapsayıcıları numaralandıramaz.

  • Yalnızca bloblar için genel okuma erişimi : Bu kapsayıcıdaki Blob verileri anonim istek aracılığıyla okunabilir, ancak kapsayıcı verileri kullanılamaz. İstemciler anonim istek aracılığıyla kapsayıcı içindeki blobları numaralandıramaz.

  • Genel okuma erişimi yok: Kapsayıcı ve blob verileri yalnızca hesap sahibi tarafından okunabilir.

Set Container ACL ayrıca paylaşılan erişim imzalarıyla kullanılacak bir depolanmış erişim ilkesi ayarlar. Daha fazla bilgi için bkz. Saklı erişim ilkesi tanımlama.

Kapsayıcıya tüm genel erişim anonimdir ve paylaşılan erişim imzası aracılığıyla erişim sağlanır.

İstek

Set Container ACL isteği aşağıdaki gibi oluşturulabilir. HTTPS kullanmanızı öneririz. myaccount değerini depolama hesabınızın adıyla değiştirin:

Yöntem İstek URI'si HTTP sürümü
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Öykünmüş depolama hizmeti isteği

Öykünmüş depolama hizmetine yönelik istekte bulunulduğunda öykünücü konak adını ve Blob hizmeti bağlantı noktasını 127.0.0.1:10000olarak belirtin ve ardından öykünülen depolama hesabı adını belirtin:

Yöntem İstek URI'si HTTP sürümü
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl HTTP/1.1

Daha fazla bilgi için bkz. Yerel Azure Depolama geliştirmeiçin Azurite öykünücüsü kullanma .

URI parametreleri

İstek URI'sinde aşağıdaki ek parametreleri belirtebilirsiniz:

Parametre Açıklama
timeout Opsiyonel. timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için zaman aşımlarını ayarlama.

İstek üst bilgileri

Gerekli ve isteğe bağlı istek üst bilgileri aşağıdaki tabloda açıklanmıştır:

İstek üst bilgisi Açıklama
Authorization Gerekli. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. azure depolamaistekleri yetkilendirme .
Date veya x-ms-date Gerekli. İstek için Eşgüdümlü Evrensel Saati (UTC) belirtir. Daha fazla bilgi için bkz. azure depolamaistekleri yetkilendirme .
x-ms-version Opsiyonel. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.
x-ms-blob-public-access Opsiyonel. Kapsayıcıdaki verilere genel olarak erişilip erişilemeyeceğini ve erişim düzeyini belirtir. Olası değerler şunlardır:

- container: Kapsayıcı ve blob verileri için tam genel okuma erişimini belirtir. İstemciler anonim istek aracılığıyla kapsayıcı içindeki blobları numaralandırabilir, ancak depolama hesabı içindeki kapsayıcıları numaralandıramaz.
- blob: Bloblar için genel okuma erişimini belirtir. Bu kapsayıcıdaki blob verileri anonim istekle okunabilir, ancak kapsayıcı verileri kullanılamaz. İstemciler anonim istek aracılığıyla kapsayıcı içindeki blobları numaralandıramaz.

Bu üst bilgi isteğe dahil değilse, kapsayıcı verileri hesap sahibine özeldir.

Azure Premium Depolama hesabındaki bir kapsayıcı için genel erişim ayarlamaya izin verilmediğini unutmayın.
x-ms-lease-id: <ID> İsteğe bağlı, sürüm 2012-02-12 ve üzeri. Belirtilirse, Set Container ACL başarılı olması için kapsayıcının kirasının etkin olması ve bu kimlikle eşleşmesi gerekir. Etkin kiralama yoksa veya kimlik eşleşmiyorsa 412 (Önkoşul Başarısız) döndürülür.
x-ms-client-request-id Opsiyonel. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibayt (KiB) karakter sınırıyla istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucunun aldığı istekler arasında bağıntı sağlamak için bu üst bilgiyi kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz. azure blob depolamaizleme .

Bu işlem, yalnızca belirtilen bir koşul karşılandığında işlemi yürütmek için koşullu üst bilgilerin kullanımını da destekler. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için koşullu üst bilgileri belirtme.

İstek gövdesi

Depolanan erişim ilkesi belirtmek için, Set Container ACL işlemi için istek gövdesinde benzersiz bir tanımlayıcı ve erişim ilkesi sağlayın.

SignedIdentifier öğesi, Id öğesinde belirtildiği gibi benzersiz tanımlayıcıyı ve AccessPolicy öğesinde belirtildiği gibi erişim ilkesinin ayrıntılarını içerir. Benzersiz tanımlayıcının uzunluk üst sınırı 64 karakterdir.

Start ve Expiry alanları UTC saatine göre ifade edilmeli ve geçerli bir ISO 8061 biçimine uymalıdır. Desteklenen ISO 8061 biçimleri şunları içerir:

  • YYYY-MM-DD
  • YYYY-MM-DDThh:mmTZD
  • YYYY-MM-DDThh:mm:ssTZD
  • YYYY-MM-DDThh:mm:ss.fffffffTZD

Bu biçimlerin tarih bölümü için YYYY dört basamaklı bir yıl gösterimidir, MM iki basamaklı ay gösterimidir ve DD iki basamaklı bir gün gösterimidir. Zaman bölümü için, hh 24 saatlik gösterimdeki saat gösterimidir, mm iki basamaklı dakika gösterimidir, ss iki basamaklı ikinci gösterimdir ve fffffff yedi basamaklı milisaniye gösterimidir. T saat belirleyicisi, dizenin tarih ve saat bölümlerini ayırır ve saat dilimi belirleyicisi TZD saat dilimini belirtir.

<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>unique-64-character-value</Id>  
    <AccessPolicy>  
      <Start>start-time</Start>  
      <Expiry>expiry-time</Expiry>  
      <Permission>abbreviated-permission-list</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  
  

Örnek istek

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 00:42:49 GMT  
x-ms-blob-public-access: container  
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>  
    <AccessPolicy>  
      <Start>2009-09-28T08:49:37.0000000Z</Start>  
      <Expiry>2009-09-29T08:49:37.0000000Z</Expiry>  
      <Permission>rwd</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  
  

Yanıt

Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir.

Durum kodu

Başarılı bir işlem 200 durum kodunu döndürür (Tamam).

Durum kodları hakkında daha fazla bilgi için bkz. Durum ve hata kodları.

Yanıt üst bilgileri

Bu işlemin yanıtı aşağıdaki üst bilgileri içerir. Yanıt, ek standart HTTP üst bilgileri de içerebilir. Tüm standart üst bilgilerHTTP/1.1 protokol belirtimine uygundur.

Yanıt üst bilgisi Açıklama
ETag Kapsayıcı için ETag. İstek sürümü 2011-08-18 veya üzeriyse, ETag değeri tırnak içine alınır.
Last-Modified Kapsayıcının en son değiştirildiği tarih ve saati döndürür. Tarih biçimi RFC 1123'e uyar. Daha fazla bilgi için bkz. üst bilgilerde tarih/saat değerlerini temsil edin.

Kapsayıcıyı veya özelliklerini veya meta verilerini değiştiren tüm işlemler, kapsayıcının izinlerini ayarlamak da dahil olmak üzere son değiştirme zamanını güncelleştirir. Bloblardaki işlemler kapsayıcının son değiştirme zamanını etkilemez.
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar ve isteğin sorunlarını gidermek için kullanılabilir. Daha fazla bilgi için bkz. API işlem sorunlarını giderme
x-ms-version İsteği yürütmek için kullanılan Blob hizmeti sürümünü gösterir. Bu üst bilgi, 2009-09-19 ve sonraki sürümlerde yapılan istekler için döndürülür.
Date Hizmet tarafından oluşturulan ve yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri.
x-ms-client-request-id İsteklerde ve ilgili yanıtlarda sorun gidermek için kullanılabilir. bu üst bilginin değeri, istekte mevcutsa ve değer 1.024'ten fazla görünür ASCII karakteri içermiyorsa x-ms-client-request-id üst bilgisinin değerine eşittir. İstekte x-ms-client-request-id üst bilgisi yoksa yanıtta bulunmaz.

Örnek yanıt

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: Sun, 25 Sep 2011 22:42:55 GMT  
ETag: "0x8CB171613397EAB"  
Last-Modified: Sun, 25 Sep 2011 22:42:55 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

İzin

Azure Depolama'da herhangi bir veri erişim işlemi çağrılırken yetkilendirme gereklidir. aşağıda açıklandığı gibi Set Container ACL işlemini yetkileyebilirsiniz.

Önemli

Microsoft, Azure Depolama'ya yönelik istekleri yetkilendirmek için Yönetilen kimliklerle Microsoft Entra Id kullanılmasını önerir. Microsoft Entra ID, Paylaşılan Anahtar yetkilendirmesine kıyasla üstün güvenlik ve kullanım kolaylığı sağlar.

Azure Depolama, blob verilerine yönelik istekleri yetkilendirmek için Microsoft Entra Id kullanılmasını destekler. Microsoft Entra Id ile azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak bir güvenlik sorumlusuna izin vekleyebilirsiniz. Güvenlik sorumlusu bir kullanıcı, grup, uygulama hizmet sorumlusu veya Azure yönetilen kimliği olabilir. OAuth 2.0 belirtecini döndürmek için güvenlik sorumlusunun kimliği Microsoft Entra Id tarafından doğrulanır. Daha sonra belirteç, Blob hizmetine karşı bir isteği yetkilendirmek için kullanılabilir.

Microsoft Entra Id kullanarak yetkilendirme hakkında daha fazla bilgi edinmek için bkz.Microsoft Entra Id kullanarak bloblara erişimi yetkilendirme .

İzinler

Aşağıda bir Microsoft Entra kullanıcısı, grubu, yönetilen kimliği veya hizmet sorumlusunun Set Container ACL işlemini çağırması için gereken RBAC eylemi ve bu eylemi içeren en az ayrıcalıklı yerleşik Azure RBAC rolü verilmiştir:

  • Azure RBAC eylemini : Microsoft.Storage/storageAccounts/blobServices/containers/setAcl/action
  • En az ayrıcalıklı yerleşik rol:Depolama Blob Veri Sahibi

Azure RBAC kullanarak rol atama hakkında daha fazla bilgi edinmek için bkz. Blob verilerine erişim için Azure rolü atama.

Açıklamalar

Bir kapsayıcının izinlerini ayarladığınızda, var olan izinler değiştirilir. Kapsayıcının izinlerini güncelleştirmek için kapsayıcıyla ilişkili tüm erişim ilkelerini getirmek üzere Kapsayıcı ACL'sini Al çağırın. Değiştirmek istediğiniz erişim ilkesini değiştirin ve ardından güncelleştirmeyi gerçekleştirmek için tam veri kümesiyle Set Container ACL çağırın.

Kapsayıcı verilerinde anonim genel erişimi etkinleştirme

Kapsayıcı verilerinde anonim genel okuma erişimini etkinleştirmek için, x-ms-blob-public-access üst bilgisi container veya blobolarak ayarlanmış Set Container ACL çağırın. Anonim erişimi devre dışı bırakmak için x-ms-blob-public-access üst bilgisini belirtmeden Set Container ACL çağırın.

x-ms-blob-public-access blobolarak ayarlarsanız, istemciler aşağıdaki işlemleri anonim olarak çağırabilir:

  • blob

  • blob özelliklerini alma

  • blob meta verilerini alma

  • Blok Listesi Al (yalnızca kaydedilmiş blok listesi için)

  • sayfa aralıklarını

x-ms-blob-public-access containerolarak ayarlarsanız, istemciler aşağıdaki işlemleri anonim olarak çağırabilir:

  • Önceki bölümde listelenen blob erişim işlemleri.

  • kapsayıcı özelliklerini alma

  • kapsayıcı meta verileri alma

  • Liste Blobları

Kapsayıcı düzeyinde erişim ilkeleri oluşturma

Depolanan erişim ilkesi, ilişkili olduğu paylaşılan erişim imzaları için başlangıç saatini, süre sonunu ve izinleri belirtebilir. Kapsayıcınıza veya blob kaynağınıza erişimi nasıl denetlemek istediğinize bağlı olarak, bu parametrelerin tümünü depolanan erişim ilkesi içinde belirtebilir ve paylaşılan erişim imzası URL'sinden atlayabilirsiniz. Bunu yaparak, ilişkili imzanın davranışını istediğiniz zaman değiştirebilir veya iptal edebilirsiniz. Alternatif olarak, depolanmış erişim ilkesi içinde bir veya daha fazla erişim ilkesi parametresi ve URL'de diğerlerini belirtebilirsiniz. Son olarak, URL'de tüm parametreleri belirtebilirsiniz. Bu durumda, depolanan erişim ilkesini kullanarak imzayı iptal edebilir, ancak davranışını değiştiremezsiniz. Daha fazla bilgi için bkz. Saklı erişim ilkesi tanımlama.

Paylaşılan erişim imzası ve depolanan erişim ilkesi birlikte imzayı yetkilendirmek için gereken tüm alanları içermelidir. Gerekli alanlar eksikse istek başarısız olur. Benzer şekilde, hem paylaşılan erişim imzası URL'sinde hem de depolanmış erişim ilkesinde bir alan belirtilirse, istek 400 (Hatalı İstek) durum koduyla başarısız olur.

Her zaman tek bir kapsayıcı için en fazla beş ayrı erişim ilkesi ayarlanabilir. İstek gövdesinde beşten fazla erişim ilkesi geçirilirse, hizmet durum kodu 400 (Hatalı İstek) döndürür.

Paylaşılan erişim imzası, kapsayıcı verilerinin anonim okuma erişimi için kullanılabilir olup olmadığına bakılmaksızın kapsayıcı veya blob üzerinde yayımlanabilir. Paylaşılan erişim imzası, bir kaynağın nasıl, ne zaman ve kim tarafından erişilebilir hale getirilebileceği konusunda daha fazla denetim sağlar.

Not

Bir kapsayıcıda depolanan erişim ilkesi oluşturduğunuzda, ilkenin etkili olması 30 saniye kadar sürebilir. Bu aralık boyunca, ilke etkin olana kadar, depolanan erişim ilkesiyle ilişkili paylaşılan erişim imzası 403 (Yasak) durum koduyla başarısız olur.

Fatura

Fiyatlandırma istekleri, Blob Depolama API'lerini kullanan istemcilerden, doğrudan Blob Depolama REST API'si aracılığıyla veya bir Azure Depolama istemci kitaplığından kaynaklanabilir. Bu istekler işlem başına ücret tahakkuk eder. İşlem türü, hesabın ücretlendirilma şeklini etkiler. Örneğin, okuma işlemleri yazma işlemlerinden farklı bir faturalama kategorisine tahakkuk eder. Aşağıdaki tabloda, depolama hesabı türüne göre Set Container ACL istekleri için faturalama kategorisi gösterilmektedir:

İşlem Depolama hesabı türü Faturalama kategorisi
Kapsayıcı ACL'lerini ayarlama Premium blok blobu
Standart genel amaçlı v2
Diğer işlemler
Kapsayıcı ACL'lerini ayarlama Standart genel amaçlı v1 Yazma işlemleri

Belirtilen faturalama kategorisinin fiyatlandırması hakkında bilgi edinmek için bkz. azure blob depolama fiyatlandırması.

Ayrıca bkz.

Kapsayıcılara ve bloblara erişimi kısıtlama
Paylaşılan erişim imzası erişim temsilcisi
Paylaşılan erişim imzası oluşturma ve kullanma
Depolanan erişim ilkesi tanımlama
Kapsayıcı ACL'lerini
azure depolama
istekleri yetkilendirmeyi
Durumu ve hata kodları
blob hizmeti hata kodlarını