Halaman ini menjawab pertanyaan umum mengenai pengelolaan izin MaxCompute.
Solusi otorisasi
Bagaimana cara membaca data lintas proyek?
Gunakan packages. Package mengelompokkan objek dari satu proyek dan memungkinkan proyek lain menginstal serta mengaksesnya — mekanisme utama untuk otorisasi lintas proyek di MaxCompute. Alur kerjanya adalah:
Administrator proyek membuat package berisi objek yang diperlukan dan menetapkan izin atas objek tersebut.
Proyek lain menginstal package tersebut.
Administrator proyek tersebut mengelola package yang telah diinstal dan memberikan akses kepada pengguna mereka sendiri.
Untuk detail selengkapnya, lihat Mengakses resource lintas proyek berdasarkan package dan Kontrol izin untuk package.
Apakah pemilik proyek dapat diubah menjadi RAM user?
Tidak. Pemilik proyek secara permanen ditetapkan sebagai akun yang membuat proyek tersebut dan tidak dapat dialihkan. Jika Anda memerlukan Resource Access Management (RAM) user untuk memiliki kontrol administratif luas, pemilik proyek dapat memberikan peran Admin kepada RAM user tersebut.
Peran Admin menyediakan kemampuan administratif yang luas tetapi mengecualikan empat operasi yang hanya dapat dilakukan oleh pemilik proyek. Lihat Apa yang tidak dapat dilakukan oleh peran Admin tetapi dapat dilakukan oleh pemilik proyek?.
Apa yang tidak dapat dilakukan oleh peran Admin tetapi dapat dilakukan oleh pemilik proyek?
Peran Admin memiliki akses administratif penuh untuk operasional sehari-hari, tetapi empat operasi berikut hanya dapat dilakukan oleh pemilik proyek:
| Kemampuan | Pemilik proyek | Peran Admin |
|---|---|---|
| Menetapkan peran Admin kepada pengguna lain | Ya | Tidak |
| Memodifikasi konfigurasi keamanan proyek | Ya | Tidak |
| Memodifikasi model otorisasi proyek | Ya | Tidak |
| Memodifikasi izin peran Admin | Ya | Tidak |
Tip: Untuk mengurangi risiko operasional, hindari menggunakan akun pemilik proyek untuk tugas rutin. Buat pengguna khusus dengan peran Admin untuk administrasi harian, dan gunakan akun pemilik proyek hanya untuk keempat operasi yang disebutkan di atas.
RAM user tidak dapat mengakses DataWorks dan muncul prompt bahwa ID AccessKey tidak ditemukan, padahal ID AccessKey tersebut ada. Bagaimana cara menyelesaikan masalah ini?
RAM user harus menambahkan informasi AccessKey mereka ke profil pribadi. Buka halaman Informasi Pribadi. Klik Modify AccessKey Information dan masukkan AccessKey ID dan AccessKey Secret. Setelah konfigurasi selesai, coba akses DataWorks kembali.
Pemberian izin
RAM user tidak dapat mengakses DataWorks dan muncul prompt bahwa ID AccessKey tidak ditemukan. Bagaimana cara memperbaikinya?
RAM user perlu menambahkan informasi AccessKey mereka ke profil pribadi. Buka halaman Informasi Pribadi, klik Modify AccessKey Information, lalu masukkan AccessKey ID dan AccessKey Secret. Setelah menyimpan, coba akses DataWorks kembali.
Otorisasi gagal saat saya memberikan akses RAM user ke tabel produksi. Bagaimana cara memperbaikinya?
Gejala
Error berikut muncul saat Anda memberikan izin pada tabel produksi:
class java.lang.IllegalArgumentException: AccessId should not be empty.Penyebab
ID AccessKey dan AccessKey Secret belum dikonfigurasi untuk akun yang melakukan pemberian izin.
Solusi
Login ke Konsol RAM sebagai Akun Alibaba Cloud atau RAM user yang melakukan otorisasi, lalu pastikan AccessKey ID dan AccessKey Secret telah dikonfigurasi.
Bagaimana cara memberikan izin kepada pengguna pada suatu tabel?
Hanya pemilik proyek atau pengguna dengan peran Super_Administrator atau Admin yang dapat melakukan otorisasi. Gunakan perintah GRANT berbasis daftar kontrol akses (ACL):
GRANT UPDATE ON TABLE project_name TO ram$bob@aliyun.com:Allen;Untuk daftar lengkap izin dan objek yang dapat diberikan, lihat Izin MaxCompute.
Bagaimana cara memberikan izin kepada RAM user?
Otorisasi harus dilakukan oleh Akun Alibaba Cloud atau pengguna dengan peran Super_Administrator atau Admin. Untuk informasi lebih lanjut mengenai otorisasi, lihat Izin MaxCompute.
Apa itu subject, object, dan action dalam otorisasi MaxCompute?
Otorisasi MaxCompute dibangun berdasarkan tiga elemen:
Subject: Pengguna atau peran yang menerima izin.
Object: Resource yang dilindungi — berupa proyek, tabel, model, fungsi, resource, atau instans.
Action: Operasi yang diizinkan pada objek tersebut, seperti membaca, menulis, atau mengkueri.
Untuk informasi lebih lanjut, lihat Kontrol akses berbasis ACL.
Bagaimana RAM user dapat mengakses proyek yang dimiliki oleh Akun Alibaba Cloud berbeda?
Misalnya, Akun A memiliki RAM user (ram_user_1) yang memerlukan akses ke proyek milik Akun B. Langkah-langkahnya adalah:
Akun B menambahkan Akun A ke proyek dan memberikan peran Super_Administrator kepada Akun A.
Akun A login ke proyek milik Akun B dan menjalankan perintah berikut untuk menambahkan ram_user_1:
add user ram$A:ram_user_1;
Bagaimana cara mendapatkan ID tenant saya?
Login ke Konsol MaxCompute dan pilih Wilayah di pojok kiri atas.Konsol MaxCompute
Di panel navigasi kiri, pilih Manage Configurations > Tenants.
Di halaman Tenants, klik tab Tenant Property.
Salin nilai yang ditampilkan untuk Tenant ID.
Error: "FAILED: Invalid account Name xxxxxx"
FAILED: Invalid account Name xxxxxxPenyebab
Username dalam pernyataan GRANT salah eja atau formatnya tidak sesuai.
Solusi
Jalankan list users; untuk mengambil username yang tepat dalam proyek saat ini, lalu salin username tersebut langsung dari output ke perintah otorisasi Anda.
Error: "FAILED: lack of account provider, principalName xxxxxx"
FAILED: lack of account provider, principalName xxxxxxPenyebab
Sistem akun proyek tidak mendukung RAM, atau format username salah.
Solusi
Periksa apakah proyek mendukung RAM:
list accountproviders;Jika
ramtidak muncul dalam output, tambahkan:add accountprovider ram;Jalankan
list accountproviders;lagi untuk memastikan RAM sudah terdaftar.Jika error tetap muncul setelah RAM ditambahkan, kemungkinan username-nya salah — jalankan
list users;dan salin username yang tepat ke perintah Anda.
Error izin
Saya memiliki izin untuk mengkueri view, tetapi kueri gagal dengan error izin terkait pengguna lain. Mengapa?
Penyebab
Kueri gagal karena pemilik view — bukan Anda — tidak memiliki izin SELECT pada tabel dasar. Di MaxCompute, view dievaluasi menggunakan izin pemiliknya. Jika pemilik kehilangan akses ke tabel yang dirujuk (misalnya, setelah pergantian kepemilikan view atau pencabutan izin eksplisit), view tersebut menjadi tidak tersedia bagi semua orang, bahkan pengguna yang telah diberikan akses kueri ke view tersebut.
Solusi
Periksa izin yang diberikan kepada pemilik view:
show grants for <view_owner_username>;Jika izin SELECT pada tabel yang dirujuk tidak ada, berikan kembali izin tersebut kepada pemilik view. View akan berfungsi kembali.
Error: "You have NO privilege to do the restricted operation on xxx Access Mode is AllDenied"
You have NO privilege to do the restricted operation on xxx Access Mode is AllDeniedPenyebab
Proyek dinonaktifkan.
Solusi
Periksa salah satu penyebab berikut:
Pembayaran tertunggak atau kuota langganan kedaluwarsa: Tambahkan dana ke akun Anda atau lakukan perpanjangan langganan. Proyek akan secara otomatis dikembalikan ke status Normal, yang dapat memakan waktu 2 hingga 30 menit tergantung jumlah pesanan dan proyek yang terlibat.
Dinonaktifkan secara manual: Di Konsol MaxCompute, buka Manage Configurations > Projects dan lanjutkan kembali proyek tersebut.
Error: "failed to check policy format: invalid Action value - odps:\<Action\>"
Gejala
Saat Anda menggunakan fitur otorisasi kebijakan untuk membuat peran bernama test_role bertipe Resource dan memberikan izin CreatePackage kepada peran tersebut, Anda menulis kebijakan berikut:
{
"Statement":[
{
"Action":[
"odps:CreatePackage"
],
"Effect":"Allow",
"Resource":[
"acs:odps:*:projects/test_project/authorization",
"acs:odps:*:projects/test_project/authorization/packages/*",
"acs:odps:*:projects/test_project/authorization/packages/*/*/*"
]
}
],
"Version":"1"
}Error berikut dikembalikan:
Create role test_role error: [400] com.aliyun.odps.OdpsException: failed to check policy format: invalid Action value - odps:CreatePackagePenyebab
Error ini terjadi ketika Anda menetapkan izin manajemen proyek (seperti CreatePackage) ke peran bertipe Resource. MaxCompute tidak mengizinkan izin manajemen proyek pada peran tipe Resource.
Solusi
Ubah jenis peran menjadi Admin (jenis manajemen) ketika peran kustom memerlukan izin manajemen Proyek. Untuk daftar lengkap izin manajemen Proyek, lihat Daftar izin manajemen Proyek. Untuk panduan perencanaan peran, lihat Perencanaan peran.