Memberlakukan versi minimum Keamanan Lapisan Transportasi (TLS) yang diperlukan untuk permintaan ke akun penyimpanan

Komunikasi antara aplikasi klien dan akun Azure Storage dienkripsi menggunakan Keamanan Lapisan Transportasi (TLS). TLS adalah protokol kriptografi standar yang memastikan privasi dan integritas data antara klien dan layanan melalui Internet. Untuk informasi selengkapnya tentang TLS, lihat Keamanan Lapisan Transportasi.

Azure Storage saat ini mendukung tiga versi protokol TLS: 1.0, 1.1, dan 1.2. Azure Storage menggunakan TLS 1.2 pada titik akhir HTTP publik, tetapi TLS 1.0 dan TLS 1.1 masih didukung untuk kompatibilitas mundur.

Tip

Azure Storage bergantung pada implementasi Windows SSL yang tidak didasarkan pada OpenSSL dan karenanya tidak terpapar kerentanan terkait OpenSSL.

Akun Azure Storage mengizinkan klien untuk mengirim dan menerima data dengan versi TLS yang paling lama, TLS 1.0, dan yang lebih baru. Guna memberlakukan langkah-langkah keamanan yang lebih ketat, Anda dapat mengonfigurasi akun penyimpanan Anda agar mewajibkan klien mengirim dan menerima data dengan versi TLS yang lebih baru. Jika akun penyimpanan memerlukan versi minimum TLS, maka permintaan apa pun yang dibuat dengan versi yang lama akan gagal.

Artikel ini menjelaskan cara menggunakan kerangka kerja DRAG (Deteksi-Remediasi-Audit-Tata Kelola) untuk terus mengelola TLS yang aman bagi akun penyimpanan Anda.

Untuk informasi tentang cara menentukan versi TLS tertentu saat mengirim permintaan dari aplikasi klien, lihat Mengonfigurasi Keamanan Lapisan Transportasi (TLS) untuk aplikasi klien.

Catatan

Rangkaian sandi yang digunakan saat klien mengirim data ke dan menerima data dari akun penyimpanan bergantung pada versi TLS yang digunakan. Tidak dimungkinkan untuk mengonfigurasi akun penyimpanan untuk memblokir penggunaan cipher tertentu, selain dengan memerlukan versi TLS minimum. Jika Anda memerlukan kemampuan untuk hanya mengizinkan suite sandi tertentu saat menyambungkan ke akun penyimpanan Anda, pertimbangkan untuk menggunakan Azure Application Gateway. Untuk informasi selengkapnya tentang menggunakan Application Gateway untuk tujuan ini, lihat Mengonfigurasi versi kebijakan TLS dan cipher suite di Azure Application Gateway.

Mendeteksi versi TLS yang digunakan oleh aplikasi klien

Saat memberlakukan versi TLS minimum untuk akun penyimpanan, Anda berisiko menolak permintaan dari klien yang mengirim data dengan versi TLS yang lama. Untuk memahami bagaimana konfigurasi versi TLS minimum dapat memengaruhi aplikasi klien, Microsoft menyarankan agar Anda mengaktifkan pembuatan log untuk akun Azure Storage Anda dan menganalisis log setelah beberapa saat untuk mendeteksi versi aplikasi klien TLS mana yang digunakan.

Untuk mencatat permintaan ke akun Azure Storage Anda dan menentukan versi TLS yang digunakan oleh klien, Anda dapat menggunakan pengelogan Azure Storage di Azure Monitor. Untuk informasi selengkapnya, lihat Memantau Azure Storage.

Pembuatan log Azure Storage di Azure Monitor mendukung penggunaan kueri log untuk menganalisis data log. Untuk membuat kueri log, Anda dapat menggunakan ruang kerja Azure Log Analytics. Untuk mempelajari selengkapnya tentang kueri log, lihat Tutorial: Mulai menggunakan kueri Log Analytics.

Untuk mencatat data Azure Storage dengan Azure Monitor dan menganalisisnya dengan Azure Log Analytics, Anda harus terlebih dahulu membuat pengaturan diagnostik yang menunjukkan jenis permintaan apa dan layanan penyimpanan mana yang ingin Anda catat datanya. Untuk membuat pengaturan diagnostik di portal Microsoft Azure, ikuti langkah-langkah berikut ini:

  1. Buat ruang kerja Log Analytics baru di langganan yang berisi akun Azure Storage Anda. Setelah mengonfigurasi pembuatan log untuk akun penyimpanan Anda, log akan tersedia di ruang kerja Log Analytics. Untuk informasi selengkapnya, lihat Membuat ruang kerja Log Analytics di portal Microsoft Azure.

  2. Navigasikan ke akun penyimpanan Anda di portal Microsoft Azure.

  3. Di bagian Pemantauan, pilih Pengaturan diagnostik.

  4. Pilih layanan Azure Storage yang ingin Anda catat permintaannya. Misalnya, pilih Blob untuk mencatat permintaan ke penyimpanan Blob.

  5. Pilih Menambahkan pengaturan diagnostik.

  6. Berikan nama untuk pengaturan diagnostik.

  7. Pada Detail kategori, di bagian log, pilih jenis permintaan mana yang akan dicatat. Anda dapat mencatat permintaan baca, tulis, dan hapus. Misalnya, memilih StorageRead dan StorageWrite akan mencatat permintaan baca dan tulis ke layanan yang dipilih.

  8. Di bawah Detail tujuan, pilih Kirim ke Log Analytics. Pilih langganan Anda dan ruang kerja Log Analytics yang Anda buat sebelumnya, seperti yang ditunjukkan pada gambar berikut.

    Cuplikan layar yang menunjukkan cara membuat pengaturan diagnostik untuk permintaan pengelogan

Setelah Anda membuat pengaturan diagnostik, permintaan ke akun penyimpanan pun dicatat sesuai dengan pengaturan tersebut. Untuk informasi selengkapnya, lihat Membuat pengaturan diagnostik untuk mengumpulkan log dan metrik sumber daya di Azure.

Untuk referensi bidang yang tersedia di log Azure Storage di Azure Monitor, lihat Log sumber daya.

Permintaan yang dicatat kueri menurut versi TLS

Log Azure Storage di Azure Monitor menyertakan versi TLS yang digunakan untuk mengirim permintaan ke akun penyimpanan. Gunakan properti TlsVersion untuk memeriksa versi TLS dari permintaan yang dicatat.

Untuk menentukan berapa banyak permintaan yang dibuat terhadap penyimpanan Blob dengan versi TLS yang berbeda selama tujuh hari terakhir, buka ruang kerja Log Analytics Anda. Berikutnya, tempelkan kueri berikut ini ke dalam kueri log baru dan jalankan. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung dengan nilai Anda sendiri:

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

Hasilnya menunjukkan jumlah permintaan yang dibuat dengan setiap versi TLS:

Cuplikan layar yang menunjukkan hasil kueri analitik log untuk mengembalikan versi TLS

Permintaan yang dicatat kueri oleh alamat IP pemanggil dan header agen pengguna

Log Azure Storage di Azure Monitor juga menyertakan alamat IP pemanggil dan header agen pengguna untuk membantu Anda mengevaluasi aplikasi klien mana yang mengakses akun penyimpanan. Anda dapat menganalisis nilai-nilai ini untuk memutuskan apakah aplikasi klien harus diperbarui agar dapat menggunakan versi TLS yang lebih baru, atau apakah menggagalkan permintaan klien dapat diterima jika tidak dikirim dengan versi TLS minimum.

Untuk menentukan klien mana yang membuat permintaan dengan versi TLS yang lama dari TLS 1.2 selama tujuh hari terakhir, tempelkan kueri berikut ke dalam kueri log baru dan jalankan. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung dengan nilai Anda sendiri:

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

Meremediasi risiko keamanan dengan versi minimum TLS

Jika Anda yakin bahwa lalu lintas dari klien yang menggunakan versi TLS yang lama minimal, atau jika menggagalkan permintaan yang dibuat dengan versi TLS yang lebih lama dapat diterima, maka Anda dapat mulai memberlakukan versi TLS minimum pada akun penyimpanan Anda. Mewajibkan klien menggunakan versi minimum TLS untuk membuat permintaan terhadap akun penyimpanan merupakan bagian dari strategi dalam meminimalkan risiko keamanan terhadap data Anda.

Penting

Jika Anda menggunakan layanan yang tersambung ke Azure Storage, pastikan layanan menggunakan versi TLS yang sesuai untuk mengirim permintaan ke Azure Storage sebelum Anda mengatur versi minimum yang diperlukan untuk akun penyimpanan.

Mengonfigurasi versi TLS minimum untuk akun penyimpanan

Untuk mengonfigurasi versi TLS minimum untuk akun penyimpanan, atur versi MinimumTlsVersion akun tersebut. Properti ini tersedia untuk semua akun penyimpanan yang dibuat dengan model penerapan Azure Resource Manager. Untuk informasi selengkapnya tentang model penyebaran Azure Resource Manager, lihat Ringkasan akun penyimpanan.

Nilai default properti MinimumTlsVersion berbeda tergantung cara Anda mengaturnya. Jika Anda membuat akun penyimpanan dengan portal Microsoft Azure, versi TLS minimum diatur ke 1.2 secara default. Saat Anda membuat akun penyimpanan dengan PowerShell, Azure CLI, atau templat Azure Resource Manager, properti MinimumTlsVersion tidak ditetapkan secara default dan tidak mengembalikan nilai sampai Anda mengaturnya secara eksplisit.

Saat properti MinimumTlsVersion tidak diatur, nilainya dapat ditampilkan sebagai null atau string kosong, teragantung konteks. Akun penyimpanan akan mengizinkan permintaan yang dikirim dengan TLS versi 1.0 atau lebih tinggi jika properti tidak diatur.

Jika Anda membuat akun penyimpanan dengan portal Microsoft Azure, versi TLS minimum diatur ke 1.2 secara default.

Untuk mengonfigurasi versi TLS minimum untuk akun penyimpanan yang sudah ada dengan portal Microsoft Azure, ikuti langkah-langkah berikut:

  1. Navigasikan ke akun penyimpanan Anda di portal Microsoft Azure.

  2. Di bawah Pengaturan, pilih Konfigurasi.

  3. Di Versi TLS minimum, gunakan menu drop-down untuk memilih versi minimum TLS yang diperlukan untuk mengakses data di akun penyimpanan ini.

    Cuplikan layar yang menunjukkan cara mengonfigurasi versi minimum TLS di portal Microsoft Azure.

Catatan

Setelah Anda memperbarui versi TLS minimum untuk akun penyimpanan, mungkin perlu waktu hingga 30 detik sebelum perubahan disebarluaskan sepenuhnya.

Mengonfigurasi versi TLS minimum memerlukan versi 2019-04-01 atau yang lebih baru dari penyedia sumber daya Azure Storage. Untuk informasi selengkapnya, lihat REST API Penyedia Sumber Daya Azure Storage.

Periksa versi TLS minimum yang diperlukan untuk beberapa akun

Untuk memeriksa versi TLS minimum yang diperlukan di seluruh set akun penyimpanan dengan performa optimal, Anda dapat menggunakan Azure Resource Graph Explorer di portal Microsoft Azure. Untuk mempelajari selengkapnya tentang penggunaan Resource Graph Explorer, lihat Mulai Cepat: Jalankan kueri Resource Graph pertama Anda menggunakan Azure Resource Graph Explorer.

Menjalankan kueri berikut ini di Resource Graph Explorer mengembalikan daftar akun penyimpanan dan menampilkan versi TLS minimum untuk setiap akun:

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

Menguji versi TLS minimum dari klien

Untuk menguji bahwa versi TLS minimum yang diperlukan untuk akun penyimpanan melarang panggilan yang dilakukan dengan versi lama, Anda dapat mengonfigurasi klien untuk menggunakan versi TLS yang lama. Untuk informasi selengkapnya tentang mengonfigurasi klien agar menggunakan versi TLS tertentu, lihat Mengonfigurasi Keamanan Lapisan Transportasi (TLS) untuk aplikasi klien.

Jika klien mengakses akun penyimpanan menggunakan versi TLS yang tidak memenuhi versi TLS minimum yang dikonfigurasi untuk akun tersebut, Azure Storage akan mengembalikan kode kesalahan 400 (Permintaan Buruk) dan pesan yang menunjukkan bahwa versi TLS yang digunakan tidak diizinkan untuk membuat permintaan terhadap akun penyimpanan ini.

Catatan

Saat Anda mengonfigurasi versi TLS minimum untuk akun penyimpanan, versi minimum tersebut diterapkan di lapisan aplikasi. Alat yang mencoba menentukan dukungan TLS pada lapisan protokol dapat mengembalikan versi TLS selain versi minimum yang diperlukan saat dijalankan langsung terhadap titik akhir akun penyimpanan.

Menggunakan Azure Policy untuk mengaudit kepatuhan

Jika Anda memiliki banyak akun penyimpanan, Anda mungkin ingin melakukan audit guna memastikan bahwa semua akun dikonfigurasi untuk versi minimum TLS yang diperlukan organisasi Anda. Untuk mengaudit sekumpulan akun penyimpanan atas kepatuhannya, gunakan Azure Policy. Azure Policy adalah layanan yang dapat Anda gunakan untuk membuat, menetapkan, dan mengelola kebijakan yang menerapkan aturan ke sumber daya Azure. Azure Policy membantu Anda menjaga sumber daya tersebut sesuai dengan standar perusahaan dan perjanjian tingkat layanan Anda. Untuk mengetahui informasi selengkapnya, lihat Gambaran Umum Azure Policy.

Membuat kebijakan dengan efek Audit

Azure Policy mendukung efek yang menentukan apa yang terjadi jika aturan kebijakan dievaluasi terhadap sumber daya. Efek Audit membuat peringatan jika sumber daya tidak mematuhi, tetapi tidak menghentikan permintaan. Untuk informasi selengkapnya tentang efek, lihat Memahami efek Azure Policy.

Untuk membuat kebijakan dengan efek Audit untuk versi TLS minimum dengan portal Microsoft Azure, ikuti langkah-langkah berikut:

  1. Di portal Microsoft Azure, navigasikan ke layanan Azure Policy.

  2. Di bagian Penulisan, pilih Definisi.

  3. Pilih Tambahkan definisi kebijakan untuk membuat definisi kebijakan baru.

  4. Untuk bidang Lokasi definisi, pilih tombol Lainnya untuk menentukan tempat sumber daya kebijakan audit berada.

  5. Tentukan nama untuk kebijakan tersebut. Anda dapat menentukan deskripsi dan kategori secara opsional.

  6. Pada Aturan kebijakan, tambahkan definisi kebijakan berikut ke bagian policyRule.

    {
      "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. Simpan kebijakan.

Menetapkan kebijakan

Selanjutnya, tetapkan kebijakan ke sumber daya. Cakupan kebijakan sesuai dengan sumber daya tersebut dan sumber daya apa pun di bawahnya. Untuk informasi selengkapnya tentang penetapan kebijakan, lihat Struktur penetapan Azure Policy.

Untuk menetapkan kebijakan dengan portal Microsoft Azure, ikuti langkah-langkah berikut:

  1. Di portal Microsoft Azure, navigasikan ke layanan Azure Policy.
  2. Di bagian Penulisan, pilih Penugasan.
  3. Pilih Tetapkan kebijakan untuk membuat penetapan kebijakan baru.
  4. Untuk bidang Cakupan, pilih cakupan penetapan kebijakan.
  5. Untuk bidang Definisi kebijakan, pilih tombol Lainnya, lalu pilih kebijakan yang Anda tentukan di bagian sebelumnya dari daftar.
  6. Berikan nama untuk penetapan kebijakan tersebut. Deskripsinya bersifat opsional.
  7. Biarkan Pemberlakuan kebijakan diatur ke Aktif. Pengaturan ini tidak berpengaruh pada kebijakan audit.
  8. Pilih Tinjau + buat untuk membuat penetapan.

Melihat hasil kepatuhan

Setelah menetapkan kebijakan, Anda dapat melihat laporan kepatuhan. Laporan kepatuhan untuk kebijakan audit memberikan informasi tentang akun penyimpanan mana yang tidak sesuai dengan kebijakan. Untuk informasi selengkapnya, lihat Mendapatkan data kepatuhan kebijakan.

Mungkin perlu waktu beberapa menit agar laporan kepatuhan tersedia setelah penetapan kebijakan dibuat.

Untuk melihat laporan kepatuhan dalam portal Microsoft Azure, ikuti langkah-langkah berikut ini:

  1. Di portal Microsoft Azure, navigasikan ke layanan Azure Policy.

  2. Pilih Kepatuhan.

  3. Filter hasil untuk nama penetapan kebijakan yang Anda buat di langkah sebelumnya. Laporan tersebut menunjukkan berapa banyak sumber daya yang tidak sesuai dengan kebijakan.

  4. Anda dapat menelusuri detail laporan untuk detail tambahan, termasuk daftar akun penyimpanan yang tidak mematuhinya.

    Cuplikan layar yang menunjukkan laporan kepatuhan untuk kebijakan audit untuk versi TLS minimum

Menggunakan Azure Policy untuk memberlakukan versi TLS minimum

Azure Policy mendukung tata kelola cloud dengan memastikan sumber daya Azure mematuhi persyaratan dan standar. Untuk memberlakukan persyaratan versi TLS minimum untuk akun penyimpanan dalam organisasi, Anda dapat membuat kebijakan yang mencegah pembuatan akun penyimpanan baru yang menetapkan persyaratan TLS minimum ke versi TLS yang lama daripada yang ditentukan oleh kebijakan. Kebijakan ini juga akan mencegah semua perubahan konfigurasi pada akun yang ada jika pengaturan versi TLS minimum untuk akun tersebut tidak mematuhi kebijakan.

Kebijakan pemberlakuan menggunakan efek Tolak guna mencegah permintaan yang akan membuat atau mengubah akun penyimpanan sehingga versi TLS minimum tidak lagi mematuhi standar organisasi Anda. Untuk informasi selengkapnya tentang efek, lihat Memahami efek Azure Policy.

Untuk membuat kebijakan dengan efek Tolak untuk versi TLS minimum di bawah dari TLS 1.2, ikuti langkah-langkah yang sama dengan yang dijelaskan dalam Menggunakan Azure Policy untuk mengaudit kepatuhan, namun sertakan JSON berikut di bagian policyRule dari definisi kebijakan:

{
  "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"
    }
  }
}

Setelah Anda membuat kebijakan dengan efek Tolak dan menetapkannya ke cakupan, pengguna tidak dapat membuat akun penyimpanan dengan versi TLS minimum yang lebih lama dari 1.2. Pengguna juga tidak dapat melakkan perubahan konfigurasi apa pun pada akun penyimpanan yang ada yang saat ini memerlukan versi TLS minimum yang lebih lama dari 1.2. Percobaan untuk melakukannya akan menyebabkan kesalahan. Versi TLS minimum yang diperlukan untuk akun penyimpanan harus diatur ke 1.2 guna melanjutkan pembuatan atau konfigurasi akun.

Gambar berikut menunjukkan kesalahan yang terjadi jika Anda mencoba membuat akun penyimpanan dengan versi TLS minimum yang diatur ke TLS 1.0 (default untuk akun baru) ketika kebijakan dengan efek Tolak mengharuskan versi TLS minimum diatur ke TLS 1.2.

Cuplikan layar menunjukkan kesalahan yang terjadi saat membuat akun penyimpanan yang melanggar kebijakan

Izin yang diperlukan untuk mewajibkan versi minimum TLS

Untuk mengatur properti MinimumTlsVersion untuk akun penyimpanan, pengguna harus memiliki izin untuk membuat dan mengelola akun penyimpanan. Peran kontrol akses berbasis peran Azure (Azure RBAC) yang memberikan izin ini mencakup tindakan Microsoft.Storage/storageAccounts/write atau Microsoft.Storage/storageAccounts/*. Peran bawaan dengan tindakan ini meliputi:

Peran ini tidak menyediakan akses ke data di akun penyimpanan melalui ID Microsoft Entra. Namun, peran ini meliputi Microsoft.Storage/storageAccounts/listkeys/action, yang memberikan akses ke kunci akses akun. Dengan izin ini, pengguna dapat menggunakan kunci akses akun untuk mengakses semua data di akun penyimpanan.

Penetapan peran harus dicakup ke tingkat akun penyimpanan atau yang lebih tinggi guna mengizinkan pengguna mewajibkan versi minimum TLS untuk akun penyimpanan. Untuk informasi selengkapnya tentang cakupan peran, lihat Memahami cakupan Azure RBAC.

Berhati-hatilah untuk membatasi penetapan peran ini hanya kepada mereka yang membutuhkan kemampuan untuk membuat akun penyimpanan atau memperbarui propertinya. Gunakan prinsip hak istimewa paling sedikit untuk memastikan bahwa pengguna memiliki izin terkecil yang dibutuhkan dalam menyelesaikan tugasnya. Untuk informasi selengkapnya tentang pengelolaan akses dengan Azure RBAC, lihat Praktik terbaik untuk Azure RBAC.

Catatan

Peran administrator langganan klasik Administrator Layanan dan Administrator Bersama mencakup peran Pemilik Azure Resource Manager yang setara. Peran Pemilik mencakup semua tindakan, sehingga pengguna dengan salah satu peran administratif ini juga dapat membuat dan mengelola akun penyimpanan. Untuk informasi selengkapnya, lihat Peran Azure, peran Microsoft Entra, dan peran administrator langganan klasik.

Pertimbangan jaringan

Jika klien mengirim permintaan ke akun penyimpanan, klien membuat koneksi dengan titik akhir publik dari akun penyimpanan terlebih dahulu, sebelum memproses permintaan apa pun. Pengaturan versi TLS minimum diperiksa setelah koneksi dibuat. Jika permintaan menggunakan versi TLS yang lebih lama daripada yang ditentukan oleh pengaturan, koneksi akan tetap berhasil, namun permintaan akan gagal pada akhirnya. Untuk informasi selengkapnya tentang titik akhir publik untuk Azure Storage, lihat Sintaks URI Sumber Daya.

Langkah berikutnya