Topik ini menjawab pertanyaan yang sering diajukan (FAQ) mengenai pengelolaan izin MaxCompute.
Kategori | FAQ |
Authorization solutions | |
Granting permissions to users | |
Permission errors |
Bagaimana cara membaca data lintas proyek?
Anda dapat menggunakan packages untuk membaca data lintas proyek. Package adalah mekanisme berbagi data dan resource lintas proyek, terutama digunakan untuk otorisasi pengguna lintas proyek. Administrator proyek dapat mengemas objek yang diperlukan dan memberikan izin atasnya. Proyek lain kemudian dapat menginstal package tersebut. Setelah instalasi, administrator proyek tersebut dapat mengelola package dan memberikan izin kepada pengguna dalam proyek mereka sendiri.
Untuk informasi selengkapnya, lihat Mengakses resource lintas proyek berdasarkan packages dan Kontrol izin untuk packages.
Dapatkah pemilik proyek MaxCompute diubah menjadi RAM user?
Tidak. Pemilik proyek tidak dapat diubah. Orang yang membuat proyek adalah pemilik proyek tersebut. Pemilik proyek dapat memberikan peran Admin kepada Resource Access Management (RAM) user.
Apa saja keterbatasan peran Admin dibandingkan dengan pemilik proyek?
Dibandingkan dengan pemilik proyek, pengguna dengan peran Admin tidak dapat melakukan operasi berikut:
Pengguna dengan peran Admin tidak dapat memberikan izin Admin kepada pengguna lain.
Anda tidak dapat mengubah konfigurasi keamanan proyek.
Model otorisasi proyek tidak dapat diubah.
Izin peran Admin tidak dapat diubah.
Saat saya meminta izin pada tabel lingkungan produksi untuk RAM user, otorisasi gagal. Bagaimana cara mengatasi masalah ini?
Symptom
Saat Anda menggunakan Akun Alibaba Cloud untuk memberikan izin pada tabel di lingkungan produksi kepada RAM user, error berikut dikembalikan.
class java.lang.IllegalArgumentException: AccessId should not be empty.Penyebab
ID AccessKey dan Rahasia AccessKey dari Akun Alibaba Cloud atau RAM user belum dikonfigurasi.
Solusi
Login ke RAM console menggunakan Akun Alibaba Cloud atau sebagai RAM user. Pastikan AccessKey ID dan AccessKey Secret telah dikonfigurasi.
Bagaimana cara memberikan izin kepada pengguna untuk mengoperasikan tabel?
Pemilik proyek atau pengguna dengan peran Super_Administrator atau Admin harus melakukan otorisasi. Anda dapat menggunakan metode otorisasi daftar kontrol akses (ACL) (grant) untuk memberikan izin yang diperlukan kepada pengguna agar dapat mengoperasikan tabel. Perintah berikut merupakan contohnya.
GRANT UPDATE ON TABLE project_name TO ram$bob@aliyun.com:Allen;Untuk informasi lebih lanjut tentang otorisasi, lihat Izin MaxCompute.
Bagaimana cara memberikan izin kepada pengguna RAM?
Otorisasi harus dilakukan oleh Akun Alibaba Cloud atau pengguna dengan peran Super_Administrator atau Admin. Untuk informasi selengkapnya mengenai otorisasi, lihat Izin MaxCompute.
Apa itu objek dan aksi dalam pengelolaan izin?
Otorisasi MaxCompute melibatkan tiga elemen:
Subject: Pengguna atau role yang diberikan izin.
Object: Objek target tempat izin diberikan kepada pengguna atau role, seperti proyek, tabel, model, fungsi, resource, atau instans.
Action: Operasi yang diizinkan untuk dilakukan pengguna atau role pada objek target, seperti membaca, menulis, atau melakukan kueri terhadap tabel.
Untuk informasi lebih lanjut, lihat Kontrol Akses Berbasis ACL.
Bagaimana RAM user dapat mengakses proyek yang dibuat oleh Akun Alibaba Cloud lain?
Asumsikan terdapat dua Akun Alibaba Cloud: Akun A dan Akun B. Akun A memiliki RAM user bernama C (ram_user_1). Pengguna C perlu mengakses proyek MaxCompute yang dibuat oleh Akun B.
Akun B harus menambahkan Akun A ke proyeknya dan memberikan peran Super_Administrator MaxCompute kepada Akun A. Kemudian, Akun A dapat login ke proyek Akun B dan menjalankan perintah add user ram$A:ram_user_1; untuk menambahkan Pengguna C ke proyek tersebut.
Bagaimana cara mendapatkan tenant ID (tenant_id)?
Untuk menentukan cakupan resource yang diotorisasi pada tingkat tenant, Anda dapat menentukan tenant dalam kebijakan akses. Untuk melakukannya, Anda harus terlebih dahulu mendapatkan ID tenant. Ikuti langkah-langkah berikut:
Login ke MaxCompute console dan pilih wilayah di pojok kiri atas.
Pada panel navigasi di sebelah kiri, pilih .
Pada halaman Tenants, klik tab Tenant Property.
Pada tab Tenant Property, dapatkan Tenant ID:.
Muncul error "FAILED: Invalid account Name xxxxxx" saat saya memberikan izin kepada pengguna. Bagaimana cara mengatasi masalah ini?
Symptom
Saat Anda memberikan izin kepada pengguna, error berikut dikembalikan.
FAILED: Invalid account Name xxxxxxPenyebab
Nama pengguna dalam pernyataan otorisasi tidak valid.
Solusi
Pastikan username tersebut benar. Anda dapat menjalankan perintah
list users;untuk mengambil daftar pengguna untuk proyek saat ini. Saat memberikan izin, salin username langsung dari daftar tersebut untuk menghindari kesalahan penulisan yang menyebabkan username tidak valid.
Muncul error "FAILED: lack of account provider, principalName xxxxxx" saat saya memberikan izin kepada pengguna. Bagaimana cara mengatasi masalah ini?
Symptom
Saat Anda memberikan izin kepada pengguna, error berikut dikembalikan.
FAILED: lack of account provider, principalName xxxxxxPenyebab
Username dalam pernyataan otorisasi tidak valid, atau sistem akun proyek saat ini tidak mendukung RAM.
Solusi
Login ke client MaxCompute. Jalankan perintah
list accountproviders;untuk memeriksa apakah sistem akun proyek MaxCompute mendukung RAM. Jika RAM tidak ada dalam hasil yang dikembalikan, jalankan perintahadd accountprovider ram;untuk menambahkan dukungan terhadap sistem akun RAM. Jalankan kembali perintahlist accountproviders;untuk memastikan dukungan RAM telah ditambahkan. Jika error tetap muncul meskipun proyek sudah mendukung RAM, pastikan username tersebut benar. Anda dapat menjalankan perintahlist users;untuk mengambil daftar pengguna untuk proyek saat ini. Saat memberikan izin, salin username langsung dari daftar tersebut untuk menghindari kesalahan penulisan yang menyebabkan username tidak valid.
Saya memiliki izin untuk melakukan kueri terhadap view di MaxCompute. Mengapa muncul error yang menyatakan bahwa pengguna lain tidak memiliki izin saat saya melakukan kueri terhadap view tersebut?
Symptom
Di MaxCompute, ViewA mereferensikan Tabel B. Pengguna A memiliki izin untuk melakukan kueri terhadap ViewA. Saat Pengguna A melakukan kueri terhadap ViewA, muncul error yang menyatakan bahwa Pengguna B (pemilik view) tidak memiliki izin untuk melakukan kueri terhadap Tabel B.
Penyebab
Jika pemilik view kehilangan izin SELECT pada tabel yang direferensikan oleh view tersebut, view menjadi tidak tersedia. Hal ini biasanya terjadi jika pemilik view diubah dan pemilik baru tidak segera diberikan izin SELECT pada tabel yang direferensikan. Hal ini juga dapat terjadi jika pemilik tabel yang direferensikan mencabut izin SELECT dari pemilik view. Oleh karena itu, meskipun Pengguna A memiliki izin untuk melakukan kueri terhadap ViewA, kueri tersebut gagal.
Solusi
Periksa apakah pemilik view kehilangan izin SELECT pada tabel yang direferensikan. Perintahnya sebagai berikut.
show grants for <user_name>; -- user_name adalah username pemilik viewJika izin tersebut hilang, berikan kembali izin SELECT pada tabel yang direferensikan kepada pemilik view. View tersebut kemudian dapat digunakan.
Muncul error "You have NO privilege to do the restricted operation on xxx Access Mode is AllDenied" saat saya menjalankan pekerjaan. Bagaimana cara mengatasi masalah ini?
Penyebab
Proyek dinonaktifkan.
Solusi
Periksa apakah akun Anda memiliki pembayaran tertunda atau pesanan langganan untuk kuota langganan yang terkait dengan proyek telah kedaluwarsa. Jika akun Anda memiliki pembayaran tertunda atau pesanan telah kedaluwarsa, proyek akan secara otomatis dikembalikan ke status Normal setelah Anda menambahkan dana ke akun atau memperpanjang langganan. Pemulihan ini dapat memakan waktu 2 hingga 30 menit, tergantung pada jumlah pesanan dan proyek Anda.
Jika proyek tidak dinonaktifkan karena pembayaran tertunda atau pesanan kedaluwarsa, proyek tersebut mungkin telah dinonaktifkan secara manual. Anda dapat melanjutkan proyek tersebut di halaman Projects di MaxCompute console. Untuk menuju halaman tersebut, pilih Manage Configurations pada panel navigasi di sebelah kiri. .
Muncul error "failed to check policy format: invalid Action value - odps:<Action>" saat saya membuat peran kustom untuk tipe resource Resource. Bagaimana cara mengatasi masalah ini?
Symptom
Saat Anda menggunakan fitur otorisasi kebijakan untuk membuat peran bernama test_role untuk tipe resource 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
MaxCompute tidak mendukung pemberian izin manajemen proyek kepada peran dengan tipe sumber daya Resource. Izin CreatePackage adalah izin manajemen proyek. Untuk informasi lebih lanjut tentang izin manajemen proyek, lihat Daftar izin manajemen proyek.
Solusi
Saat Anda membuat peran kustom yang memiliki izin manajemen proyek, alihkan jenis peran ke Admin (jenis manajemen). Kemudian, peran tersebut dapat dibuat. Untuk informasi selengkapnya tentang perencanaan peran, lihat Perencanaan Peran.