Azure Depolama hesabı için paylaşılan anahtar yetkilendirmesini engelleyin

Azure Depolama hesabına yönelik her güvenli istek yetkilendirilmelidir. varsayılan olarak, isteklere Azure Active Directory (Azure AD) kimlik bilgileriyle veya paylaşılan anahtar yetkilendirmesi için hesap erişim anahtarı kullanılarak yetki atanabilir. Bu iki tür yetkilendirme, Azure AD, paylaşılan anahtar üzerinde üstün güvenlik ve kullanım kolaylığı sağlar ve Microsoft tarafından önerilir. İstemcilerin istekleri yetkilendirmek için Azure AD 'yi kullanmalarını gerektirmek için, paylaşılan anahtarla yetkilendirilmiş depolama hesabına yönelik isteklere izin verebilirsiniz.

bir depolama hesabı için paylaşılan anahtar yetkilendirmesinin yetkisini kaldırdığınızda, Azure Depolama, hesap erişim anahtarlarıyla yetkilendirilmiş olan bu hesaba yapılan tüm sonraki istekleri reddeder. Yalnızca Azure AD ile yetkilendirilmiş güvenli istekler başarılı olur. azure AD kullanma hakkında daha fazla bilgi için bkz. azure Depolama verilere erişim yetkisi verme.

Bu makalede, paylaşılan anahtar yetkilendirmesi ile gönderilen isteklerin nasıl algılanacağı ve depolama hesabınız için paylaşılan anahtar yetkilendirmesinin nasıl düzeltileceği açıklanır.

İstemci uygulamaları tarafından kullanılan yetkilendirme türünü Algıla

Bir depolama hesabı için paylaşılan anahtar yetkilendirmesine izin vermemek istediğinizde, paylaşılan anahtar yetkilendirmesi için hesap erişim anahtarlarını kullanan istemcilerden gelen istekler başarısız olur. Bu değişikliği yapmadan önce paylaşılan anahtar yetkilendirmesi 'nin istemci uygulamalarını nasıl etkileyebileceğini anlamak için, depolama hesabı için günlük ve ölçümleri etkinleştirin. Daha sonra isteklerin nasıl yetkilendirildiği hakkında bir süre boyunca hesabınıza yönelik isteklerin desenlerini analiz edebilirsiniz.

Paylaşılan anahtar veya paylaşılan erişim imzası (SAS) ile yetkilendirilmiş depolama hesabının kaç istek aldığını öğrenmek için ölçümleri kullanın. Hangi istemcilerin bu istekleri gönderdiğini öğrenmek için günlükleri kullanın.

Bir SAS, paylaşılan anahtar veya Azure AD ile yetkilendirilmiş olabilir. Paylaşılan erişim imzasıyla yapılan isteklerin yorumlanması hakkında daha fazla bilgi için bkz. paylaşılan ANAHTARıN SAS belirteçlerini nasıl etkilediğini anlayın.

Paylaşılan anahtarla kaç istek yetkilendirileceğini izleme

Bir depolama hesabına yönelik isteklerin nasıl yetkilendirildiğini izlemek için Azure portal Azure Ölçüm Gezgini kullanın. Ölçüm Gezgini hakkında daha fazla bilgi için bkz. Azure Ölçüm Gezginikullanmaya başlama.

Paylaşılan anahtar veya SAS ile yapılan istekleri izleyen bir ölçüm oluşturmak için aşağıdaki adımları izleyin:

  1. Azure portalda depolama hesabınıza gidin. İzleme bölümünde ölçümler' i seçin.

  2. Ölçüm ekle seçeneğini belirleyin. Ölçüm iletişim kutusunda aşağıdaki değerleri belirtin:

    1. Kapsam alanını depolama hesabının adı olarak ayarlayın.
    2. Ölçüm ad alanını Hesap olarak ayarlayın. Bu ölçüm, depolama hesabına yönelik tüm istekleri rapor eder.
    3. Ölçüm alanını işlemler olarak ayarlayın.
    4. Toplama alanını Sum olarak ayarlayın.

    Yeni ölçüm, belirli bir zaman aralığı boyunca depolama hesabına göre işlem sayısı toplamını görüntüler. Ortaya çıkan ölçüm, aşağıdaki görüntüde gösterildiği gibi görünür:

    Paylaşılan anahtar veya SAS ile yapılan işlemleri toplamak için metriğin nasıl yapılandırılacağını gösteren ekran görüntüsü

  3. Ardından, yetkilendirme türüyle ilgili ölçüm üzerinde bir filtre oluşturmak için Filtre Ekle düğmesini seçin.

  4. Filtre iletişim kutusunda aşağıdaki değerleri belirtin:

    1. Özellik değerini kimlik doğrulama olarak ayarlayın.
    2. İşleç alanını eşittir işareti (=) olarak ayarlayın.
    3. Değerler alanında hesap anahtarı ve SAS' ı seçin.
  5. Sağ üst köşede, ölçüsünü görüntülemek istediğiniz zaman aralığını seçin. Ayrıca, isteklerin toplanmasının ne kadar ayrıntılı olduğunu, 1 dakikadan 1 aya kadar bir yerde aralıklar belirterek belirtebilirsiniz. Örneğin, son 30 gün içinde güne göre toplanan istekleri görmek için zaman aralığını 30 güne ve zaman parçalı olarak 1 güne ayarlayın.

Ölçüyü yapılandırdıktan sonra, depolama hesabınıza yönelik istekler grafikte görünmeye başlar. Aşağıdaki görüntüde, paylaşılan anahtarla yetkilendirilmiş veya bir SAS belirteciyle oluşturulan istekler gösterilmektedir. İstekler, son otuz gün içinde gün başına toplanır.

Paylaşılan anahtarla yetkilendirilmiş toplanmış istekleri gösteren ekran görüntüsü

Depolama hesabınızda paylaşılan anahtarla yetkilendirilmiş belirli sayıda istek yapıldığında size bildirimde bulunan bir uyarı kuralı da yapılandırabilirsiniz. Daha fazla bilgi için bkz. Azure izleyici kullanarak ölçüm uyarıları oluşturma, görüntüleme ve yönetme.

Paylaşılan anahtar veya SAS ile istekleri yetkilendirmek isteyen istemcileri tanımlamak için günlükleri çözümleyin

Azure Depolama, bir isteğin nasıl yetkilendirildiği de dahil olmak üzere depolama hesabında yapılan isteklerle ilgili ayrıntıları yakalar. Hangi istemcilerin paylaşılan anahtar veya SAS belirteci ile istekleri yetkilendirtiğini belirleyen günlükleri çözümleyebilirsiniz.

istekleri nasıl yetkilendirdiğini değerlendirmek amacıyla azure Depolama hesabınıza kaydetmek için azure izleyici 'de (önizleme) azure Depolama günlüğü ' ne yararlanabilirsiniz. daha fazla bilgi için bkz. Azure Depolama izleme.

azure izleyici 'de azure Depolama günlüğü, günlük verilerini çözümlemek için günlük sorgularının kullanılmasını destekler. Günlükleri sorgulamak için bir Azure Log Analytics çalışma alanı kullanabilirsiniz. Günlük sorguları hakkında daha fazla bilgi edinmek için bkz. öğretici: Log Analytics sorguları kullanmaya başlama.

Azure portal bir tanılama ayarı oluşturun

azure Depolama verilerini azure izleyici ile günlüğe kaydetmek ve azure Log Analytics ile çözümlemek için, önce hangi istek türlerini ve hangi depolama hizmetlerini günlüğe kaydetmek istediğinizi belirten bir tanılama ayarı oluşturmanız gerekir. Azure portal bir tanılama ayarı oluşturmak için aşağıdaki adımları izleyin:

  1. Azure Depolama hesabınızı içeren abonelikte yeni bir Log Analytics çalışma alanı oluşturun veya mevcut bir Log Analytics çalışma alanını kullanın. Depolama hesabınız için günlüğe kaydetmeyi yapılandırdıktan sonra, Günlükler Log Analytics çalışma alanında kullanılabilir. Daha fazla bilgi için Azure portal Log Analytics çalışma alanı oluşturmabölümüne bakın.

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

  3. Izleme bölümünde Tanılama ayarları (Önizleme) öğesini seçin.

  4. isteklerini günlüğe kaydetmek istediğiniz Azure Depolama hizmetini seçin. Örneğin, istekleri blob depolamaya kaydetmek için BLOB ' u seçin.

  5. Tanılama ayarı ekle’yi seçin.

  6. Tanılama ayarı için bir ad girin.

  7. Kategori ayrıntıları' nın altında, günlük bölümünde, tüm veri isteklerini seçili hizmete kaydetmek için storageread, storagewrite ve storagedelete ' i seçin.

  8. Hedef ayrıntıları altında Log Analytics gönder' i seçin. Aşağıdaki görüntüde gösterildiği gibi aboneliğinizi ve daha önce oluşturduğunuz Log Analytics çalışma alanını seçin.

    İstekleri günlüğe kaydetmek için bir tanılama ayarı oluşturmayı gösteren ekran görüntüsü

depolama hesabınızdaki her bir Azure Depolama kaynağı türü için bir tanılama ayarı oluşturabilirsiniz.

Tanılama ayarını oluşturduktan sonra depolama hesabına yönelik istekler daha sonra bu ayara göre günlüğe kaydedilir. Daha fazla bilgi için bkz. Azure 'da kaynak günlüklerini ve ölçümleri toplamak için tanılama ayarı oluşturma.

azure izleyici 'de azure Depolama günlüklerinde bulunan alanların bir başvurusu için bkz. kaynak günlükleri (önizleme).

Paylaşılan anahtar veya SAS ile yapılan istekler için sorgu günlükleri

azure izleyici 'de azure Depolama günlükleri, bir depolama hesabına istek yapmak için kullanılan yetkilendirme türünü içerir. Paylaşılan anahtar veya SAS ile yetkilendirilmiş son yedi gün içinde yapılan isteklerin günlüklerini almak için Log Analytics çalışma alanınızı açın. Sonra, aşağıdaki sorguyu yeni bir günlük sorgusuna yapıştırın ve çalıştırın. Bu sorgu, paylaşılan anahtar veya SAS ile yetkilendirilmiş en sık gönderilen isteklerin on IP adresini görüntüler:

StorageBlobLogs
| where AuthenticationType in ("AccountKey", "SAS") and TimeGenerated > ago(7d)
| summarize count() by CallerIpAddress, UserAgentHeader, AccountName
| top 10 by count_ desc

Ayrıca, paylaşılan anahtar veya SAS ile yetkilendirilmiş istekler hakkında bildirim almak için bu sorguya dayalı bir uyarı kuralı yapılandırabilirsiniz. Daha fazla bilgi için bkz. Azure izleyici kullanarak günlük uyarıları oluşturma, görüntüleme ve yönetme.

Paylaşılan anahtar aracılığıyla yetkilendirmeyi düzelt

Depolama Hesabınıza yönelik isteklerin nasıl yetkilendirildiği çözümlendikten sonra, paylaşılan anahtar aracılığıyla erişimi engellemek için işlem yapabilirsiniz. Ancak, bunun yerine Azure AD 'yi kullanmak için paylaşılan anahtar yetkilendirmesi kullanan uygulamaları güncelleştirmeniz gerekir. Geçiş izlemek için istemci uygulamalar tarafından kullanılan yetkilendirme türünü algılama bölümünde açıklandığı gibi günlükleri ve ölçümleri izleyebilirsiniz. azure AD 'yi kullanarak bir depolama hesabındaki verilere erişme hakkında daha fazla bilgi için bkz. azure Depolama verilere erişim yetkisi verme.

Paylaşılan anahtarla yetkilendirilmiş istekleri güvenli bir şekilde reddedebileceğiniz konusunda emin olduğunuzda, depolama hesabı için Allowsharedkeyaccess özelliğini false olarak ayarlayabilirsiniz.

Allowsharedkeyaccess özelliği varsayılan olarak ayarlı değildir ve açıkça ayarlanana kadar bir değer döndürmez. Depolama hesabı, özellik değeri null olduğunda veya true olduğunda paylaşılan anahtarla yetkilendirilmiş isteklere izin verir.

Uyarı

Herhangi bir istemci şu anda paylaşılan anahtarla Depolama hesabınızdaki verilere erişiyorsa, Microsoft, depolama hesabına paylaşılan anahtar erişimine izin vermeden önce bu istemcileri Azure AD 'ye geçirmenize olanak önerir.

Azure portal bir depolama hesabı için paylaşılan anahtar yetkilendirmesi engellemek için şu adımları izleyin:

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

  2. Ayarlar altındaki yapılandırma ayarını bulun.

  3. Paylaşılan anahtar erişimine Izin ver ' i devre dışı olarak ayarla.

    Hesap için paylaşılan anahtar erişiminin nasıl engelileceğini gösteren ekran görüntüsü

Paylaşılan anahtar yetkilendirmesine izin verdikten sonra, paylaşılan anahtar yetkilendirmesi olan depolama hesabına bir istek yapılması 403 (yasak) hata koduyla başarısız olur. Azure Depolama, depolama hesabında anahtar tabanlı yetkilendirmeye izin verilmediğini belirten bir hata döndürür.

Allowsharedkeyaccess özelliği yalnızca Azure Resource Manager dağıtım modelini kullanan depolama hesapları için desteklenir. Hangi depolama hesaplarının Azure Resource Manager dağıtım modelini kullanması hakkında daha fazla bilgi için bkz. depolama hesabı türleri.

Paylaşılan anahtar erişimine izin verilmediğini doğrulayın

Paylaşılan anahtar yetkilendirmesinin artık izin verilmediğini doğrulamak için, hesap erişim anahtarıyla bir veri işlemini çağırmayı deneyebilirsiniz. Aşağıdaki örnek, erişim anahtarını kullanarak bir kapsayıcı oluşturmaya çalışır. Depolama hesabı için paylaşılan anahtar yetkilendirmesi devre dışı bırakıldığında bu çağrı başarısız olur. Köşeli ayraçlar içindeki yer tutucu değerlerini kendi değerlerinizle değiştirmeyi unutmayın:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --account-key <key> \
    --auth-mode key

Not

Anonim istekler yetkilendirilmemiş ve anonim genel okuma erişimi için depolama hesabı ve kapsayıcısını yapılandırdıysanız devam edecektir. Daha fazla bilgi için bkz. kapsayıcılar ve Bloblar için anonim genel okuma erişimini yapılandırma.

Birden çok hesap için paylaşılan anahtar erişim ayarını denetleyin

en iyi performansa sahip bir dizi depolama hesabı genelinde paylaşılan anahtar erişimi ayarını denetlemek için Azure portal Azure kaynak Graph gezgini ' ni kullanabilirsiniz. kaynak Graph gezginini kullanma hakkında daha fazla bilgi edinmek için bkz. hızlı başlangıç: Azure kaynak Graph gezginini kullanarak ilk kaynak Graph sorgunuzu çalıştırma.

Graph gezgini kaynak üzerinde aşağıdaki sorguyu çalıştırmak, depolama hesaplarının bir listesini döndürür ve her bir hesap için paylaşılan anahtar erişim ayarını görüntüler:

resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend allowSharedKeyAccess = parse_json(properties).allowSharedKeyAccess
| project subscriptionId, resourceGroup, name, allowSharedKeyAccess

Paylaşılan anahtar erişimine izin verme veya erişimi verme izinleri

Depolama hesabı için Allowsharedkeyaccess özelliğini ayarlamak için, bir kullanıcının depolama hesapları oluşturma ve yönetme izinleri olması gerekir. bu izinleri sağlayan Azure rol tabanlı erişim denetimi (azure RBAC) rolleri, microsoft. Depolama/storageaccounts/write veya microsoft. Depolama/storageaccounts/ * action ' i içerir. Bu eylemle birlikte yerleşik roller şunlardır:

Bu roller, Azure Active Directory (Azure AD) aracılığıyla bir depolama hesabındaki verilere erişim sağlamaz. ancak, hesap erişim anahtarlarına erişim izni veren Microsoft. Depolama/storageaccounts/listkeys/action' ı içerirler. Bu izinle, bir Kullanıcı, bir depolama hesabındaki tüm verilere erişmek için hesap erişim anahtarlarını kullanabilir.

Rol atamaları, bir kullanıcının depolama hesabı için paylaşılan anahtar erişimine izin verip vermemesine izin vermek için depolama hesabı düzeyi veya daha yüksek olmalıdır. Rol kapsamı hakkında daha fazla bilgi için bkz. Azure RBAC kapsamını anlama.

Bu rollerin atamasını yalnızca bir depolama hesabı oluşturma veya özelliklerini güncelleştirme yeteneğine ihtiyaç duyan kullanıcılarla sınırlandırmamaya dikkat edin. Kullanıcıların görevlerini gerçekleştirmek için ihtiyacı olan 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 uygulamalar.

Not

Klasik abonelik yöneticisi rolleri hizmet yöneticisi ve Co-Administrator Azure Resource Manager sahip rolünün eşdeğerini içerir. Sahip rolü tüm eylemleri içerir, bu nedenle bu yönetici rollerinden birine sahip bir kullanıcı da depolama hesapları oluşturabilir ve yönetebilir. Daha fazla bilgi için bkz. Klasik abonelik yöneticisi rolleri, Azure rolleri ve Azure AD yönetici rolleri.

Paylaşılan anahtarın SAS belirteçlerini nasıl etkileyeceğini anlayın

depolama hesabı için paylaşılan anahtar erişimine izin verilirse Azure Depolama sas türlerini ve istek tarafından hedeflenen hizmeti temel alan sas belirteçlerini işler. aşağıdaki tabloda her bir SAS türünün nasıl yetkilendirildiği ve depolama hesabı için allowsharedkeyaccess özelliği false olduğunda Azure Depolama bu sas 'ın nasıl işleneceği gösterilmektedir.

SAS türü Yetkilendirme türü AllowSharedKeyAccess false olduğunda davranış
Kullanıcı temsili SAS (yalnızca BLOB depolama) Azure AD İsteğe izin verilir. Microsoft, üstün güvenlik için mümkün olduğunda Kullanıcı temsili SAS kullanılmasını önerir.
Hizmet SAS Paylaşılan Anahtar tüm Azure Depolama hizmetleri için istek reddedildi.
Hesap SAS Paylaşılan Anahtar tüm Azure Depolama hizmetleri için istek reddedildi.

Azure Izleyici 'de Azure ölçümleri ve günlüğe kaydetme, farklı türdeki paylaşılan erişim imzalarının birbirinden ayırt etmez. azure Ölçüm Gezgini sas filtresi ve azure 'da oturum açma Depolama azure izleyici, her ikisi de herhangi bir sa türüyle yetkilendirilmiş istekleri rapor ediyor. Ancak, farklı türlerdeki paylaşılan erişim imzaları farklı şekilde yetkilendirilir ve paylaşılan anahtar erişimine izin verilmezse farklı şekilde davranır:

  • Bir hizmet SAS belirteci veya hesap SAS belirteci paylaşılan anahtarla yetkilendirildi ve Allowsharedkeyaccess özelliği false olarak ayarlandığında blob depolamaya yönelik bir istekte izin verilmez.
  • Kullanıcı temsili SAS, Azure AD ile yetkilendirildi ve Allowsharedkeyaccess özelliği false olarak ayarlandığında blob depolamaya yönelik bir istekte izin verilecek.

Depolama hesabınıza trafiği değerlendirirken, istemci uygulamaları tarafından kullanılan yetkilendirme türünü algılama bölümünde açıklandığı gibi ölçüm ve günlüklerin, bir Kullanıcı temsili SAS ile yapılan istekleri dahil olabileceğini göz önünde bulundurun.

paylaşılan erişim imzaları hakkında daha fazla bilgi için bkz. paylaşılan erişim imzaları (SAS) kullanarak Azure Depolama kaynaklarına sınırlı erişim verme.

Diğer Azure araçları ve hizmetleriyle uyumluluğu göz önünde bulundurun

birçok azure hizmeti, azure Depolama iletişim kurmak için paylaşılan anahtar yetkilendirmesi kullanır. Bir depolama hesabı için paylaşılan anahtar yetkilendirmesine izin verirseniz, bu hizmetler bu hesaptaki verilere erişemez ve uygulamalarınız olumsuz etkilenebilir.

bazı azure araçları, azure Depolama erişmek için azure AD yetkilendirmesi kullanma seçeneği sunar. aşağıdaki tabloda bazı popüler azure araçları ve azure Depolama isteklerini yetkilendirmek için azure AD kullanıp kullanamayacağını not eden notlar listelenmektedir.

Azure aracı azure Depolama azure AD yetkilendirmesi
Azure portal Destekleniyor. Azure portal Azure AD hesabınızla yetkilendirme hakkında daha fazla bilgi için bkz. Azure Portal blob verilerine erişim yetkisi verme.
AzCopy BLOB depolama için desteklenir. AzCopy işlemlerini yetkilendirme hakkında daha fazla bilgi için bkz. AzCopy belgelerinde Yetkilendirme kimlik bilgilerini nasıl sağlayacaksınız .
Azure Depolama Gezgini yalnızca Blob depolama ve Azure Data Lake Storage 2. için desteklenir. Kuyruk depolamaya Azure AD erişimi desteklenmiyor. Doğru Azure AD kiracısını seçtiğinizden emin olun. daha fazla bilgi için bkz. Depolama Gezgini kullanmaya başlama
Azure PowerShell Destekleniyor. Azure AD ile blob veya kuyruk işlemleri için PowerShell komutlarının nasıl yetkilendirdiği hakkında daha fazla bilgi için bkz. blob verilerine erişmek için Azure ad kimlik bilgileriyle PowerShell komutlarını çalıştırma veya kuyruk verilerine ERIŞIM için Azure AD kimlik bilgileriyle PowerShell komutlarını çalıştırma.
Azure CLI Destekleniyor. Blob ve kuyruk verilerine erişim için Azure AD ile Azure CLı komutlarına yetki verme hakkında bilgi için bkz. BLOB veya kuyruk verilerine erişmek için Azure AD kimlik bilgileriyle Azure CLI komutlarını çalıştırma.
Azure IoT Hub Destekleniyor. Daha fazla bilgi için bkz. sanal ağlar için IoT Hub desteği.
Azure Cloud Shell Azure Cloud Shell, Azure portal tümleşik bir kabuktur. Azure Cloud Shell, depolama hesabındaki bir Azure dosya paylaşımında Kalıcılık için dosya barındırır. Bu depolama hesabı için paylaşılan anahtar yetkilendirmesi devre dışı bırakılırsa, bu dosyalar erişilemez duruma getirilir. daha fazla bilgi için, bkz. Microsoft Azure dosya depolamayı Bağlan.

Paylaşılan anahtar erişimine izin verilmeyen depolama hesaplarını yönetmek için Azure Cloud Shell komutları çalıştırmak için, önce Azure RBAC aracılığıyla bu hesaplara gerekli izinleri vermiş olduğunuzdan emin olun. Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (Azure RBAC) nedir?.

Geçiş Azure Dosyalar ve Tablo depolama iş yükleri

Azure Depolama, yalnızca Blob ve Kuyruk depolamaya yönelik istekler için Azure AD yetkilendirmeyi destekler. Bir depolama hesabı için Paylaşılan Anahtar ile yetkilendirmeye izin Azure Dosyalar Paylaşılan Anahtar yetkilendirmesi kullanan Tablo depolamaya yönelik istekler başarısız olur. Depolama Azure portal dosya ve tablo verilerine erişmek için her zaman Paylaşılan Anahtar yetkilendirmesi kullandığı için, depolama hesabı için Paylaşılan Anahtar ile yetkilendirmeye izin vermezsiniz, depolama hesabı içinde dosya veya tablo verilerine erişe Azure portal.

Microsoft, Paylaşılan Anahtar aracılığıyla hesaba erişimine izin vermezseniz veya bu ayarı Azure Dosyalar veya Tablo depolama iş yüklerini destekleyen depolama hesaplarına uygulamadan önce herhangi bir Azure Dosyalar veya Tablo depolama verilerini ayrı bir depolama hesabına geçirmenizi önermektedir.

Bir depolama hesabı için Paylaşılan Anahtar erişiminin izin ve Azure Dosyalar.

Sonraki adımlar