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.
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.
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.
Langkah-langkah untuk mengatur Protokol TLS Minimal saat mengedit akun
Arahkan ke akun Azure Cosmos DB Anda di portal Azure.
Pilih Jaringan dari menu sebelah kiri, lalu pilih tab Konektivitas.
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.
- Klik Simpan setelah Anda mengubah protokol TLS.
- Setelah disimpan, Anda akan menerima pemberitahuan keberhasilan. Namun, perubahan ini dapat memakan waktu hingga 15 menit untuk diterapkan setelah pembaruan konfigurasi selesai.
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 .