MaxCompute menyediakan fitur kontrol unduhan yang memungkinkan Anda mengelola izin pengguna atau peran untuk mengunduh tabel atau instans menggunakan perintah Tunnel. Fitur ini meningkatkan keamanan data proyek dan mencegah kebocoran data. Topik ini menjelaskan perintah yang digunakan untuk kontrol unduhan di MaxCompute serta memberikan contoh cara menggunakannya.
Informasi latar belakang
Anda dapat menjalankan perintah Tunnel untuk mengunduh tabel atau instans dalam Proyek MaxCompute. Namun, operasi unduhan dapat menyebabkan kebocoran data. Untuk mencegah hal tersebut, Anda harus mengontrol izin unduhan.
Setelah membuat Proyek MaxCompute, fitur kontrol unduhan dinonaktifkan secara default. Semua pengguna atau peran dalam proyek dapat mengunduh semua tabel dan instans. Pemilik proyek atau pengguna dengan peran Super_Administrator dapat menjalankan perintah setproject odps.security.enabledownloadprivilege=true|false; pada tingkat proyek untuk mengaktifkan atau menonaktifkan fitur kontrol unduhan.
Tabel berikut menjelaskan skenario di mana fitur kontrol unduhan cocok digunakan.
Skenario | Deskripsi | Diberi otorisasi oleh | Platform operasi |
Otorisasi pengguna tunggal | Memberikan izin kepada satu pengguna untuk mengunduh tabel atau instans tertentu. | Lihat kolom Diberi otorisasi oleh dalam Izin. | |
Otorisasi berbasis peran | Memberikan izin kepada satu peran untuk mengunduh tabel atau instans tertentu dan menetapkan peran tersebut kepada beberapa pengguna. Dengan cara ini, pengguna diberikan izin unduhan. |
Prasyarat
Sebelum menggunakan fitur kontrol unduhan, pastikan informasi berikut telah diperoleh:
Akun pengguna atau nama peran yang ingin diberi izin telah diperoleh. Peran atau akun ditambahkan ke Proyek MaxCompute. Jika akun pengguna adalah Akun Alibaba Cloud, catat dalam format ALIYUN$<account_id>. Jika akun pengguna adalah Pengguna RAM, catat dalam format RAM$<account_id>:<ID Pengguna RAM>. Jika akun pengguna adalah Peran RAM, catat dalam format `RAM$<account_id>:role/<Nama Peran RAM>`.
Anda dapat menjalankan perintah
list users;ataulist roles;pada Klien MaxCompute untuk menanyakan nama akun atau peran.Jika ingin menambahkan pengguna atau peran, lihat Perencanaan dan Manajemen Pengguna atau Perencanaan Peran.
Jenis dan nama objek.
Anda dapat mengeksekusi pernyataan
show tables;,list resources;,list functions;, ataushow instances;pada Klien MaxCompute untuk mendapatkan nama tabel (tampilan) atau instans.
Batasan
Sebelum menggunakan fitur kontrol unduhan, perhatikan batasan berikut:
Hanya subjek dan objek yang ada yang mendukung otorisasi untuk kontrol unduhan.
Saat memberikan izin unduhan kepada pengguna, karakter wildcard (*) tidak dapat digunakan untuk menentukan objek. Jika perlu menggunakan karakter wildcard (*), lakukan otorisasi berbasis peran.
Perhatian
Sebelum menggunakan fitur kontrol unduhan, perhatikan poin-poin berikut:
Jika objek dihapus, MaxCompute secara otomatis mencabut semua izin unduhan yang diberikan pada objek tersebut.
Setelah pengguna dihapus, izin yang diberikan kepada pengguna tetap ada. Jika pengguna ditambahkan kembali ke proyek, izin akses historis akan diaktifkan kembali. Untuk informasi lebih lanjut tentang cara membersihkan informasi izin residu dari pengguna yang dihapus, lihat Hapus Sepenuhnya Informasi Izin Residu dari Pengguna yang Dihapus.
Sintaksis
Sintaksis untuk perintah yang digunakan untuk memberikan izin unduhan
grant Download on <object_type> <object_name> to <subject_type> <subject_name>;Sintaksis untuk perintah yang digunakan untuk mencabut izin unduhan
revoke Download on <object_type> <object_name> from <subject_type> <subject_name>;
Tabel berikut menjelaskan parameter yang digunakan dalam perintah kontrol unduhan.
Parameter | Wajib | Deskripsi |
object_type | Ya | Jenis objek. Anda hanya dapat menentukan satu jenis objek untuk satu operasi otorisasi. Nilai valid:
|
object_name | Ya | Nama objek. Anda dapat memperoleh nama objek dengan menggunakan salah satu metode berikut:
Jika Anda memberikan izin unduhan kepada peran, Anda dapat menggunakan karakter wildcard (*) untuk menentukan objek. Misalnya, |
subject_type | Ya | Jenis subjek. Nilai valid:
|
subject_name | Ya | Nama subjek. Anda hanya dapat menentukan satu pengguna atau peran untuk satu operasi otorisasi. Anda dapat menjalankan perintah |
Contoh
Pada contoh-contoh berikut, username@example.com adalah pemilik proyek test_project_a. Allen, Tom, dan Alice adalah Pengguna RAM yang termasuk dalam akun username@example.com. Fitur kontrol unduhan diaktifkan untuk proyek test_project_a. Semua operasi otorisasi dilakukan pada Klien MaxCompute.
Contoh 1: Memberikan izin unduhan kepada Pengguna RAM.
Tambahkan Allen ke proyek test_project_a dan berikan izin untuk mengunduh data dari tabel sale_detail. Contoh perintah:
-- Masuk ke proyek test_project_a menggunakan Akun Alibaba Cloud Bob@aliyun.com. use test_project_a; -- Tambahkan Allen sebagai anggota proyek. add user RAM$username@example.com:Allen; -- Berikan Allen izin untuk mengunduh data dari tabel sale_detail di proyek test_project_a. grant Download on table sale_detail to USER RAM$username@example.com:Allen; -- Tanyakan izin Allen. show grants for RAM$username@example.com:Allen; -- Hasil berikut dikembalikan. Hasil menunjukkan bahwa Allen memiliki izin unduhan. Authorization Type: ACL [user/RAM$username@example.com:Allen] A projects/test_project_a/tables/sale_detail: DownloadContoh 2: Mencabut izin unduhan dari Pengguna RAM.
Mencabut izin unduhan yang diberikan pada Contoh 1 dari Allen.
-- Masuk ke proyek test_project_a menggunakan Akun Alibaba Cloud Bob@aliyun.com. use test_project_a; -- Mencabut izin unduhan dari Allen. revoke Download on table sale_detail from USER RAM$username@example.com:Allen; -- Tanyakan izin Allen. Izin Allen tidak termasuk izin unduhan. show grants for RAM$username@example.com:Allen;Contoh 3: Memberikan izin unduhan kepada beberapa Pengguna RAM berdasarkan peran.
Berikan Alice dan Tom izin untuk mengunduh data dari tabel yang namanya dimulai dengan tb_ di proyek test_project_a. Contoh perintah:
-- Masuk ke proyek test_project_a menggunakan Akun Alibaba Cloud Bob@aliyun.com. use test_project_a; -- Tambahkan Alice dan Tom sebagai anggota proyek. add user RAM$username@example.com:Alice; add user RAM$username@example.com:Tom; -- Buat peran bernama Worker. create role Worker; -- Tetapkan peran Worker kepada Alice dan Tom. grant Worker TO RAM$username@example.com:Alice; grant Worker TO RAM$username@example.com:Tom; -- Berikan peran Worker izin untuk mengunduh tabel yang namanya dimulai dengan tb_ di proyek test_project_a. grant Download on table tb_* to ROLE Worker; -- Tanyakan izin Alice. describe role Worker; -- Hasil berikut dikembalikan. A menunjukkan bahwa izin unduhan diberikan kepada Alice. Authorization Type: Policy [role/worker] A projects/test_project_a/tables/tb_*: DownloadContoh 4: Mencabut izin unduhan yang diberikan berdasarkan peran dari beberapa Pengguna RAM.
Mencabut izin unduhan yang diberikan berdasarkan peran Worker pada Contoh 3 dari Alice dan Tom.
-- Masuk ke proyek test_project_a menggunakan Akun Alibaba Cloud Bob@aliyun.com. use test_project_a; -- Mencabut peran Worker dari Alice dan Tom. revoke Worker from RAM$username@example.com:Alice; revoke Worker from RAM$username@example.com:Tom; -- Tanyakan izin Alice. Izin Allen tidak termasuk izin unduhan. show grants for RAM$username@example.com:Alice;
Langkah selanjutnya
Setelah memahami fitur kontrol unduhan, Anda dapat melakukan operasi berikut sesuai kebutuhan bisnis: