Depolama hesabına yönelik istekler için Aktarım Katmanı Güvenliği'nin (TLS) gerekli en düşük sürümünü zorunlu kılma

bir istemci uygulaması ile Azure Depolama hesabı arasındaki iletişim Aktarım Katmanı Güvenliği (TLS) kullanılarak şifrelenir. TLS, istemcilerle hizmetler arasında İnternet üzerinden gizliliği ve veri bütünlüğünü güvence altına alan standart bir şifreleme protokolüdür. TLS hakkında daha fazla bilgi için bkz . Aktarım Katmanı Güvenliği.

Azure Depolama şu anda TLS protokolünün üç sürümünü destekler: 1.0, 1.1 ve 1.2. Azure Depolama genel HTTPS uç noktaları üzerinde TLS 1.2 kullanır, ancak geriye dönük uyumluluk için TLS 1.0 ve TLS 1.1 hala desteklenmektedir.

İpucu

Azure Depolama, OpenSSL tabanlı olmayan ve bu nedenle OpenSSL ile ilgili güvenlik açıklarına açık olmayan SSL'nin Windows uygulamasına dayanır.

Azure Depolama hesapları, istemcilerin en eski TLS, TLS 1.0 ve üzeri sürüme sahip verileri gönderip almasına izin verir. Daha katı güvenlik önlemleri uygulamak için, depolama hesabınızı istemcilerin daha yeni bir TLS sürümüyle veri gönderip almasını gerektirecek şekilde yapılandırabilirsiniz. Depolama hesabı en düşük TLS sürümünü gerektiriyorsa, eski bir sürümle yapılan istekler başarısız olur.

Bu makalede, depolama hesaplarınız için güvenli TLS'yi sürekli yönetmek için DRAG (Algılama-Düzeltme-Denetim-İdaresi) çerçevesinin nasıl kullanılacağı açıklanmaktadır.

bir istemci uygulamasından istek gönderirken BELIRLI bir TLS sürümünü belirtme hakkında bilgi için bkz . İstemci uygulaması için Aktarım Katmanı Güvenliğini (TLS) Yapılandırma.

Not

İstemciler bir depolama hesabına veri gönderdiğinde ve depolama hesabından veri aldığında kullanılan şifreleme paketi, kullanılan TLS sürümüne bağlıdır. Bir depolama hesabını, en düşük TLS sürümünü gerektirmek dışında belirli şifrelemelerin kullanımını engelleyecek şekilde yapılandırmak mümkün değildir. Depolama hesabınıza bağlanırken yalnızca belirli şifreleme paketlerine izin verme yeteneğine ihtiyacınız varsa Azure Uygulaması lication Gateway'i kullanmayı göz önünde bulundurun. Bu amaçla Application Gateway kullanma hakkında daha fazla bilgi için bkz. Azure Uygulaması lication Gateway'de TLS ilke sürümlerini ve şifreleme paketlerini yapılandırma.

İstemci uygulamaları tarafından kullanılan TLS sürümünü algılama

Depolama hesabınız için en düşük TLS sürümünü uyguladığınızda, eski bir TLS sürümüyle veri gönderen istemcilerden gelen istekleri reddetme riskiyle karşı karşıyasınız. Microsoft, en düşük TLS sürümünü yapılandırmanın istemci uygulamalarını nasıl etkileyebileceğini anlamak için Azure Depolama hesabınız için günlüğe kaydetmeyi etkinleştirmenizi ve TLS istemci uygulamalarının hangi sürümlerini kullandığını algılamak için günlükleri bir süre sonra analiz etmenizi önerir.

Azure Depolama hesabınızdaki istekleri günlüğe kaydetmek ve istemci tarafından kullanılan TLS sürümünü belirlemek için Azure İzleyici'de Azure Depolama günlüğünü kullanabilirsiniz. Daha fazla bilgi için bkz. Azure Depolama izleme.

Azure İzleyici'de Azure Depolama günlüğü, günlük verilerini analiz etmek 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ını kullanmaya başlama.

Azure İzleyici ile Azure Depolama verilerini günlüğe kaydetmek ve Azure Log Analytics ile analiz etmek isterseniz, önce ne tür istekler ve hangi depolama hizmetleri için verileri günlüğe kaydetmek istediğinizi belirten bir tanılama ayarı oluşturmanız gerekir. Azure portalda bir tanılama ayarı oluşturmak için şu adımları izleyin:

  1. Azure Depolama hesabınızı içeren abonelikte yeni bir Log Analytics çalışma alanı oluşturun. 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 portalda Log Analytics çalışma alanı oluşturma bölümüne bakın.

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

  3. İzleme bölümünde Tanılama ayarları öğesini seçin.

  4. İstekleri 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 belirtin.

  7. Kategori ayrıntıları'nın altındaki günlük bölümünde, günlüğe kaydedilecek istek türlerini seçin. Okuma, yazma ve silme isteklerini günlüğe kaydedebilirsiniz. Örneğin, Depolama Read ve Depolama Write seçildiğinde okuma ve yazma istekleri seçili hizmete kaydedilir.

  8. Hedef ayrıntıları altında Log Analytics’e Gönder seçeneğini belirleyin. 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.

    Günlük istekleri için tanılama ayarının nasıl oluşturulacağını gösteren ekran görüntüsü

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 İzleyici'deki Azure Depolama günlüklerinde bulunan alanlara başvuru için bkz. Kaynak günlükleri.

Günlüğe kaydedilen istekleri TLS sürümüne göre sorgulama

Azure İzleyici'deki Azure Depolama günlükleri, depolama hesabına istek göndermek için kullanılan TLS sürümünü içerir. Günlüğe kaydedilen isteğin TLS sürümünü denetlemek için TlsVersion özelliğini kullanın.

Son yedi gün içinde TLS'nin farklı sürümlerine sahip Blob depolamada kaç istek yapıldığını belirlemek için Log Analytics çalışma alanınızı açın. Ardından, aşağıdaki sorguyu yeni bir günlük sorgusuna yapıştırın ve çalıştırın. Köşeli ayraç içindeki yer tutucu değerlerini kendi değerlerinizle değiştirmeyi unutmayın:

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>"
| summarize count() by TlsVersion

Sonuçlar, TLS'nin her sürümüyle yapılan istek sayısının sayısını gösterir:

TLS sürümünü döndürmek için log analytics sorgusunun sonuçlarını gösteren ekran görüntüsü

Arayan IP adresine ve kullanıcı aracısı üst bilgilerine göre günlüğe kaydedilen istekleri sorgulama

Azure İzleyici'deki Azure Depolama günlükleri, depolama hesabına erişen istemci uygulamalarını değerlendirmenize yardımcı olmak için çağıranın IP adresini ve kullanıcı aracısı üst bilgisini de içerir. İstemci uygulamalarının TLS'nin daha yeni bir sürümünü kullanacak şekilde güncelleştirilmesi gerekip gerekmediğine veya en düşük TLS sürümüyle gönderilmemesi durumunda istemci isteğinin başarısız olmasına karar vermek için bu değerleri analiz edebilirsiniz.

Son yedi gün içinde TLS 1.2'den eski bir TLS sürümüyle istekte bulunan istemcileri belirlemek için aşağıdaki sorguyu yeni bir günlük sorgusuna yapıştırın ve çalıştırın. Köşeli ayraç içindeki yer tutucu değerlerini kendi değerlerinizle değiştirmeyi unutmayın:

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>" and TlsVersion != "TLS 1.2"
| project TlsVersion, CallerIpAddress, UserAgentHeader

En düşük TLS sürümüyle güvenlik risklerini düzeltme

TLS'nin eski sürümlerini kullanan istemcilerden gelen trafiğin çok az olduğundan veya TLS'nin eski bir sürümüyle yapılan isteklerin başarısız olmasını kabul edilebilir hale getirdiğinizde, depolama hesabınızda en düşük TLS sürümünü zorlamaya başlayabilirsiniz. İstemcilerin bir depolama hesabında istekte bulunmak için en düşük TLS sürümünü kullanmasını zorunlu kılmak, verilerinize yönelik güvenlik risklerini en aza indirme stratejisinin bir parçasıdır.

Önemli

Azure Depolama bağlanan bir hizmet kullanıyorsanız, depolama hesabı için gerekli minimum sürümü ayarlamadan önce hizmetin Azure Depolama istek göndermek için uygun TLS sürümünü kullandığından emin olun.

Depolama hesabı için en düşük TLS sürümünü yapılandırma

Depolama hesabının en düşük TLS sürümünü yapılandırmak için hesabın MinimumTlsVersion sürümünü ayarlayın. Bu özellik, Azure Resource Manager dağıtım modeliyle oluşturulan tüm depolama hesapları için kullanılabilir. Azure Resource Manager dağıtım modeli hakkında daha fazla bilgi için bkz. Depolama hesaba genel bakış.

MinimumTlsVersion özelliğinin varsayılan değeri, bunu nasıl ayarladığınıza bağlı olarak farklıdır. Azure portalıyla bir depolama hesabı oluşturduğunuzda, en düşük TLS sürümü varsayılan olarak 1.2 olarak ayarlanır. PowerShell, Azure CLI veya Azure Resource Manager şablonuyla bir depolama hesabı oluşturduğunuzda, MinimumTlsVersion özelliği varsayılan olarak ayarlanmaz ve siz açıkça ayarlayana kadar bir değer döndürmez.

MinimumTlsVersion özelliği ayarlanmadığında, bağlama bağlı olarak değeri null veya boş bir dize olarak görüntülenebilir. Depolama hesabı, özellik ayarlanmadıysa TLS sürüm 1.0 veya üzeri ile gönderilen isteklere izin verir.

Azure portalıyla bir depolama hesabı oluşturduğunuzda, en düşük TLS sürümü varsayılan olarak 1.2 olarak ayarlanır.

Azure portalı ile mevcut bir depolama hesabı için en düşük TLS sürümünü yapılandırmak için şu adımları izleyin:

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

  2. Ayarlar bölümünde Yapılandırma‘yı seçin.

  3. En düşük TLS sürümü altında, bu depolama hesabındaki verilere erişmek için gereken en düşük TLS sürümünü seçmek için açılan listeyi kullanın.

    Azure portalında TLS'nin en düşük sürümünü yapılandırmayı gösteren ekran görüntüsü.

Not

Depolama hesabı için en düşük TLS sürümünü güncelleştirdikten sonra, değişikliğin tamamen yayılması 30 saniye kadar sürebilir.

En düşük TLS sürümünü yapılandırmak 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.

Birden çok hesap için gereken en düşük TLS sürümünü denetleyin

En iyi performansa sahip bir depolama hesabı kümesinde gereken en düşük TLS sürümünü denetlemek için Azure portalda Azure Kaynak Grafı Gezgini'ni kullanabilirsiniz. Kaynak Grafı Gezgini'ni kullanma hakkında daha fazla bilgi edinmek için bkz. Hızlı Başlangıç: Azure Kaynak Grafı Gezgini'ni kullanarak ilk Kaynak Grafı sorgunuzu çalıştırma.

Kaynak Grafı Gezgini'nde aşağıdaki sorguyu çalıştırmak, depolama hesaplarının listesini döndürür ve her hesap için en düşük TLS sürümünü görüntüler:

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

İstemciden en düşük TLS sürümünü test edin

Depolama hesabı için gereken en düşük TLS sürümünün eski bir sürümle yapılan çağrıları yasakladığını test etmek için, istemciyi TLS'nin eski bir sürümünü kullanacak şekilde yapılandırabilirsiniz. İstemciyi TLS'nin belirli bir sürümünü kullanacak şekilde yapılandırma hakkında daha fazla bilgi için bkz . İstemci uygulaması için Aktarım Katmanı Güvenliği'ni (TLS) yapılandırma.

İstemci, hesap için yapılandırılan en düşük TLS sürümünü karşılamayan bir TLS sürümü kullanarak depolama hesabına eriştiğinde, Azure Depolama hata kodu 400 hata (Hatalı İstek) ve kullanılan TLS sürümünün bu depolama hesabında istekte bulunmaya izin verilmediğini belirten bir ileti döndürür.

Not

Depolama hesabı için en düşük TLS sürümünü yapılandırdığınızda, bu en düşük sürüm uygulama katmanında zorlanır. Protokol katmanında TLS desteğini belirlemeye çalışan araçlar, depolama hesabı uç noktasında doğrudan çalıştırıldığında gereken en düşük sürüme ek olarak TLS sürümlerini döndürebilir.

Uyumluluk denetimi için Azure İlkesi kullanma

Çok sayıda depolama hesabınız varsa, tüm hesapların kuruluşunuzun gerektirdiği en düşük TLS sürümü için yapılandırıldığından emin olmak için bir denetim gerçekleştirmek isteyebilirsiniz. Bir depolama hesabı kümesini uyumluluk açısından denetlemek için Azure İlkesi kullanın. Azure İlkesi, Azure kaynaklarına kural uygulayan ilkeler oluşturmak, atamak ve yönetmek için kullanabileceğiniz bir hizmettir. Azure İlkesi bu kaynakları kurumsal standartlarınız ve hizmet düzeyi sözleşmelerinizle uyumlu tutmanıza yardımcı olur. Daha fazla bilgi için bkz. Azure İlkesi genel bakış.

Denetim efektiyle ilke oluşturma

Azure İlkesi, bir ilke kuralı bir kaynağa göre değerlendirildiğinde ne olacağını belirleyen etkileri destekler. Denetim etkisi, bir kaynak uyumlu olmadığında ancak isteği durdurmadığında bir uyarı oluşturur. Efektler hakkında daha fazla bilgi için bkz. Azure İlkesi efektleri anlama.

Azure portalıyla en düşük TLS sürümü için Denetim etkisi olan bir ilke oluşturmak için şu adımları izleyin:

  1. Azure portalda Azure İlkesi hizmetine gidin.

  2. Yazma bölümünde Tanımlar'ı seçin.

  3. Yeni bir ilke tanımı oluşturmak için İlke tanımı ekle'yi seçin.

  4. Tanım konumu alanında Diğer düğmesini seçerek denetim ilkesi kaynağının nerede bulunduğunu belirtin.

  5. İlke için bir ad belirtin. İsteğe bağlı olarak bir açıklama ve kategori belirtebilirsiniz.

  6. İlke kuralı'nın altında policyRule bölümüne aşağıdaki ilke tanımını ekleyin.

    {
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "anyOf": [
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "notEquals": "TLS1_2"
                  },
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "exists": "false"
                  }
                ]
            }
          ]
        },
        "then": {
          "effect": "audit"
        }
      }
    }
    
  7. İlkeyi kaydedin.

İlkeyi atama

Ardından ilkeyi bir kaynağa atayın. İlkenin kapsamı bu kaynağa ve altındaki kaynaklara karşılık gelir. İlke ataması hakkında daha fazla bilgi için bkz. atama yapısı Azure İlkesi.

İlkeyi Azure portal ile atamak için şu adımları izleyin:

  1. Azure portalda Azure İlkesi hizmetine gidin.
  2. Yazma bölümünde Atamalar'ı seçin.
  3. Yeni bir ilke ataması oluşturmak için İlke ata'yı seçin.
  4. Kapsam alanı için ilke atamasının kapsamını seçin.
  5. İlke tanımı alanı için Diğer düğmesini ve ardından listeden önceki bölümde tanımladığınız ilkeyi seçin.
  6. İlke ataması için bir ad belirtin. Açıklama isteğe bağlıdır.
  7. İlke zorlamasınıEtkin olarak bırakın. Bu ayarın denetim ilkesi üzerinde hiçbir etkisi yoktur.
  8. Ödevi oluşturmak için Gözden geçir + oluştur'u seçin.

Uyumluluk raporunu görüntüleme

İlkeyi atadıktan sonra uyumluluk raporunu görüntüleyebilirsiniz. Denetim ilkesinin uyumluluk raporu, hangi depolama hesaplarının ilkeyle uyumlu olmadığı hakkında bilgi sağlar. Daha fazla bilgi için bkz . İlke uyumluluk verilerini alma.

İlke ataması oluşturulduktan sonra uyumluluk raporunun kullanılabilir duruma gelmesi birkaç dakika sürebilir.

Azure portalında uyumluluk raporunu görüntülemek için şu adımları izleyin:

  1. Azure portalda Azure İlkesi hizmetine gidin.

  2. Uyumluluk'a tıklayın.

  3. Önceki adımda oluşturduğunuz ilke atamasının adı için sonuçları filtreleyin. Rapor, ilkeyle uyumlu olmayan kaynak sayısını gösterir.

  4. Uyumlu olmayan depolama hesaplarının listesi de dahil olmak üzere ek ayrıntılar için raporda detaya gidebilirsiniz.

    En düşük TLS sürümü için denetim ilkesi uyumluluk raporunu gösteren ekran görüntüsü

En düşük TLS sürümünü zorlamak için Azure İlkesi kullanma

Azure İlkesi, Azure kaynaklarının gereksinimlere ve standartlara uygun olmasını sağlayarak bulut idaresini destekler. Kuruluşunuzdaki depolama hesapları için en düşük TLS sürüm gereksinimini zorlamak için, en düşük TLS gereksinimini ilke tarafından dikte edilenden daha eski bir TLS sürümüne ayarlayan yeni bir depolama hesabı oluşturulmasını engelleyen bir ilke oluşturabilirsiniz. Bu ilke, söz konusu hesabın en düşük TLS sürüm ayarı ilkeyle uyumlu değilse mevcut bir hesapta yapılan tüm yapılandırma değişikliklerini de engeller.

Zorlama ilkesi, en düşük TLS sürümünün artık kuruluşunuzun standartlarına uymaması için depolama hesabı oluşturacak veya değiştirecek bir isteği önlemek için Reddet efektini kullanır. Efektler hakkında daha fazla bilgi için bkz. Azure İlkesi efektleri anlama.

TLS 1.2'den küçük en düşük TLS sürümü için Reddetme etkisi olan bir ilke oluşturmak için Uyumluluk denetimi için Azure İlkesi kullanma bölümünde açıklanan adımları izleyin, ancak ilke tanımının policyRule bölümünde aşağıdaki JSON'u sağlayın:

{
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Storage/storageAccounts"
        },
        {
            "anyOf": [
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "notEquals": "TLS1_2"
              },
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "exists": "false"
              }
            ]
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

İlkeyi Reddet efektiyle oluşturduktan ve bir kapsama atadıktan sonra, kullanıcı 1.2'den eski en düşük TLS sürümüne sahip bir depolama hesabı oluşturamaz. Kullanıcı, şu anda 1.2'den eski en düşük TLS sürümünü gerektiren mevcut bir depolama hesabında yapılandırma değişiklikleri yapamaz. Bunu yapmaya çalışmak bir hatayla sonuçlanır. Hesap oluşturma veya yapılandırma işlemine devam etmek için depolama hesabı için gereken en düşük TLS sürümü 1.2 olarak ayarlanmalıdır.

Aşağıdaki görüntüde, Reddetme etkisine sahip bir ilke en düşük TLS sürümünün TLS 1.2 olarak ayarlanmasını gerektirdiğinde, en düşük TLS sürümü TLS 1.0 (yeni hesap için varsayılan) olarak ayarlanmış bir depolama hesabı oluşturmaya çalıştığınızda oluşan hata gösterilmektedir.

İlkeyi ihlal eden bir depolama hesabı oluşturulurken oluşan hatayı gösteren ekran görüntüsü

En düşük TLS sürümünü gerektirmek için gereken izinler

Depolama hesabının MinimumTlsVersion ö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 veya Microsoft.Depolama/storageAccounts/* eylemi. Bu eyleme sahip yerleşik roller şunlardır:

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.

Bir kullanıcının depolama hesabı için en düşük TLS sürümünü gerektirmesine 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ç duyanlarla 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.

Not

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 yönetebilir. Daha fazla bilgi için bkz . Azure rolleri, Microsoft Entra rolleri ve klasik abonelik yöneticisi rolleri.

Ağ konuları

bir istemci depolama hesabına istek gönderdiğinde, istemci herhangi bir isteği işlemeden önce depolama hesabının genel uç noktasıyla bir bağlantı kurar. Bağlantı kurulduktan sonra en düşük TLS sürüm ayarı denetleniyor. İstek, ayar tarafından belirtilenden daha eski bir TLS sürümü kullanıyorsa, bağlantı başarılı devam eder, ancak istek sonunda başarısız olur. Azure Depolama genel uç noktaları hakkında daha fazla bilgi için bkz. Kaynak URI söz dizimi.

Sonraki adımlar