Penerapan versi TLS minimum layanan mandiri di Azure Cosmos DB

BERLAKU UNTUK: Nosql MongoDB Cassandra Gremlin Meja

Artikel ini membahas cara menerapkan versi minimum protokol TLS untuk akun Cosmos DB Anda, menggunakan API layanan mandiri.

Cara kerja penerapan versi TLS minimum di Azure Cosmos DB

Karena sifat multi-penyewa Cosmos DB, layanan ini diperlukan untuk memenuhi kebutuhan akses dan keamanan setiap pengguna. Untuk mencapai hal ini, Cosmos DB memberlakukan protokol TLS minimum di lapisan aplikasi, dan bukan lapisan bawah dalam tumpukan jaringan tempat TLS beroperasi. Penerapan ini terjadi pada permintaan yang diautentikasi ke akun database tertentu, sesuai dengan pengaturan yang diatur pada akun tersebut oleh pelanggan.

Versi minimum yang diterima di seluruh layanan adalah TLS 1.0. Pilihan ini dapat diubah per akun, seperti yang dibahas di bagian berikut.

Cara mengatur versi TLS minimum untuk akun database Cosmos DB saya

Dimulai dengan VERSI API 2022-11-15 dari API Penyedia Sumber Daya Azure Cosmos DB, properti baru diekspos untuk setiap akun database Cosmos DB, yang disebut minimalTlsVersion. Ini menerima salah satu nilai berikut:

  • Tls untuk mengatur versi minimum ke TLS 1.0.
  • Tls11 untuk mengatur versi minimum ke TLS 1.1.
  • Tls12 untuk mengatur versi minimum ke TLS 1.2.

Nilai default untuk akun baru dan yang sudah ada adalah Tls.

Penting

Menatap pada 1 April 2023, nilai default untuk akun baru akan dialihkan ke Tls12.

Mengatur Protokol TLS Minimal di Azure Cosmos DB menggunakan Portal

Fitur layanan mandiri ini tersedia di Portal saat membuat dan mengedit akun. Akun Azure Cosmos DB memberlakukan protokol TLS 1.2. Namun, Azure Cosmos DB juga mendukung protokol TLS berikut tergantung pada jenis API yang dipilih.

  • MongoDB: TLS 1.2

  • Cassandra: TLS 1.2

  • Tabel, SQL, dan Grafik: TLS 1.0, TLS 1.1 dan TLS 1.2

Langkah-langkah untuk mengatur Protokol TLS Minimal saat membuat akun

Jika Anda menggunakan JENIS API yang hanya mendukung TLS 1.2, Anda akan melihat di tab Jaringan di bagian bawah protokol TLS dinonaktifkan.

Cuplikan layar API Kind yang hanya mendukung TLS 1.2.

Jika Anda menggunakan Jenis API yang menerima beberapa protokol TLS, maka Anda dapat menavigasi ke tab Jaringan dan opsi Protokol Keamanan Lapisan Transportasi Minimum tersedia. Anda dapat mengubah protokol yang dipilih hanya dengan mengklik menu drop-down dan memilih protokol yang diinginkan.

Cuplikan layar API Kind yang menerima beberapa protokol TLS.

Setelah menyiapkan akun, Anda dapat meninjau di tab Tinjau + buat, di bagian bawah di dalam bagian Jaringan, bahwa Protokol TLS yang dipilih diatur seperti yang Anda tentukan.

Cuplikan layar Protokol TLS yang dipilih diatur seperti yang Anda tentukan.

Langkah-langkah untuk mengatur Protokol TLS Minimal saat mengedit akun

  1. Arahkan ke akun Azure Cosmos DB Anda di portal Azure.

  2. Pilih Jaringan dari menu sebelah kiri, lalu pilih tab Konektivitas.

  3. Anda akan menemukan opsi Protokol Keamanan Lapisan Transportasi Minimum. Jika Anda menggunakan JENIS API yang hanya mendukung TLS 1.2, Anda akan melihat opsi ini dinonaktifkan. Jika tidak, Anda akan dapat memilih Protokol TLS yang diinginkan hanya dengan mengkliknya.

Cuplikan layar opsi protokol keamanan lapisan transportasi minimum.

  1. Klik Simpan setelah Anda mengubah protokol TLS.

Cuplikan layar simpan setelah perubahan.

  1. Setelah disimpan, Anda akan menerima pemberitahuan keberhasilan. Namun, perubahan ini dapat memakan waktu hingga 15 menit untuk diterapkan setelah pembaruan konfigurasi selesai.

Cuplikan layar pemberitahuan keberhasilan.

Atur melalui Azure CLI

Untuk mengatur menggunakan Azure CLI, gunakan perintah :

rg="myresourcegroup"
dbName="mycosmosdbaccount"
minimalTlsVersion="Tls12"
az cosmosdb update -n $dbName -g $rg --minimal-tls-version $minimalTlsVersion

Atur melalui Azure PowerShell

Untuk mengatur menggunakan Azure PowerShell, gunakan perintah :

$minimalTlsVersion = 'Tls12'
$patchParameters = @{
  ResourceGroupName = 'myresourcegroup'
  Name = 'mycosmosdbaccount'
  ResourceProviderName = 'Microsoft.DocumentDB'
  ResourceType = 'databaseaccounts'
  ApiVersion = '2022-11-15'
  Payload = "{ 'properties': {
      'minimalTlsVersion': '$minimalTlsVersion'
  } }"
  Method = 'PATCH'
}
Invoke-AzRestMethod @patchParameters

Mengatur melalui templat ARM

Untuk mengatur properti ini menggunakan templat ARM, perbarui templat yang ada atau ekspor templat baru untuk penyebaran Anda saat ini, lalu tambahkan "minimalTlsVersion" ke properti untuk databaseAccounts sumber daya, dengan nilai versi TLS minimum yang diinginkan. Disediakan di sini adalah contoh dasar templat Azure Resource Manager dengan pengaturan properti ini, menggunakan parameter .

{
    {
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "name": "mycosmosdbaccount",
      "apiVersion": "2022-11-15",
      "location": "[parameters('location')]",
      "kind": "GlobalDocumentDB",
      "properties": {
        "consistencyPolicy": {
          "defaultConsistencyLevel": "[parameters('defaultConsistencyLevel')]",
          "maxStalenessPrefix": 1,
          "maxIntervalInSeconds": 5
        },
        "locations": [
          {
            "locationName": "[parameters('location')]",
            "failoverPriority": 0
          }
        ],
        "locations": "[variable('locations')]",
        "databaseAccountOfferType": "Standard",
        "minimalTlsVersion": "[parameters('minimalTlsVersion')]",
      }
    }
}

Penting

Pastikan Anda menyertakan properti lain untuk akun dan sumber daya turunan saat menyebarkan ulang dengan properti ini. Jangan menyebarkan templat ini dalam bentuk aslinya karena templat ini akan mereset semua properti akun Anda.

Untuk akun baru

Anda dapat membuat akun dengan properti yang minimalTlsVersion diatur dengan menggunakan templat ARM di atas, atau dengan mengubah metode PATCH ke PUT di Azure CLI atau Azure PowerShell. Pastikan untuk menyertakan properti lain untuk akun Anda.

Penting

Jika akun ada dan minimalTlsVersion properti dihilangkan dalam permintaan PUT, maka properti akan direset ke nilai defaultnya, dimulai dengan versi API 2022-11-15.

Cara memverifikasi penerapan versi TLS minimum

Karena Cosmos DB memberlakukan versi TLS minimum di lapisan aplikasi, pemindai TLS konvensional yang memeriksa apakah jabat tangan diterima oleh layanan untuk versi TLS tertentu tidak dapat diandalkan untuk menguji penegakan di Cosmos DB. Untuk memverifikasi penerapan, lihat alat cosmos-tls-scanner sumber terbuka resmi.

Anda juga bisa mendapatkan nilai minimalTlsVersion properti saat ini dengan menggunakan Azure CLI atau Azure PowerShell.

Dapatkan nilai saat ini melalui Azure CLI

Untuk mendapatkan nilai properti saat ini menggunakan Azure CLI, jalankan perintah :

subId=$(az account show --query id -o tsv)
rg="myresourcegroup"
dbName="mycosmosdbaccount"
az rest --uri "/subscriptions/$subId/resourceGroups/$rg/providers/Microsoft.DocumentDB/databaseAccounts/$dbName?api-version=2022-11-15" --method GET

Dapatkan nilai saat ini melalui Azure PowerShell

Untuk mendapatkan nilai properti saat ini menggunakan Azure PowerShell, jalankan perintah :

$getParameters = @{
  ResourceGroupName = 'myresourcegroup'
  Name = 'mycosmosdbaccount'
  ResourceProviderName = 'Microsoft.DocumentDB'
  ResourceType = 'databaseaccounts'
  ApiVersion = '2022-11-15'
  Method = 'GET'
}
Invoke-AzRestMethod @getParameters

Langkah berikutnya

Untuk informasi selengkapnya tentang keamanan di Azure Cosmos DB, lihat Gambaran umum keamanan database di Azure Cosmos DB .