Mengonfigurasi firewall IP di Azure Cosmos DB

BERLAKU UNTUK: Nosql MongoDB Cassandra Gremlin Meja

Untuk mengamankan penyimpanan data di akun Anda, Azure Cosmos DB mendukung model otorisasi berbasis rahasia yang menggunakan Kode Autentikasi Pesan berbasis Hash (HMAC) yang kuat. Selain itu, Azure Cosmos DB mendukung kontrol akses berbasis IP untuk dukungan firewall masuk. Model ini mirip dengan aturan firewall dari sistem database tradisional dan menyediakan tingkat keamanan tambahan ke akun Anda. Dengan firewall, Anda dapat mengonfigurasi akun Azure Cosmos DB agar hanya dapat diakses dari sekumpulan komputer dan/atau layanan cloud yang disetujui. Akses ke data yang disimpan dalam database Azure Cosmos DB Anda dari set komputer dan layanan yang disetujui ini masih akan mengharuskan pemanggil untuk menyajikan token otorisasi yang valid.

Kontrol akses IP

Secara default, akun Azure Cosmos DB Anda dapat diakses dari internet, selama permintaan disertai dengan token otorisasi yang valid. Untuk mengonfigurasi kontrol akses berbasis kebijakan IP, pengguna harus menyediakan sekumpulan alamat IP atau rentang alamat IP dalam formulir CIDR (Perutean Antar-Domain Tanpa Kelas) untuk disertakan sebagai daftar IP klien yang diizinkan untuk mengakses akun Azure Cosmos DB tertentu. Setelah konfigurasi ini diterapkan, setiap permintaan yang berasal dari mesin di luar daftar yang diizinkan ini menerima respons 403 (Terlarang). Saat menggunakan firewall IP, Anda disarankan untuk mengizinkan portal Microsoft Azure mengakses akun Anda. Akses diperlukan untuk memungkinkan penggunaan penjelajah data serta untuk mengambil metrik untuk akun Anda yang muncul di portal Microsoft Azure. Saat menggunakan penjelajah data, selain mengizinkan portal Microsoft Azure mengakses akun Anda, Anda juga perlu memperbarui pengaturan firewall untuk menambahkan alamat IP Anda saat ini ke aturan firewall. Perhatikan bahwa perubahan firewall mungkin memerlukan waktu hingga 15 menit untuk disebarluaskan dan firewall dapat menunjukkan perilaku yang tidak konsisten selama periode ini.

Anda dapat menggabungkan firewall berbasis IP dengan kontrol akses subnet dan VNET. Dengan menggabungkannya, Anda dapat membatasi akses ke sumber apa pun yang memiliki IP publik dan/atau dari subnet tertentu dalam VNET. Untuk mempelajari selengkapnya tentang menggunakan kontrol akses berbasis subnet dan VNET, lihat Mengakses sumber daya Azure Cosmos DB dari jaringan virtual.

Untuk meringkas, token otorisasi selalu diperlukan untuk mengakses akun Azure Cosmos DB. Jika firewall IP dan Daftar Kontrol Akses VNET (ACL) tidak disiapkan, akun Azure Cosmos DB dapat diakses dengan token otorisasi. Setelah firewall IP atau ACL VNET atau keduanya disiapkan di akun Azure Cosmos DB, hanya permintaan yang berasal dari sumber yang telah Anda tentukan (dan dengan token otorisasi) yang mendapatkan respons yang valid.

Anda juga dapat mengamankan data yang disimpan di akun Azure Cosmos DB Anda menggunakan firewall IP. Azure Cosmos DB mendukung kontrol akses berbasis IP untuk dukungan firewall masuk. Anda dapat mengatur firewall IP di akun Azure Cosmos DB dengan menggunakan langkah berikut:

  • Dari portal Azure
  • Secara deklaratif dengan menggunakan templat Azure Resource Manager
  • Secara terprogram melalui Azure CLI atau Azure PowerShell dengan memperbarui properti ipRangeFilter

Konfigurasikan firewall IP dengan menggunakan portal Microsoft Azure

Untuk mengatur kebijakan kontrol akses IP di portal Microsoft Azure, buka halaman akun Azure Cosmos DB dan pilih Firewall dan jaringan virtual pada menu navigasi. Ubah Perbolehkan akses dari nilai ke Jaringan yang dipilih, lalu pilih Simpan. Jika Anda mengubah pengaturan jaringan akses publik, baik dengan menonaktifkannya atau mengizinkannya untuk semua jaringan, Anda akan kehilangan IP firewall yang mungkin telah Anda siapkan sebelumnya.

Cuplikan layar memperlihatkan cara membuka halaman Firewall di portal Microsoft Azure

Saat kontrol akses IP diaktifkan, portal Microsoft Azure menyediakan kemampuan untuk menentukan alamat IP, rentang alamat IP, dan switch. Switch mengaktifkan akses ke layanan Azure lainnya dan portal Microsoft Azure. Bagian berikut ini memberikan detail tentang switch ini.

Catatan

Setelah Anda mengaktifkan kebijakan kontrol akses IP untuk akun Azure Cosmos DB Anda, semua permintaan ke akun Azure Cosmos DB Anda dari komputer di luar daftar rentang alamat IP yang diizinkan akan ditolak. Menelusuri sumber daya Azure Cosmos DB dari portal juga diblokir untuk memastikan integritas kontrol akses.

Memperbolehkan permintaan dari portal Microsoft Azure

Saat Anda mengaktifkan kebijakan kontrol akses IP secara terprogram, Anda perlu menambahkan alamat IP untuk portal Microsoft Azure ke properti ipRangeFilter untuk mempertahankan akses. Alamat IP portal adalah:

Wilayah Alamat IP
Tiongkok 139.217.8.252
US Gov 52.244.48.71
Semua wilayah lainnya 104.42.195.92,40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26

Anda dapat mengaktifkan permintaan untuk mengakses portal Microsoft Azure dengan memilih opsi Izinkan akses dari portal Microsoft Azure, seperti yang diperlihatkan dalam cuplikan layar berikut ini:

Cuplikan layar memperlihatkan cara mengaktifkan akses portal Microsoft Azure

Alamat IP portal Azure baru

Layanan portal Cosmos DB beralih ke infrastruktur baru pada tahun 2024. Sebagai bagian dari transisi ini, akun dengan firewall yang diaktifkan akan memerlukan alamat IP baru untuk diizinkan untuk melanjutkan akses ke beberapa fungsionalitas portal, seperti Data Explorer. Langkah ini juga memperkenalkan alamat IP khusus untuk akun Mongo DB dan Apache Cassandra API.

Selama transisi ini, opsi Izinkan akses dari portal Azure menambahkan alamat IP saat ini dan baru ke pengaturan firewall akun (termasuk alamat khusus MongoDB dan Cassandra untuk akun tersebut) Ketika transisi selesai, opsi portal akan tersedia untuk menghapus alamat IP lama.

Azure Public
API Akun Database Alamat IP
Semua 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243
Hanya MongoDB 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121
Apache Cassandra saja 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237
Azure Tiongkok
API Akun Database Alamat IP
Semua 163.228.137.6, 143.64.170.142
Hanya MongoDB 52.131.240.99, 143.64.61.130
Apache Cassandra saja 40.73.99.146, 143.64.62.47
Azure US Government
API Akun Database Alamat IP
Semua 52.247.163.6, 52.244.134.181
Hanya MongoDB 52.244.176.112, 52.247.148.42
Apache Cassandra saja 52.244.50.101, 52.227.165.24

Catatan

Jika Anda mengalami tantangan saat menyambungkan ke akun Azure Cosmos DB Anda dari Data Explorer, tinjau panduan pemecahan masalah Data Explorer.

Izinkan permintaan dari pusat data Azure global atau sumber lainnya dalam Azure

Jika Anda mengakses akun Azure Cosmos DB dari layanan yang tidak menyediakan IP statis (misalnya, Azure Stream Analytics dan Azure Functions), Anda masih dapat menggunakan firewall IP untuk membatasi akses. Anda bisa mengaktifkan akses dari sumber lain dalam Azure dengan memilih opsi Terima koneksi dari dalam pusat data Azure, seperti yang diperlihatkan dalam cuplikan layar berikut ini:

Cuplikan layar memperlihatkan cara menerima koneksi dari pusat data Azure

Ketika Anda mengaktifkan opsi ini, alamat IP 0.0.0.0 ditambahkan ke daftar alamat IP yang diizinkan. 0.0.0.0 Alamat IP membatasi permintaan ke akun Azure Cosmos DB Anda dari rentang IP pusat data Azure. Pengaturan ini tidak mengizinkan akses untuk rentang IP lainnya ke akun Azure Cosmos DB Anda.

Catatan

Opsi ini mengonfigurasikan firewall untuk mengizinkan semua permintaan dari Azure, termasuk permintaan dari langganan pelanggan lain yang disebarkan di Azure. Daftar IP yang diizinkan oleh opsi ini luas, sehingga membatasi keefektifan kebijakan firewall. Gunakan opsi ini hanya jika permintaan Anda tidak berasal dari IP statis atau subnet di jaringan virtual. Memilih opsi ini secara otomatis memungkinkan akses dari portal Microsoft Azure karena portal Microsoft Azure diterapkan di Azure.

Permintaan dari IP Anda saat ini

Untuk menyederhanakan pengembangan, portal Microsoft Azure membantu Anda mengidentifikasi dan menambahkan IP dari komputer klien Anda ke daftar yang diizinkan. Aplikasi yang menjalankan komputer Anda kemudian dapat mengakses akun Azure Cosmos DB Anda.

Portal secara otomatis mendeteksi alamat IP klien. Itu mungkin adalah alamat IP klien komputer Anda, atau alamat IP gateway jaringan Anda. Pastikan untuk menghapus alamat IP ini sebelum Anda membawa beban kerja Anda ke tahap produksi.

Untuk menambahkan IP Anda saat ini ke daftar IP, pilih Tambahkan IP saya saat ini. Kemudian pilih Simpan.

Cuplikan layar memperlihatkan cara mengonfigurasikan pengaturan firewall untuk IP saat ini

Permintaan dari layanan awan

Di Azure, layanan awan adalah cara yang umum untuk menghosting logika layanan tingkat menengah dengan menggunakan Azure Cosmos DB. Untuk mengaktifkan akses ke akun Azure Cosmos DB Anda dari layanan awan, Anda harus menambahkan alamat IP publik layanan awan ke daftar alamat IP yang diizinkan yang terkait dengan akun Azure Cosmos DB Anda dengan mengonfigurasikan kebijakan kontrol akses IP. Ini memastikan bahwa semua contoh peran layanan awan memiliki akses ke akun Azure Cosmos DB Anda.

Anda dapat mengambil alamat IP untuk layanan awan Anda di portal Microsoft Azure, seperti yang diperlihatkan dalam tangkapan layar berikut:

Cuplikan layar memperlihatkan alamat IP publik untuk layanan cloud yang ditampilkan di portal Microsoft Azure

Saat Anda melakukan peluasan skala layanan awan Anda dengan menambahkan instans peran, instans baru tersebut akan secara otomatis memiliki akses ke akun Azure Cosmos DB karena merupakan bagian dari layanan awan yang sama.

Permintaan dari komputer virtual

Anda juga dapat menggunakan komputer virtual atau set skala mesin virtual untuk menghosting layanan tingkat menengah dengan menggunakan Azure Cosmos DB. Untuk mengonfigurasi akun Azure Cosmos DB Anda sehingga memungkinkan akses dari komputer virtual, Anda harus mengonfigurasi alamat IP publik komputer virtual dan/atau set skala komputer virtual sebagai salah satu alamat IP yang diizinkan untuk akun Azure Cosmos DB Anda dengan mengonfigurasi kebijakan kontrol akses IP.

Anda dapat mengambil alamat IP untuk komputer virtual di portal Microsoft Azure, seperti yang ditunjukkan pada cuplikan layar berikut:

Cuplikan layar menunjukkan alamat IP publik untuk mesin virtual yang ditampilkan di portal Microsoft Azure

Saat Anda menambahkan instans komputer virtual ke grup, instans tersebut akan menerima akses secara otomatis ke akun Azure Cosmos DB Anda.

Permintaan dari internet

Saat Anda mengakses akun Azure Cosmos DB dari komputer di internet, alamat IP klien atau rentang alamat IP komputer harus ditambahkan ke daftar alamat IP yang diizinkan untuk akun Anda.

Tambahkan aturan keluar ke firewall

Untuk mengakses daftar rentang IP keluar saat ini untuk ditambahkan ke setelan firewall Anda, lihat Mengunduh Rentang IP Azure dan Tag Layanan.

Untuk mengotomatiskan daftar, lihat Gunakan API Penemuan Tag Layanan.

Konfigurasikan firewall IP dengan menggunakan templat Resource Manager

Untuk mengonfigurasikan kontrol akses ke akun Azure Cosmos DB Anda, pastikan bahwa templat Resource Manager menentukan properti IpRules dengan array rentang IP yang diizinkan. Jika mengonfigurasi IP Firewall ke akun Azure Cosmos DB yang sudah disebarkan, pastikan locations array cocok dengan apa yang saat ini disebarkan. Anda tidak bisa mengubah locations array dan properti lainnya secara bersamaan. Untuk informasi selengkapnya dan contoh templat Azure Resource Manager untuk Azure Cosmos DB lihat, templat Azure Resource Manager untuk Azure Cosmos DB

Penting

Properti ipRules telah diperkenalkan dengan versi API 2020-04-01. Versi sebelumnya mengekspos properti ipRangeFilter sebagai gantinya, yang merupakan daftar alamat IP yang dipisahkan koma.

Contoh di bawah ini menunjukkan bagaimana properti ipRules diekspos dalam versi API 2020-04-01 atau yang lebih baru:

{
  "type": "Microsoft.DocumentDB/databaseAccounts",
  "name": "[variables('accountName')]",
  "apiVersion": "2020-04-01",
  "location": "[parameters('location')]",
  "kind": "GlobalDocumentDB",
  "properties": {
    "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
    "locations": "[variables('locations')]",
    "databaseAccountOfferType": "Standard",
    "enableAutomaticFailover": "[parameters('automaticFailover')]",
    "ipRules": [
      {
        "ipAddressOrRange": "40.76.54.131"
      },
      {
        "ipAddressOrRange": "52.176.6.30"
      },
      {
        "ipAddressOrRange": "52.169.50.45"
      },
      {
        "ipAddressOrRange": "52.187.184.26"
      }
    ]
  }
}

Berikut contoh yang sama untuk versi API apa pun sebelum 2020-04-01:

{
  "type": "Microsoft.DocumentDB/databaseAccounts",
  "name": "[variables('accountName')]",
  "apiVersion": "2019-08-01",
  "location": "[parameters('location')]",
  "kind": "GlobalDocumentDB",
  "properties": {
    "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
    "locations": "[variables('locations')]",
    "databaseAccountOfferType": "Standard",
    "enableAutomaticFailover": "[parameters('automaticFailover')]",
    "ipRangeFilter":"40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26"
  }
}

Konfigurasikan kebijakan kontrol akses IP dengan menggunakan Azure CLI

Perintah berikut menunjukkan cara membuat akun Azure Cosmos DB dengan kontrol akses IP:

# Create an Azure Cosmos DB account with default values and IP Firewall enabled
resourceGroupName='MyResourceGroup'
accountName='mycosmosaccount'
ipRangeFilter='192.168.221.17,183.240.196.255,40.76.54.131'

# Make sure there are no spaces in the comma-delimited list of IP addresses or CIDR ranges.
az cosmosdb create \
    -n $accountName \
    -g $resourceGroupName \
    --locations regionName='West US 2' failoverPriority=0 isZoneRedundant=False \
    --locations regionName='East US 2' failoverPriority=1 isZoneRedundant=False \
    --ip-range-filter $ipRangeFilter

Konfigurasikan kebijakan kontrol akses IP dengan menggunakan PowerShell

Skrip berikut menunjukkan cara membuat akun Azure Cosmos DB dengan kontrol akses IP:

# Create an Azure Cosmos DB account with default values and IP Firewall enabled
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$ipRules = @("192.168.221.17","183.240.196.255","40.76.54.131")

$locations = @(
    @{ "locationName"="West US 2"; "failoverPriority"=0; "isZoneRedundant"=False },
    @{ "locationName"="East US 2"; "failoverPriority"=1, "isZoneRedundant"=False }
)

# Make sure there are no spaces in the comma-delimited list of IP addresses or CIDR ranges.
$CosmosDBProperties = @{
    "databaseAccountOfferType"="Standard";
    "locations"=$locations;
    "ipRules"=$ipRules
}

New-AzResource -ResourceType "Microsoft.DocumentDb/databaseAccounts" `
    -ApiVersion "2020-04-01" -ResourceGroupName $resourceGroupName `
    -Name $accountName -PropertyObject $CosmosDBProperties

Pecahkan masalah dengan kebijakan kontrol akses IP

Anda bisa memecahkan masalah dengan kebijakan kontrol akses IP dengan menggunakan opsi berikut:

Portal Azure

Setelah Anda mengaktifkan kebijakan kontrol akses IP untuk akun Azure Cosmos DB Anda, semua permintaan ke akun Azure Cosmos DB Anda dari komputer di luar daftar rentang alamat IP yang diizinkan akan ditolak. Untuk mengaktifkan operasi bidang data portal seperti menelusuri kontainer dan dokumen kueri, Anda perlu secara eksplisit mengizinkan akses portal Microsoft Azure dengan menggunakan panel Firewall di portal.

SDK

Saat Anda mengakses sumber daya Azure Cosmos DB dengan menggunakan SDK dari komputer yang tidak ada dalam daftar yang diizinkan, respons Terlarang 403 generik dikembalikan tanpa detail tambahan. Verifikasi daftar IP yang diizinkan untuk akun Anda, dan pastikan konfigurasi kebijakan yang benar diterapkan ke akun Azure Cosmos DB Anda.

IP Sumber dalam permintaan yang diblokir

Aktifkan pembuatan log diagnostik di akun Azure Cosmos DB Anda. Log ini menunjukkan setiap permintaan dan respons. Pesan terkait firewall dicatat dengan kode pengembalian 403. Dengan memfilter pesan ini, Anda dapat melihat IP sumber untuk permintaan yang diblokir. Lihat pembuatan log diagnostik Azure Cosmos DB.

Permintaan dari subnet dengan titik akhir layanan untuk Azure Cosmos DB diaktifkan

Permintaan dari subnet dalam jaringan virtual yang memiliki titik akhir layanan untuk Azure Cosmos DB diaktifkan mengirim jaringan virtual dan identitas subnet ke akun Azure Cosmos DB. Permintaan ini tidak memiliki IP publik sumber, sehingga filter IP menolaknya. Untuk mengizinkan akses dari subnet tertentu di jaringan virtual, tambahkan daftar kontrol akses seperti yang diuraikan dalam Cara mengonfigurasikan jaringan virtual dan akses berbasis subnet untuk akun Azure Cosmos DB Anda. Dibutuhkan waktu hingga 15 menit agar aturan firewall diterapkan dan firewall dapat menunjukkan perilaku yang tidak konsisten selama periode ini.

Alamat IP privat dalam daftar alamat yang diperbolehkan

Membuat atau memperbarui akun Azure Cosmos DB dengan daftar alamat yang diizinkan yang berisi alamat IP privat akan gagal. Pastikan bahwa tidak ada alamat IP pribadi yang ditentukan dalam daftar.

Langkah berikutnya

Untuk mengonfigurasikan titik akhir layanan jaringan virtual untuk akun Azure Cosmos DB Anda, lihat artikel berikut ini: