Kapsayıcılar ve bloblar için anonim okuma erişimini yapılandırma

Azure Depolama, kapsayıcılar ve bloblar için isteğe bağlı anonim okuma erişimini destekler. Varsayılan olarak, verilerinize anonim erişime hiçbir zaman izin verilmez. Anonim erişimi açıkça etkinleştirmediğiniz sürece, bir kapsayıcıya ve bloblarına yönelik tüm istekler yetkilendirilmelidir. Bir kapsayıcının erişim düzeyi ayarını anonim erişime izin vermek üzere yapılandırdığınızda, istemciler isteği yetkilendirmeden bu kapsayıcıdaki verileri okuyabilir.

Uyarı

Bir kapsayıcı anonim erişim için yapılandırıldığında, herhangi bir istemci bu kapsayıcıdaki verileri okuyabilir. Anonim erişim olası bir güvenlik riski sunar, bu nedenle senaryonuz gerekli değilse depolama hesabı için anonim erişimi düzeltmenizi öneririz.

Bu makalede, bir kapsayıcı ve blobları için anonim okuma erişiminin nasıl yapılandırıldığı açıklanır. En iyi güvenlik için anonim erişimi düzeltme hakkında bilgi için şu makalelerden birine bakın:

Anonim okuma erişimi hakkında

Verilerinize anonim erişim varsayılan olarak her zaman yasaktır. Anonim erişimi etkileyen iki ayrı ayar vardır:

  1. Depolama hesabı için anonim erişim ayarı. Azure Resource Manager depolama hesabı, hesap için anonim erişime izin verme veya izin verme ayarı sunar. Microsoft, en iyi güvenlik için depolama hesaplarınız için anonim erişime izin vermemenizi önerir.

    Hesap düzeyinde anonim erişime izin verildiğinde, kullanıcı kapsayıcının anonim erişim ayarını açıkça yapılandırmak için ek adım atmadığı sürece blob verileri anonim okuma erişimi için kullanılamaz.

  2. Kapsayıcının anonim erişim ayarını yapılandırın. Varsayılan olarak, kapsayıcının anonim erişim ayarı devre dışı bırakılır; başka bir deyişle kapsayıcıya veya verilerine yapılan her istek için yetkilendirme gerekir. Uygun izinlere sahip bir kullanıcı, kapsayıcının anonim erişim ayarını yalnızca depolama hesabı için anonim erişime izin verildiğinde anonim erişimi etkinleştirmek üzere değiştirebilir.

Aşağıdaki tabloda, iki ayarın birlikte bir kapsayıcı için anonim erişimi nasıl etkilediği özetlemektedir.

Kapsayıcı için anonim erişim düzeyi Özel olarak ayarlanmış (varsayılan ayar) Kapsayıcı için anonim erişim düzeyi Kapsayıcı olarak ayarlanır Kapsayıcı için anonim erişim düzeyi Blob olarak ayarlandı
Depolama hesabı için anonim erişime izin verilmiyor Depolama hesabındaki herhangi bir kapsayıcıya anonim erişim yok. Depolama hesabındaki herhangi bir kapsayıcıya anonim erişim yok. Depolama hesabı ayarı kapsayıcı ayarını geçersiz kılar. Depolama hesabındaki herhangi bir kapsayıcıya anonim erişim yok. Depolama hesabı ayarı kapsayıcı ayarını geçersiz kılar.
Depolama hesabı için anonim erişime izin verilir Bu kapsayıcıya anonim erişim yok (varsayılan yapılandırma). Bu kapsayıcıya ve bloblarına anonim erişime izin verilir. Bu kapsayıcıdaki bloblara anonim erişime izin verilir, ancak kapsayıcının kendisine izin verilmez.

Depolama hesabı için anonim erişime izin verildiğinde ve belirli bir kapsayıcı için yapılandırıldığında, yetkilendirme üst bilgisi olmadan geçirilen kapsayıcıdaki bir blobu okuma isteği hizmet tarafından kabul edilir ve blob verileri yanıtta döndürülür.

Depolama hesabı için anonim okuma erişimine izin verme veya erişimi reddetme

Depolama hesabı için anonim erişime izin verildiğinde, uygun izinlere sahip bir kullanıcı kapsayıcıdaki verilere anonim erişimi etkinleştirmek için kapsayıcının anonim erişim ayarını değiştirebilir. Kullanıcı kapsayıcının anonim erişim ayarını açıkça yapılandırmak için ek adım atmadığı sürece blob verileri hiçbir zaman anonim erişim için kullanılamaz.

Bir kapsayıcıya anonim erişimin her zaman varsayılan olarak kapalı olduğunu ve anonim isteklere izin vermek için açıkça yapılandırılması gerektiğini unutmayın. Depolama hesabındaki ayardan bağımsız olarak, uygun izinlere sahip bir kullanıcı kapsayıcıda anonim erişimi etkinleştirmek için bu ek adımı atmadığı sürece verileriniz anonim erişim için hiçbir zaman kullanılamaz.

Depolama hesabı için anonim erişime izin vermemek, bu depolama hesabındaki tüm kapsayıcıların erişim ayarlarını geçersiz kılar ve bu hesaptaki blob verilerine anonim erişimi engeller. Hesap için anonim erişime izin verilmediğinde, bir kapsayıcının erişim ayarını anonim erişime izin verecek şekilde yapılandırmak mümkün değildir ve gelecekte bu hesaba yapılan anonim istekler başarısız olur. Bu ayarı değiştirmeden önce, depolama hesabınızdaki verilere anonim olarak erişen istemci uygulamaları üzerindeki etkisini anladığınızdan emin olun. Daha fazla bilgi için bkz . Kapsayıcılara ve bloblara anonim okuma erişimini engelleme.

Önemli

Depolama hesabı için anonim erişime izin verilmedikten sonra anonim taşıyıcı sınamasını kullanan istemciler, Azure Depolama'ın 401 hatası (Yetkisiz) yerine 403 hatası (Yasak) döndürdüğünü bulur. Bu sorunu azaltmak için tüm kapsayıcıları özel hale getirmenizi öneririz. Kapsayıcılar için anonim erişim ayarını değiştirme hakkında daha fazla bilgi için bkz . Kapsayıcı için erişim düzeyini ayarlama.

Anonim erişime izin vermek veya erişimi reddetmek için Azure Depolama kaynak sağlayıcısının 2019-04-01 veya sonraki bir sürümü gerekir. Daha fazla bilgi için bkz. Azure Depolama Kaynak Sağlayıcısı REST API'si.

Anonim erişime izin verme izinleri

Depolama hesabının AllowBlobAnonymousAccess özelliğini ayarlamak için kullanıcının depolama hesapları oluşturma ve yönetme izinlerine sahip olması gerekir. Bu izinleri sağlayan Azure rol tabanlı erişim denetimi (Azure RBAC) rolleri Microsoft.Depolama/storageAccounts/write eylemi. Bu eyleme sahip yerleşik roller şunlardır:

Bir kullanıcının depolama hesabı için anonim erişime izin vermesine izin vermek için rol atamalarının kapsamının depolama hesabı düzeyine veya daha yüksek bir düzeye sahip olması gerekir. Rol kapsamı hakkında daha fazla bilgi için bkz . Azure RBAC kapsamını anlama.

Bu rollerin atamasını yalnızca depolama hesabı oluşturma veya özelliklerini güncelleştirme yeteneğine ihtiyaç duyan yönetici kullanıcılarla kısıtlamaya dikkat edin. Kullanıcıların görevlerini gerçekleştirmek için ihtiyaç duydukları en az izinlere sahip olduğundan emin olmak için en az ayrıcalık ilkesini kullanın. Azure RBAC ile erişimi yönetme hakkında daha fazla bilgi için bkz . Azure RBAC için en iyi yöntemler.

Bu roller, Microsoft Entra Id aracılığıyla bir depolama hesabındaki verilere erişim sağlamaz. Ancak Microsoft.Depolama Hesap erişim anahtarlarına erişim veren /storageAccounts/listkeys/action. Bu izinle, kullanıcı bir depolama hesabındaki tüm verilere erişmek için hesap erişim anahtarlarını kullanabilir.

Microsoft.Depolama/storageAccounts/listkeys/action, hesap anahtarları aracılığıyla veri erişimi verir, ancak kullanıcıya depolama hesabı için AllowBlobPublicAccess özelliğini değiştirme izni vermez. Depolama hesabınızdaki verilere erişmesi gereken ancak depolama hesabının yapılandırmasını değiştirme becerisine sahip olmaması gereken kullanıcılar için Depolama Blob Veri Katkıda Bulunanı, Depolama Blob Veri Okuyucusu veya Okuyucu ve Veri Erişimi gibi roller atamayı göz önünde bulundurun.

Dekont

Klasik abonelik yöneticisi rolleri Service Yönetici istrator ve Co-Yönetici istrator, Azure Resource Manager Sahip rolünün eşdeğerini içerir. Sahip rolü tüm eylemleri içerdiğinden, bu yönetim rollerinden birine sahip bir kullanıcı da depolama hesapları oluşturabilir ve hesap yapılandırmasını yönetebilir. Daha fazla bilgi için bkz . Azure rolleri, Microsoft Entra rolleri ve klasik abonelik yöneticisi rolleri.

Depolama hesabının AllowBlobPublicAccess özelliğini ayarlama

Depolama hesabı için anonim erişime izin vermek veya erişimi reddetmek için hesabın AllowBlobPublicAccess özelliğini ayarlayın. Bu özellik, Azure Resource Manager dağıtım modeliyle oluşturulan tüm depolama hesapları için kullanılabilir. Daha fazla bilgi için bkz. Depolama hesaba genel bakış.

Azure portalında bir depolama hesabı için anonim erişime izin vermek veya erişimi reddetmek için şu adımları izleyin:

  1. Azure portalda depolama hesabınıza gidin.

  2. Ayarlar altında Yapılandırma ayarını bulun.

  3. Blob anonim erişimine izin ver seçeneğini Etkin veya Devre Dışı olarak ayarlayın.

    Screenshot showing how to allow or disallow anonymous access for account

Dekont

Depolama hesabı için anonim erişime izin verilmemesi, bu depolama hesabında barındırılan hiçbir statik web sitesini etkilemez. $web kapsayıcısı her zaman genel olarak erişilebilir.

Depolama hesabı için anonim erişim ayarını güncelleştirdikten sonra, değişikliğin tamamen yayılması 30 saniye kadar sürebilir.

Bir kapsayıcı anonim erişim için yapılandırıldığında, bu kapsayıcıdaki blobları okuma isteklerinin yetkilendirilmesi gerekmez. Ancak, depolama hesabı için yapılandırılan tüm güvenlik duvarı kuralları etkin kalır ve yapılandırılmış ACL'lerle satır içi trafiği engeller.

Anonim erişime izin vermek veya erişimi reddetmek için Azure Depolama kaynak sağlayıcısının 2019-04-01 veya sonraki bir sürümü gerekir. Daha fazla bilgi için bkz. Azure Depolama Kaynak Sağlayıcısı REST API'si.

Bu bölümdeki örneklerde, anonim erişime şu anda izin verilip verilmediğini belirlemek için depolama hesabının AllowBlobPublicAccess özelliğinin nasıl okunduğu gösterilmiştir. Bir hesabın anonim erişim ayarının anonim erişimi engelleyecek şekilde yapılandırıldığını doğrulamayı öğrenmek için bkz . Depolama hesabı için anonim erişimi düzeltme.

Kapsayıcı için anonim erişim düzeyini ayarlama

Anonim kullanıcılara kapsayıcıya ve bloblarına okuma erişimi vermek için önce depolama hesabı için anonim erişime izin verin, ardından kapsayıcının anonim erişim düzeyini ayarlayın. Depolama hesabı için anonim erişim reddedilirse, kapsayıcı için anonim erişimi yapılandıramazsınız.

Dikkat

Microsoft, depolama hesabınızdaki blob verilerine anonim erişim izni vermenizi önerir.

Depolama hesabı için anonim erişime izin verildiğinde, kapsayıcıyı aşağıdaki izinlerle yapılandırabilirsiniz:

  • Genel okuma erişimi yok: Kapsayıcıya ve bloblarına yalnızca yetkili bir istekle erişilebilir. Bu seçenek tüm yeni kapsayıcılar için varsayılan seçenektir.
  • Yalnızca bloblar için genel okuma erişimi: Kapsayıcı içindeki bloblar anonim istekle okunabilir, ancak kapsayıcı verileri anonim olarak kullanılamaz. Anonim istemciler kapsayıcı içindeki blobları numaralandıramaz.
  • Kapsayıcı ve blobları için genel okuma erişimi: Kapsayıcı ve blob verileri, kapsayıcı izin ayarları ve kapsayıcı meta verileri dışında anonim istek tarafından okunabilir. İstemciler anonim istekle kapsayıcı içindeki blobları numaralandırabilir, ancak depolama hesabı içindeki kapsayıcıları numaralandıramaz.

Tek bir blob için anonim erişim düzeyini değiştiremezsiniz. Anonim erişim düzeyi yalnızca kapsayıcı düzeyinde ayarlanır. Kapsayıcıyı oluştururken kapsayıcının anonim erişim düzeyini ayarlayabilir veya mevcut bir kapsayıcıda bu ayarı güncelleştirebilirsiniz.

Azure portalında var olan bir veya daha fazla kapsayıcının anonim erişim düzeyini güncelleştirmek için şu adımları izleyin:

  1. Azure portalında depolama hesabınıza genel bakış bölümüne gidin.

  2. Menü dikey penceresindeki Veri depolama'nın altında Kapsayıcılar'ı seçin.

  3. Anonim erişim düzeyini ayarlamak istediğiniz kapsayıcıları seçin.

  4. Anonim erişim ayarlarını görüntülemek için Erişim düzeyini değiştir düğmesini kullanın.

  5. Anonim erişim düzeyi açılan listesinden istediğiniz anonim erişim düzeyini seçin ve değişikliği seçili kapsayıcılara uygulamak için Tamam düğmesine tıklayın.

    Screenshot showing how to set anonymous access level in the portal.

Depolama hesabı için anonim erişime izin verilmediğinde, kapsayıcının anonim erişim düzeyi ayarlanamaz. Kapsayıcının anonim erişim düzeyini ayarlamaya çalışırsanız, hesap için anonim erişime izin verilmediğinden ayarın devre dışı bırakıldığını görürsünüz.

Screenshot showing that setting a container's anonymous access level is blocked when anonymous access disallowed for the account

Bir kapsayıcı kümesi için anonim erişim ayarını denetleyin

Bir veya daha fazla depolama hesabındaki hangi kapsayıcıların anonim erişim için yapılandırıldığını denetlemek için kapsayıcıları listelemek ve anonim erişim ayarını denetlemek mümkündür. Bu yaklaşım, bir depolama hesabı çok fazla sayıda kapsayıcı içermediğinde veya az sayıda depolama hesabında ayarı denetlediğinizde pratik bir seçenektir. Ancak, çok sayıda kapsayıcı listelemeye çalışırsanız performans olumsuz etkilenebilir.

Aşağıdaki örnek, bir depolama hesabındaki tüm kapsayıcılar için anonim erişim ayarını almak için PowerShell'i kullanır. Köşeli ayraç içindeki yer tutucu değerlerini kendi değerlerinizle değiştirmeyi unutmayın:

$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess

Özellik desteği

Bu özellik için destek, Data Lake Storage 2. Nesil, Ağ Dosya Sistemi (NFS) 3.0 protokolü veya SSH Dosya Aktarım Protokolü (SFTP) etkinleştirilerek etkilenebilir. Bu özelliklerden herhangi birini etkinleştirdiyseniz bu özelliğin desteğini değerlendirmek için bkz. Azure Depolama hesaplarında Blob Depolama özellik desteği.

Sonraki adımlar