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 dengan menggunakan klien 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.
Sekarang, dengan dukungan SFTP untuk Azure Blob Storage, Anda dapat mengaktifkan dukungan SFTP untuk akun Blob Storage dengan satu klik. 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 Menyambungkan ke Azure Blob Storage dengan menggunakan SSH File Transfer Protocol (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 REST untuk merujuk ke REST API Azure Data Lake Storage.
Model izin SFTP
Klien SFTP tidak dapat diotorisasi dengan menggunakan identitas Microsoft Entra. 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 8.000 pengguna lokal untuk akun penyimpanan.
Untuk menyiapkan izin akses, Anda 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). Daftar kontrol akses (ACL) 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 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.
Mengaktifkan dukungan SFTP tidak mencegah jenis klien lain menggunakan ID Microsoft Entra. Untuk pengguna yang mengakses Blob Storage dengan menggunakan perintah portal Azure, Azure CLI, Azure PowerShell, AzCopy, serta Azure SDK, dan AZURE REST API, Anda dapat terus menggunakan luas pengaturan keamanan Azure Blob Storage untuk mengotorisasi akses. Untuk mempelajari selengkapnya, lihat Model kontrol akses di Azure Data Lake Storage.
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 Anda kehilangan kata sandi, Anda harus membuat kata sandi 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.
Daftar kontrol akses (ACL)
Penting
Kemampuan ini saat ini berada dalam PRATINJAU. Lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure untuk persyaratan hukum yang berlaku pada fitur Azure dalam versi beta, pratinjau, atau belum dirilis secara umum.
ACL memungkinkan Anda memberikan akses"halus", seperti akses tulis ke direktori atau file tertentu. Untuk mempelajari selengkapnya tentang ACL, lihat Daftar kontrol akses (ACL) di Azure Data Lake Storage.
Untuk mengotorisasi pengguna lokal dengan menggunakan ACL, Anda harus terlebih dahulu mengaktifkan otorisasi ACL untuk pengguna lokal tersebut. Lihat Memberikan izin ke kontainer.
Catatan
Meskipun ACL dapat menentukan tingkat izin untuk berbagai jenis identitas, hanya pengguna pemilik, grup pemilik, dan semua identitas pengguna lain yang dapat digunakan untuk mengotorisasi pengguna lokal. Pengguna bernama dan grup bernama belum didukung untuk otorisasi pengguna lokal.
Tabel berikut ini menjelaskan properti pengguna lokal yang digunakan untuk otorisasi ACL.
Properti | Deskripsi |
---|---|
UserId | |
GroupId | |
AllowAclAuthorization |
Bagaimana izin ACL dievaluasi
ACL dievaluasi hanya jika pengguna lokal tidak memiliki izin kontainer yang diperlukan untuk melakukan operasi. Karena cara izin akses dievaluasi oleh sistem, Anda tidak dapat menggunakan ACL untuk membatasi akses yang telah diberikan oleh izin tingkat kontainer. Itu karena sistem mengevaluasi izin kontainer terlebih dahulu, dan jika izin tersebut memberikan izin akses yang memadai, ACL diabaikan.
Penting
Untuk memberikan pengguna lokal akses baca atau tulis ke file, Anda harus memberikan izin Jalankan pengguna lokal tersebut ke folder akar kontainer, dan ke setiap folder dalam hierarki folder yang mengarah ke file. Jika pengguna lokal adalah pengguna pemilik atau grup pemilik, maka Anda dapat menerapkan izin Jalankan ke pengguna pemilik atau grup pemilik. Jika tidak, Anda harus menerapkan izin Jalankan ke semua pengguna lain.
Memodifikasi ACL dengan klien SFTP
Meskipun izin ACL dapat dimodifikasi dengan menggunakan alat Atau SDK Azure yang didukung, pengguna lokal juga dapat memodifikasinya. Untuk mengaktifkan pengguna lokal untuk mengubah izin ACL, Anda harus terlebih dahulu memberikan izin pengguna Modify Permissions
lokal. Lihat Memberikan izin ke kontainer.
Pengguna lokal hanya dapat mengubah tingkat izin pengguna pemilik, grup pemilik, dan semua pengguna ACL lainnya. Menambahkan atau memodifikasi entri ACL untuk pengguna bernama, grup bernama, dan prinsip keamanan bernama belum didukung.
Pengguna lokal juga dapat mengubah ID pengguna pemilik dan grup pemilik. Bahkan, hanya pengguna lokal yang dapat mengubah ID pengguna pemilik atau grup pemilik ke ID pengguna lokal. Anda belum dapat mereferensikan ID pengguna lokal di ACL dengan menggunakan alat Azure atau SDK. Untuk mengubah pengguna pemilik atau grup pemilik direktori atau blob, pengguna lokal harus diberi Modify Ownership
izin.
Untuk melihat contoh, lihat Mengubah ACL file atau direktori.
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. Panjang 2 kunci RSA harus minimal 2.048 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).
Pertimbangan jaringan
SFTP adalah layanan tingkat platform, sehingga port 22 akan terbuka meskipun opsi akun dinonaktifkan. Jika akses SFTP tidak dikonfigurasi, maka semua permintaan menerima pemutusan sambungan dari layanan. Saat menggunakan SFTP, Anda mungkin ingin membatasi akses publik melalui konfigurasi firewall, jaringan virtual, atau titik akhir privat. Pengaturan ini diberlakukan di lapisan aplikasi, yang berarti tidak spesifik untuk SFTP dan akan berdampak pada konektivitas ke semua Titik Akhir Azure Storage. Untuk informasi selengkapnya tentang mengonfigurasi aturan firewall, lihat Konfigurasikan firewall Azure Storage dan jaringan virtual.
Catatan
Alat audit yang mencoba menentukan dukungan TLS pada lapisan protokol dapat mengembalikan versi TLS selain versi minimum yang diperlukan saat dijalankan langsung terhadap titik akhir akun penyimpanan. Untuk informasi lebih lanjut, lihat Memberlakukan versi minimum Keamanan Lapisan Transportasi (TLS) yang diperlukan untuk permintaan ke akun penyimpanan.
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+
- Five9
- libssh 0.9.5+
- Maverick Legacy 1.7.15+
- Moveit 12.7
- Keledai 2.1.2+
- 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 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 Menyambungkan 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.
Konten terkait
- Dukungan Protocol Transfer file SSH (SFTP) untuk Azure Blob Storage
- Mengaktifkan atau menonaktifkan dukungan SSH File Transfer Protocol (SFTP) di Azure Blob Storage
- Mengotorisasi akses ke Azure Blob Storage dari klien SSH File Transfer Protocol (SFTP)
- 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