Membatasi akses keluar dari kluster Azure Data Explorer Anda
Membatasi akses keluar kluster Anda penting untuk mengurangi risiko seperti penyelundupan data. Aktor jahat berpotensi membuat tabel eksternal ke akun penyimpanan dan mengekstrak data dalam jumlah besar. Anda dapat mengontrol akses keluar di tingkat kluster dengan menentukan kebijakan callout. Mengelola kebijakan callout memungkinkan Anda mengizinkan akses keluar ke SQL, penyimpanan, atau titik akhir tertentu.
Dalam artikel ini, Anda akan mempelajari cara ekstensi untuk kebijakan callout yang memungkinkan Anda membatasi panggilan lebih lanjut dari kluster Anda.
Jenis kebijakan callout
Kebijakan callout dapat dibagi, sebagai berikut:
- Kebijakan callout yang tidak dapat diubah: Ini adalah kebijakan standar kluster. Mereka telah dikonfigurasi sebelumnya dan tidak dapat dimodifikasi.
- Kebijakan callout kluster: Ini adalah kebijakan yang dapat Anda ubah menggunakan perintah kebijakan callout.
Prasyarat
- Langganan Azure. Membuat akun Azure gratis.
- Kluster dan database Azure Data Explorer. Membuat kluster dan database.
Menjalankan perintah kebijakan callout
Di menu sebelah kiri, pilih Kueri, lalu sambungkan ke kluster Anda.
Di jendela kueri, jalankan kueri berikut untuk memeriksa daftar kebijakan callout yang tidak dapat diubah pada kluster Anda:
.show cluster policy callout
Berikut ini menunjukkan contoh kebijakan callout yang tidak dapat diubah. Perhatikan bahwa dalam daftar ada beberapa aturan default yang memungkinkan melakukan panggilan ke layanan lain, seperti data eksternal.
[
{
"CalloutType":"kusto",
"CalloutUriRegex":"[a-z0-9]{3,22}\\.(\\w+\\.)?kusto(mfa)?\\.windows\\.net/?$",
"CanCall":true
},
{
"CalloutType":"kusto",
"CalloutUriRegex":"//[a-z0-9]{3,22}\\.[a-z0-9-]{1,50}\\.(kusto\\.azuresynapse|kustodev\\.azuresynapse-dogfood)\\.net/?$",
"CanCall":true
},
{
"CalloutType":"kusto",
"CalloutUriRegex":"^https://([A-Za-z0-9]+\\.)?(ade|adx)\\.(int\\.)?(applicationinsights|loganalytics|monitor)\\.(io|azure(\\.com|\\.us|\\.cn))/",
"CanCall":true
},
{
"CalloutType":"sql",
"CalloutUriRegex":"[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9]?\\.database\\.windows\\.net/?$",
"CanCall":true
},
{
"CalloutType":"sql",
"CalloutUriRegex":"[a-z0-9-]{0,61}?(-ondemand)?\\.sql\\.azuresynapse(-dogfood)?\\.net/?$",
"CanCall":true
},
{
"CalloutType":"external_data",
"CalloutUriRegex":".*",
"CanCall":true
},
{
"CalloutType":"azure_digital_twins",
"CalloutUriRegex":"[A-Za-z0-9\\-]{3,63}\\.api\\.[A-Za-z0-9]+\\.digitaltwins\\.azure\\.net/?$",
"CanCall":true
}
]
Mengosongkan daftar kebijakan callout yang tidak dapat diubah
Untuk membatasi akses keluar ke dari kluster, Anda harus mengosongkan daftar kebijakan callout yang tidak dapat diubah. Anda dapat melakukan ini dengan menjalankan perintah berikut menggunakan Azure CLI atau alat lain dengan memanggil AZURE Data Explorer API.
Picu penyebaran ARM menggunakan Azure CLI dengan templat ARM yang diperbarui:
Contoh file templat ARM bernama "template.json" dengan properti restrictOutboundNetworkAccess diatur ke Diaktifkan:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", ... "resources": [ { "type": "Microsoft.Kusto/Clusters", "apiVersion": "2021-02-01", ... "properties": { ... "restrictOutboundNetworkAccess": "Enabled", ... } } ... ] }
Contoh panggilan menggunakan Azure CLI yang mengacu pada templat di atas.
# Replace the <...> placeholders with the correct values az deployment group create --name RestrictOutboundAccess --resource-group <resource group> --template-file ./template.json
Memperbarui
restrictOutboundNetworkAccess
properti kluster menghapus semua kebijakan yang tidak dapat diubah pada kluster Anda. Ini mencegah memulai panggilan ke layanan lain seperti yang ditunjukkan dalam contoh berikut.Jalankan perintah berikut lagi dan verifikasi bahwa perintah tersebut mengembalikan daftar kosong:
.show cluster policy callout | where EntityType == "Cluster immutable policy"
Menambahkan FQDN ke callout dalam kondisi terbatas
Jika Anda ingin mengizinkan akses keluar ke FQDN tertentu, Anda dapat menambahkannya ke allowedFqdnList
daftar untuk kluster Anda. Anda dapat melakukan ini dengan menjalankan dengan membuat perubahan pada templat ARM kluster Azure Data Explorer.
Picu penyebaran ARM menggunakan Azure CLI dengan templat ARM yang diperbarui:
Contoh file templat ARM bernama "template.json" dengan properti allowedFqdnList diatur ke ["some.sql.azuresynapse.net", "..."]:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", ... "resources": [ { "type": "Microsoft.Kusto/Clusters", "apiVersion": "2021-02-01", ... "properties": { ... "restrictOutboundNetworkAccess": "Enabled", "allowedFqdnList": ["some.sql.azuresynapse.net", "..."] ... } } ... ] }
Contoh panggilan menggunakan Azure CLI yang mengacu pada templat di atas.
# Replace the <...> placeholders with the correct values az deployment group create --name ConfigureAllowedFqdnList --resource-group <resource group> --template-file ./template.json
Dengan menambahkan FQDN ke daftar yang diizinkan, Anda akan dapat melakukan panggilan ke FQDN yang ditentukan. Anda dapat memeriksa hasil penyebaran dengan menjalankan perintah berikut:
.show cluster policy callout | project Policy=parse_json(Policy) | mv-expand Policy | where Policy.CalloutType == "sql"
Catatan
Ada serangkaian kebijakan default yang ditetapkan untuk Azure Data Explorer untuk berkomunikasi dengan lapisan penyimpanan internalnya. Mereka tidak mengekspos risiko untuk penyelundupan data.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk