Dukungan Protocol Transfer file SSH (SFTP) untuk Azure Blob Storage
Penyimpanan blob sekarang mendukung Protokol Transfer File SSH (SFTP). Dukungan ini memungkinkan Anda terhubung dengan aman ke Blob Storage melalui titik akhir SFTP, memungkinkan Anda menggunakan SFTP untuk akses file, transfer file, dan manajemen file.
Berikut adalah video yang memberi tahu Anda lebih lanjut tentang hal itu.
Azure memungkinkan transfer data yang aman ke akun Blob Storage menggunakan layanan REST API Azure Blob, SDK Azure, dan alat-alat seperti AzCopy. Namun, beban kerja warisan sering kali menggunakan protokol transfer file tradisional seperti SFTP. Anda dapat memperbarui aplikasi kustom untuk menggunakan REST API dan SDK Azure, tetapi hanya dengan membuat perubahan kode yang signifikan.
Sebelum rilis fitur ini, jika Anda ingin menggunakan SFTP untuk mentransfer data ke Azure Blob Storage, Anda harus membeli produk pihak ketiga atau mengatur solusi Anda sendiri. Untuk solusi kustom, Anda harus membuat mesin virtual (VM) di Azure untuk menghosting server SFTP, lalu memperbarui, mem-patch, mengelola, menskalakan, dan memelihara arsitektur yang kompleks.
Dengan dukungan SFTP untuk Azure Blob Storage, kini Anda dapat mengaktifkan titik akhir SFTP untuk akun Blob Storage dengan satu pengaturan. Kemudian Anda dapat menyiapkan identitas pengguna lokal untuk autentikasi guna terhubung ke akun penyimpanan Anda dengan SFTP melalui port 22.
Artikel ini menjelaskan dukungan SFTP untuk Azure Blob Storage. Untuk mempelajari cara mengaktifkan SFTP untuk akun penyimpanan Anda, lihat Koneksi ke Azure Blob Storage dengan menggunakan Protokol Transfer File SSH (SFTP).
Catatan
SFTP adalah layanan tingkat platform, sehingga port 22 akan terbuka meskipun opsi akun dinonaktifkan. Jika akses SFTP tidak dikonfigurasi, semua permintaan akan menerima pemutusan sambungan dari layanan.
SFTP dan namespace layanan hierarkis
Dukungan SFTP mengharuskan namespace hierarkis diaktifkan. Namespace hirarkis mengatur objek (file) ke dalam hierarki direktori dan subdirektori dengan cara yang sama seperti sistem file di komputer Anda diatur. Ruang nama hierarkis berskala secara linear dan tidak menurunkan kapasitas atau performa data.
Berbagai protokol didukung oleh namespace hierarkis. SFTP adalah salah satu protokol yang tersedia. Gambar berikut menunjukkan akses penyimpanan melalui beberapa protokol dan REST API. Untuk pembacaan yang lebih mudah, gambar ini menggunakan istilah Gen2 REST untuk merujuk ke REST API Azure Data Lake Storage Gen2.
Model izin SFTP
Azure Blob Storage tidak mendukung autentikasi atau otorisasi Microsoft Entra melalui SFTP. Sebaliknya, SFTP menggunakan bentuk baru manajemen identitas yang disebut pengguna lokal.
Pengguna lokal harus menggunakan kata sandi atau kredensial kunci pribadi Secure Shell (SSH) untuk autentikasi. Anda dapat memiliki maksimum 2000 pengguna lokal untuk akun penyimpanan.
Untuk menyiapkan izin akses, Anda akan membuat pengguna lokal, dan memilih metode autentikasi. Kemudian, untuk setiap kontainer di akun Anda, Anda dapat menentukan tingkat akses yang ingin diberikan kepada pengguna tersebut.
Perhatian
Pengguna lokal tidak beroperasi dengan model izin Azure Storage lainnya seperti RBAC (kontrol akses berbasis peran) dan ABAC (kontrol akses berbasis atribut). ACL (daftar kontrol akses) didukung untuk pengguna lokal di tingkat pratinjau.
Misalnya, Jeff memiliki izin baca saja (dapat dikontrol melalui RBAC atau ABAC) melalui identitas Microsoft Entra mereka untuk file foo.txt disimpan dalam kontainer con1. Jika Jeff mengakses akun penyimpanan melalui NFS (ketika tidak dipasang sebagai root/superuser), Blob REST, atau Data Lake Storage Gen2 REST, izin ini akan diberlakukan. Namun, jika Jeff juga memiliki identitas pengguna lokal dengan izin hapus untuk data dalam kontainer con1, mereka dapat menghapus foo.txt melalui SFTP menggunakan identitas pengguna lokal.
Untuk akun penyimpanan yang diaktifkan SFTP, Anda dapat menggunakan luasnya pengaturan keamanan Azure Blob Storage, untuk mengautentikasi dan mengotorisasi pengguna yang mengakses Storage Blob melalui portal Azure, Azure CLI, perintah Azure PowerShell, AzCopy, serta Azure SDK, dan Azure REST API. Untuk mempelajari ACL lebih lanjut, lihat Model kontrol akses di Azure Data Lake Storage Gen2.
Metode autentikasi
Anda dapat mengautentikasi pengguna lokal yang terhubung melalui SFTP dengan menggunakan kata sandi atau pasangan kunci privat-publik Secure Shell (SSH). Anda dapat mengonfigurasi kedua bentuk autentikasi dan membiarkan pengguna lokal yang terhubung memilih yang mana yang akan digunakan. Namun, autentikasi multifaktor, saat kata sandi yang valid dan pasangan kunci publik/privat yang valid diperlukan untuk autentikasi yang berhasil, tidak didukung.
Kata Sandi
Anda tidak dapat mengatur kata sandi kustom, melainkan Azure menghasilkan kata sandi untuk Anda. Jika Anda memilih autentikasi kata sandi, maka kata sandi akan disediakan setelah Anda selesai mengonfigurasi pengguna lokal. Pastikan untuk menyalin kata sandi itu dan menyimpannya di lokasi di mana Anda dapat menemukannya nanti. Anda tidak akan dapat mengambil kata sandi itu dari Azure lagi. Jika kehilangan kata sandi, Anda harus membuat yang baru. Untuk alasan keamanan, Anda tidak dapat mengatur kata sandi sendiri.
Pasangan kunci SSH
Pasangan kunci privat-publik adalah bentuk autentikasi yang paling umum untuk Secure Shell (SSH). Kunci pribadi bersifat rahasia dan harus diketahui hanya untuk pengguna lokal. Kunci umum disimpan di Azure. Saat klien SSH terhubung ke akun penyimpanan menggunakan identitas pengguna lokal, klien SSH mengirim pesan dengan kunci publik dan tanda tangan. Azure memvalidasi pesan dan memeriksa bahwa pengguna dan kunci dikenali oleh akun penyimpanan. Untuk mempelajari selengkapnya, lihat Gambaran Umum SSH dan kunci.
Jika memilih untuk mengautentikasi dengan pasangan kunci privat-umum, Anda dapat menghasilkan kunci, menggunakan yang sudah disimpan di Azure, atau memberi Azure kunci umum dari pasangan kunci umum-privat yang ada. Anda dapat memiliki maksimal 10 kunci umum per pengguna lokal.
Izin Kontainer
Untuk izin tingkat kontainer, Anda dapat memilih kontainer mana yang ingin Anda beri akses dan tingkat akses apa yang ingin Anda berikan (Baca, Tulis, Daftar, Hapus, Buat, Ubah Kepemilikan, dan Ubah Izin). Izin tersebut berlaku untuk semua direktori dan subdirektori dalam kontainer. Anda dapat memberikan setiap akses pengguna lokal ke sebanyak 100 kontainer. Izin kontainer juga dapat diperbarui setelah membuat pengguna lokal. Tabel berikut menjelaskan setiap izin secara lebih rinci.
Izin | Simbol | Deskripsi |
---|---|---|
Read | r | |
Write | w | |
List | l | |
Hapus | d | |
Buat | c | |
Ubah Kepemilikan | o | |
Mengubah Izin | p |
Saat melakukan operasi tulis pada blob di subdirektori, izin Baca diperlukan untuk membuka direktori dan mengakses properti blob.
ACLs
Untuk izin tingkat direktori atau blob, Anda dapat mengubah pengguna pemilik, grup pemilik, dan mode yang digunakan oleh ACL ADLS Gen2. Sebagian besar klien SFTP mengekspos perintah untuk mengubah properti ini. Tabel berikut ini menjelaskan perintah umum secara lebih rinci.
Perintah | Izin Kontainer yang Diperlukan | Deskripsi |
---|---|---|
paduan suara | o | |
chgrp | o | |
chmod | p |
ID yang diperlukan untuk mengubah pengguna pemilik dan grup pemilik adalah bagian dari properti baru untuk Pengguna Lokal. Tabel berikut ini menjelaskan setiap properti Pengguna Lokal baru secara lebih rinci.
Properti | Deskripsi |
---|---|
UserId | |
GroupId | |
AllowAclAuthorization |
Setelah ACL yang diinginkan dikonfigurasi dan Pengguna Lokal memungkinkan AllowAclAuthorization
, mereka dapat menggunakan ACL untuk mengotorisasi permintaan mereka. Mirip dengan RBAC, izin kontainer dapat beroperasi dengan ACL. Hanya jika pengguna lokal tidak memiliki izin kontainer yang memadai, ACL akan dievaluasi. Untuk mempelajari ACL lebih lanjut, lihat Model kontrol akses di Azure Data Lake Storage Gen2.
Direktori beranda
Saat mengonfigurasi izin, Anda memiliki opsi untuk mengatur direktori beranda untuk pengguna lokal. Jika tidak ada kontainer lain yang ditentukan dalam permintaan koneksi SFTP, maka direktori beranda adalah direktori yang disambungkan pengguna secara default. Misalnya, perhatikan permintaan berikut yang dibuat dengan menggunakan SSH Terbuka. Permintaan ini tidak menentukan nama kontainer atau direktori sebagai bagian dari perintah sftp
.
sftp myaccount.myusername@myaccount.blob.core.windows.net
put logfile.txt
Jika Anda mengatur direktori beranda pengguna mycontainer/mydirectory
, maka klien akan terhubung ke direktori itu. Kemudian, file logfile.txt
tersebut akan diunggah ke mycontainer/mydirectory
. Jika Anda tidak mengatur direktori beranda, maka upaya koneksi akan gagal. Sebagai gantinya, menghubungkan pengguna harus menentukan kontainer bersama dengan permintaan dan kemudian menggunakan perintah SFTP untuk menavigasi ke direktori target sebelum mengunggah file. Contoh berikut menunjukkan ini:
sftp myaccount.mycontainer.myusername@myaccount.blob.core.windows.net
cd mydirectory
put logfile.txt
Catatan
Direktori beranda hanyalah direktori awal tempat pengguna lokal yang terhubung ditempatkan. Pengguna lokal dapat menavigasi ke jalur lain dalam kontainer tempat mereka terhubung jika mereka memiliki izin kontainer yang sesuai.
Algoritme yang didukung
Anda dapat menggunakan banyak klien SFTP yang berbeda untuk terhubung dengan aman dan kemudian mentransfer file. Menghubungkan klien harus menggunakan algoritma yang ditentukan dalam tabel di bawah ini.
Jenis | Algoritma |
---|---|
Kunci host 1 | rsa-sha2-256 2 rsa-sha2-512 2 ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 |
Pertukaran kunci | ecdh-sha2-nistp384 ecdh-sha2-nistp256 diffie-hellman-group14-sha256 diffie-hellman-group16-sha512 diffie-hellman-group-exchange-sha256 |
Cipher/enkripsi | aes128-gcm@openssh.com aes256-gcm@openssh.com aes128-ctr aes192-cbc aes256-ctr |
Integritas/MAC | hmac-sha2-256 hmac-sha2-512 hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com |
Kunci umum | ssh-rsa 2 rsa-sha2-256 rsa-sha2-512 ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 ecdsa-sha2-nistp521 |
1 Kunci host diterbitkan di sini. 2 Panjang kunci RSA minimal harus 2048 bit.
Dukungan SFTP untuk Azure Blob Storage saat ini membatasi dukungan algoritma kriptografinya berdasarkan pertimbangan keamanan. Kami sangat menyarankan agar pelanggan menggunakan algoritme yang disetujui Microsoft Security Development Lifecycle (SDL) untuk mengakses data mereka dengan aman.
Saat ini, sesuai dengan Microsoft Security SDL, kami tidak berencana mendukung hal berikut: ssh-dss
, , diffie-hellman-group14-sha1
, diffie-hellman-group1-sha1
diffie-hellman-group-exchange-sha1
, hmac-sha1
, . hmac-sha1-96
Dukungan algoritme dapat berubah di masa mendatang.
Menyambungkan dengan SFTP
Untuk memulai, aktifkan dukungan SFTP, buat pengguna lokal, dan tetapkan izin untuk pengguna lokal tersebut. Lalu, Anda dapat menggunakan klien SFTP untuk menyambungkan dengan aman, lalu mentransfer file. Untuk panduan langkah demi langkah, lihat Menyambungkan ke Azure Blob Storage dengan menggunakan Protokol Transfer File SSH (SFTP).
Klien yang didukung dan diketahui
Klien berikut memiliki dukungan algoritma yang kompatibel dengan SFTP untuk Azure Blob Storage. Lihat Batasan dan masalah umum dengan dukungan Protokol Transfer File SSH (SFTP) untuk Azure Blob Storage jika Anda mengalami kesulitan dalam menyambungkan. Daftar ini tidak lengkap dan dapat berubah dari waktu ke waktu.
- AsyncSSH 2.1.0+
- Axway
- Cyberduck 7.8.2+
- edtFTPjPRO 7.0.0+
- FileZilla 3.53.0+
- libssh 0.9.5+
- Maverick Legacy 1.7.15+
- Moveit 12.7
- OpenSSH 7.4+
- paramiko 2.8.1+
- phpseclib 1.0.13+
- PuTTY 0.74+
- QualysML 12.3.41.1+
- RebexSSH 5.0.7119.0+
- Salesforce
- ssh2js 0.1.20+
- sshj 0.27.0+
- SSH.NET 2020.0.0+
- WinSCP 5.10+
- Workday
- XFB.Gateway
- JSCH 0.1.54+
- curl 7.85.0+
- AIX1
- MobaXterm v21.3
1 Harus mengatur AllowPKCS12KeystoreAutoOpen
opsi ke no
.
Batasan dan masalah yang diketahui
Lihat artikel batasan dan masalah yang diketahui untuk daftar lengkap batasan dan masalah dengan dukungan SFTP untuk Azure Blob Storage.
Penetapan harga dan penagihan
Mengaktifkan titik akhir SFTP memiliki biaya per jam. Untuk informasi harga terbaru, lihat Harga Azure Blob Storage.
Tip
Untuk menghindari biaya pasif, pertimbangkan untuk mengaktifkan SFTP hanya ketika Anda secara aktif menggunakannya untuk mentransfer data. Untuk panduan tentang cara mengaktifkan lalu menonaktifkan dukungan SFTP, lihat Koneksi ke Azure Blob Storage dengan menggunakan SSH File Transfer Protocol (SFTP).
Harga transaksi, penyimpanan, dan jaringan untuk akun penyimpanan yang mendasar berlaku. Semua transaksi SFTP dikonversi ke Transaksi Baca, Tulis, atau Lainnya di akun penyimpanan Anda. Ini termasuk semua perintah SFTP dan panggilan API. Untuk mempelajari selengkapnya, lihat Memahami model tagihan lengkap untuk Azure Blob Storage.
Lihat juga
- Menyambungkan ke Azure Blob Storage dengan menggunakan Protokol Transfer file SSH (SFTP)
- Batasan dan masalah umum dengan dukungan Protokol Transfer File SSH (SFTP) untuk Azure Blob Storage
- Kunci host terkait dukungan Protokol Transfer File SSH (SFTP) untuk Azure Blob Storage
- Pertimbangan performa Protokol Transfer File SSH (SFTP) dalam penyimpanan Azure Blob