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:
- Blob verilerine anonim okuma erişimini düzeltme (Azure Resource Manager dağıtımları)
- Blob verilerine anonim okuma erişimini düzeltme (klasik dağıtımlar)
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:
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.
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, bu kapsayıcıda üst bilgi olmadan geçirilen bir Authorization
blobu okuma isteği hizmet tarafından kabul edilir ve blob verileri yanıtta döndürülür. Ancak, istek bir Authorization
üst bilgiyle geçirilirse, depolama hesabındaki anonim erişim yoksayılır ve istek sağlanan kimlik bilgilerine göre yetkilendirilir.
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 vermek üzere 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şebilecek 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ı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.Storage/storageAccounts/write eylemini içerir. Bu eyleme sahip yerleşik roller şunlardır:
- Azure Resource Manager Sahip rolü
- Azure Resource Manager Katkıda Bulunan rolü
- Depolama Hesabına Katkıda Bulunan rolü
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, hesap erişim anahtarlarına erişim izni veren Microsoft.Storage/storageAccounts/listkeys/action öğesini içerir. Bu izinle, kullanıcı bir depolama hesabındaki tüm verilere erişmek için hesap erişim anahtarlarını kullanabilir.
Microsoft.Storage/storageAccounts/listkeys/action hesabı anahtarları aracılığıyla veri erişimi verir, ancak kullanıcıya depolama hesabının AllowBlobPublicAccess özelliğini değiştirme olanağı 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 Blobu Veri Katkıda Bulunanı, Depolama Blobu Veri Okuyucusu veya Okuyucu ve Veri Erişimi gibi roller atamayı göz önünde bulundurun.
Not
Klasik abonelik yöneticisi rolleri Hizmet Yöneticisi ve Ortak Yönetici, 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 hesabına 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:
Azure portalda depolama hesabınıza gidin.
Ayarlar'ın altında Yapılandırma ayarını bulun.
Blob anonim erişimine izin ver seçeneğini Etkin veya Devre Dışı olarak ayarlayın.
Not
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 yetkilendirilmiş olması 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:
Azure portalında depolama hesabınıza genel bakış bölümüne gidin.
Menü dikey penceresindeki Veri depolama'nın altında Kapsayıcılar'ı seçin.
Anonim erişim düzeyini ayarlamak istediğiniz kapsayıcıları seçin.
Anonim erişim ayarlarını görüntülemek için Erişim düzeyini değiştir düğmesini kullanın.
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üğmesini seçin.
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 bu ayar devre dışı bırakılır.
Bir kapsayıcı kümesi için anonim erişim ayarını denetleyin
Bir veya daha fazla depolama hesabında 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 özelliği desteği.