Role memungkinkan Anda memberikan satu set izin yang sama kepada beberapa pengguna tanpa harus mengonfigurasi setiap pengguna secara individual. Role-based access control (RBAC) mengurangi beban pengelolaan izin—cukup tetapkan izin ke suatu role sekali saja, lalu tambahkan atau hapus pengguna dari role tersebut sesuai kebutuhan.
MaxCompute mendukung dua jenis role: administrator roles dan resource roles. Anda dapat menggunakan role bawaan untuk tugas administratif umum atau membuat role kustom yang disesuaikan dengan struktur tim Anda.
Jenis role
MaxCompute mengkategorikan role berdasarkan jenis izin yang dapat dimilikinya:
| Jenis Peran | Cakupan izin | Cara pemberian izin |
|---|---|---|
| Administrator role | Izin manajemen (manajemen pengguna, konfigurasi keamanan) | Hanya melalui Policies — bukan ACL |
| Resource role | Izin resource objek (tabel, paket, kuota) | ACL atau policies |
Administrator role tidak dapat memiliki izin resource, sedangkan resource role tidak dapat memiliki izin manajemen.
Role bawaan
MaxCompute menyediakan empat role administrator bawaan di dua cakupan.
Role bawaan tingkat proyek
Super_Administrator
Role bawaan tingkat tertinggi dalam suatu proyek. Memiliki semua izin operasi resource dan semua izin manajemen. Pemilik proyek atau pengguna mana pun yang diberi role Super_Administrator dapat menetapkan role ini kepada pengguna lain.
Admin
Role administrator bawaan dengan semua izin operasi resource dan sebagian izin manajemen. Batasan:Role administrator bawaan yang disediakan oleh MaxCompute. Digunakan untuk mengelola izin semua objek dan koneksi jaringan (Networklink).
Hanya pemilik proyek yang dapat menetapkan role Admin kepada pengguna.
Pengguna yang diberi role Admin tidak dapat menetapkan kembali role Admin kepada orang lain.
Pengguna yang diberi role Admin tidak dapat mengonfigurasi kebijakan keamanan, memodifikasi model autentikasi, atau mengubah izin role Admin itu sendiri.
Role bawaan tingkat tenant
Super_Administrator
Memiliki semua izin yang dimiliki oleh Akun Alibaba Cloud pada MaxCompute, kecuali izin untuk membuat proyek, menghapus proyek, dan mengaktifkan layanan MaxCompute.
Admin
Memiliki izin untuk mengelola semua objek dan koneksi jaringan dalam tenant.
Akses default ke proyek
Pemilik proyek memiliki semua izin atas proyek yang mereka buat. Secara default, hanya pemilik proyek yang dapat mengakses objek dalam proyek tersebut. Pengguna lain tidak dapat mengakses objek proyek kecuali pemilik proyek secara eksplisit memberikan izin yang diperlukan kepada mereka.
Izin role administrator tingkat proyek
Tabel berikut mencantumkan izin yang tersedia untuk setiap role administrator tingkat proyek.
<table> <thead> <tr> <td><p><b>Jenis izin</b></p></td> <td><p><b>Objek</b></p></td> <td><p><b>Operasi</b></p></td> <td><p><b>Deskripsi</b></p></td> <td><p><b>Pemilik proyek</b></p></td> <td><p><b>Super_Administrator</b></p></td> <td><p><b>Admin</b></p></td> </tr> </thead> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <tbody> <tr> <td><p>Konfigurasi keamanan proyek</p></td> <td><p>Proyek</p></td> <td><p>SetSecurityConfiguration</p></td> <td><p>Mengonfigurasi pengaturan keamanan untuk proyek.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>GetSecurityConfiguration</p></td> <td><p>Menanyakan pengaturan keamanan proyek.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Manajemen proyek terlindungi</p></td> <td><p>Proyek</p></td> <td><p>AddTrustedProject</p></td> <td><p>Menambahkan proyek terlindungi.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>RemoveTrustedProject</p></td> <td><p>Menghapus proyek terlindungi.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>ListTrustedProjects</p></td> <td><p>Menanyakan proyek terlindungi.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Manajemen pengguna</p></td> <td><p>Proyek</p></td> <td><p>AddUser</p></td> <td><p>Menambahkan pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>RemoveUser</p></td> <td><p>Menghapus pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>ListUsers</p></td> <td><p>Menanyakan pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>ListUserRoles</p></td> <td><p>Menanyakan role yang ditetapkan kepada pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Manajemen role</p></td> <td><p>Proyek</p></td> <td><p>CreateRole</p></td> <td><p>Membuat role.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>DescribeRole</p></td> <td><p>Melihat izin suatu role.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>AlterRole</p></td> <td><p>Memodifikasi atribut suatu role.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>DropRole</p></td> <td><p>Menghapus role.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>ListRoles</p></td> <td><p>Menanyakan role.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Pengelolaan izin menggunakan role</p></td> <td><p>Role</p></td> <td><p>GrantRole</p></td> <td><p>Menetapkan role kepada pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Role</p></td> <td><p>RevokeRole</p></td> <td><p>Mencabut role dari pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Role</p></td> <td><p>ListRolePrincipals</p></td> <td><p>Menanyakan pengguna yang ditetapkan ke role tertentu.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Manajemen paket</p></td> <td><p>Proyek</p></td> <td><p>CreatePackage</p></td> <td><p>Membuat paket.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Proyek</p></td> <td><p>ShowPackages</p></td> <td><p>Melihat paket.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Paket</p></td> <td><p>DescribePackage</p></td> <td><p>Melihat detail paket.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Paket</p></td> <td><p>DropPackage</p></td> <td><p>Menghapus paket.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Paket</p></td> <td><p>InstallPackage</p></td> <td><p>Menginstal paket.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Paket</p></td> <td><p>UninstallPackage</p></td> <td><p>Menghapus instalasi paket.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Paket</p></td> <td><p>AllowInstallPackage</p></td> <td><p>Mengizinkan paket diinstal dan digunakan di proyek lain.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Paket</p></td> <td><p>DisallowInstallPackage</p></td> <td><p>Mencabut izin agar paket tidak dapat diinstal dan digunakan di proyek lain.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Paket</p></td> <td><p>AddPackageResource</p></td> <td><p>Menambahkan resource ke paket.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Paket</p></td> <td><p>RemovePackageResource</p></td> <td><p>Menghapus resource dari paket.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Manajemen label</p></td> <td><p>Tabel</p></td> <td><p>GrantLabel</p></td> <td><p>Memberikan izin kepada role atau pengguna menggunakan label.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Tabel</p></td> <td><p>RevokeLabel</p></td> <td><p>Mencabut izin berbasis label dari role atau pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Tabel</p></td> <td><p>ShowLabelGrants</p></td> <td><p>Menanyakan izin berbasis label yang diberikan kepada role atau pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Tabel</p></td> <td><p>SetDataLabel</p></td> <td><p>Mengonfigurasi label untuk role atau pengguna.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> <tr> <td><p>Pembersihan izin yang kedaluwarsa</p></td> <td><p>Proyek</p></td> <td><p>ClearExpiredGrants</p></td> <td><p>Membersihkan informasi tentang izin yang kedaluwarsa.</p></td> <td><p><img></p></td> <td><p><img></p></td> <td><p><img></p></td> </tr> </tbody> </table>
Dalam tabel di atas,menunjukkan bahwa role memiliki izin tersebut, dan
menunjukkan bahwa role tidak memiliki izin tersebut.
Menghapus role (tingkat tenant)
Untuk menghapus role tingkat tenant di Konsol MaxCompute, lakukan langkah-langkah berikut:
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
Pada tab Role Management, temukan role yang dituju dan klik Delete di kolom Actions.
Pada kotak dialog Delete Role, klik OK.
Memodifikasi role (tingkat tenant)
Anda hanya dapat memodifikasi kebijakan akses suatu role. Nama role tersebut tidak dapat diubah.
Untuk memodifikasi kebijakan akses role tingkat tenant di Konsol MaxCompute, lakukan langkah-langkah berikut:
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
Pada tab Role Management, temukan role yang dituju dan klik Permission Management di kolom Actions.
Pada kotak dialog Edit Role, klik OK.
Membuat role (tingkat tenant)
Untuk membuat role tingkat tenant di Konsol MaxCompute, lakukan langkah-langkah berikut:
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
Pada tab Role Management, klik Add Role.
Pada kotak dialog Add Role, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
Nama Parameter
Deskripsi
Role Name
Nama role tingkat tenant baru. Nama harus unik dalam Akun Alibaba Cloud Anda. Nama harus memenuhi persyaratan berikut:
Harus diawali dengan huruf.
Hanya boleh berisi huruf, garis bawah (_), dan angka.
Panjangnya harus antara 6 hingga 64 karakter.
Policy Content
Kebijakan akses untuk role tersebut. Anda dapat mengedit kode kebijakan di antarmuka berdasarkan templat kebijakan.
Klik OK.
Role kustom
Jika role bawaan tidak sesuai dengan kebutuhan tim Anda, buatlah role kustom. Jenis yang tersedia bergantung pada cakupannya:
| Cakupan | Jenis Peran | Apa yang dapat Anda berikan |
|---|---|---|
| Tingkat proyek | Administrator atau resource | Izin manajemen atau izin resource objek dalam suatu proyek |
| Tingkat tenant | Hanya resource | Izin atas resource objek seperti kuota, koneksi jaringan, dan proyek |
Membuat role tingkat proyek
Pemilik proyek dan pengguna yang diberi role bawaan tingkat proyek dapat membuat, menanyakan, dan menghapus role kustom menggunakan klien MaxCompute, MaxCompute Studio, atau Konsol DataWorks.
Setelah membuat role, tetapkan role tersebut kepada pengguna agar izinnya berlaku. Untuk detailnya, lihat Menetapkan role kepada pengguna.
Sintaks
create role <role_name> [privilegeproperties("type"="admin|resource")];Parameter
| Parameter | Wajib | Deskripsi |
|---|---|---|
role_name | Ya | Nama role. Harus unik dalam suatu proyek. Aturan: diawali huruf; hanya berisi huruf dan angka; panjang 1–64 karakter. Jalankan list roles; di klien MaxCompute untuk memeriksa nama role yang sudah ada. |
privilegeproperties | Tidak | Jenis role. "type"="admin" membuat administrator role — izin hanya dapat diberikan melalui policies. "type"="resource" membuat resource role — izin dapat diberikan melalui ACL atau policies. Jika dihilangkan, secara default akan dibuat resource role. |
Contoh
Buat resource role bernama Worker:
create role Worker;Buat administrator role bernama sale_admin:
create role sale_admin privilegeproperties("type"="admin");Menanyakan role tingkat proyek
Sintaks
list roles;Contoh
list roles;Output:
admin
super_administrator
workerMenghapus role tingkat proyek
Sebelum menghapus role, perhatikan hal berikut:
Role hanya dapat dihapus jika tidak ada pengguna yang saat ini ditetapkan ke role tersebut. Cabut role tersebut dari semua pengguna yang ditetapkan terlebih dahulu. Untuk detailnya, lihat Mencabut role dari pengguna.
Menghapus role tidak menghapus izinnya. Izin berbasis ACL, berbasis kebijakan, dan berbasis label yang terkait dengan role tetap ada di proyek. Jika role baru dibuat dengan nama yang sama, role tersebut akan mewarisi izin sisa tersebut. Jalankan
purge privs from rolesetelah menghapus role untuk menghapusnya.
Sintaks
drop role <role_name>;Parameter
| Parameter | Wajib | Deskripsi |
|---|---|---|
role_name | Ya | Nama role yang akan dihapus. Jalankan list roles; di klien MaxCompute untuk memeriksa nama role yang sudah ada. |
Contoh
drop role Worker;Menghapus izin role yang telah dihapus
Setelah role dihapus, izin sisanya (berbasis ACL, berbasis kebijakan, dan berbasis label) tetap ada di proyek. Pemilik proyek, Admin, atau Super_Administrator dapat menghapusnya dengan perintah berikut.
Jalankan perintah ini hanya setelah role dihapus. Jika role masih ada, perintah akan mengembalikan: "Principal <role_name> still exist in the project".Sintaks
purge privs from role <role_name>;Parameter
| Parameter | Wajib | Deskripsi |
|---|---|---|
role_name | Ya | Nama role yang telah dihapus dan izinnya ingin Anda hapus. Jalankan list roles; untuk memastikan role tersebut tidak lagi ada sebelum menjalankan perintah ini. |
Langkah selanjutnya
Berikan izin kepada role yang telah Anda buat: Lakukan kontrol akses berdasarkan role tingkat proyek
Tetapkan role kepada pengguna agar izinnya berlaku: Menetapkan role kepada pengguna
Batasan
Anda hanya dapat merencanakan dan mengelola role tingkat tenant di wilayah-wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), dan Tiongkok (Shenzhen).