Sistem otorisasi Alibaba Cloud Container Compute Service (ACS) mencakup Otorisasi Resource Access Management (RAM) dan Otorisasi Kontrol Akses Berbasis Peran (RBAC). Otorisasi RAM digunakan untuk memberikan izin pada sumber daya cloud, sedangkan Otorisasi RBAC digunakan untuk memberikan izin pada sumber daya dalam klaster ACS. Topik ini menjelaskan kedua jenis otorisasi tersebut serta cara menerapkannya di klaster ACS.
Sistem Otorisasi ACS
Sistem otorisasi ACS terdiri dari Otorisasi RAM untuk sumber daya komputasi dan Otorisasi RBAC untuk klaster ACS. Gambar berikut mengilustrasikan sistem otorisasi ACS.
Otorisasi RAM melibatkan operasi pemeliharaan klaster. Klaster ACS merupakan jenis klaster Serverless Kubernetes (ACK), sehingga Anda harus memanggil API ACK untuk melakukan operasi pemeliharaan klaster ACS. Oleh karena itu, Anda perlu mendapatkan izin untuk memanggil API ACK dan layanan Alibaba Cloud lainnya. Operasi pemeliharaan yang dapat dilakukan melalui API ini meliputi:
Membuat, melihat, dan menghapus klaster.
Mengelola Otorisasi RBAC.
Memantau klaster serta mengelola log dan peristiwa.
Otorisasi RBAC digunakan untuk memberikan izin tingkat namespace atau seluruh klaster pada sumber daya Kubernetes dalam klaster ACS. Izin ini mencakup pembuatan, penghapusan, modifikasi, dan peninjauan jenis-jenis sumber daya Kubernetes berikut:
Sumber daya beban kerja: seperti Deployment, StatefulSet, Job, CronJob, pod, ReplicaSet, dan HorizontalPodAutoscaler (HPA).
Sumber daya jaringan: seperti Service, Ingress, dan NetworkPolicy.
Sumber daya penyimpanan: seperti volume persisten (PV), klaim volume persisten (PVC), dan StorageClass.
Namespace, ConfigMap, dan Secret.
Untuk menggunakan pengguna RAM atau peran RAM dalam mengelola klaster dan aplikasi di dalam klaster, Anda harus menyelesaikan Otorisasi RAM dan RBAC. Sebelum melakukan Otorisasi RBAC, pastikan Otorisasi RAM telah selesai. Lihat topik-topik berikut untuk menyelesaikan otorisasi dalam berbagai skenario:
Untuk memberikan izin kepada insinyur pemeliharaan, lihat Skenario 1: Berikan izin kepada insinyur pemeliharaan untuk mengelola klaster dan aplikasi.
Untuk memberikan izin kepada pengembang, lihat Skenario 2: Berikan izin kepada pengembang untuk mengelola klaster dan aplikasi Anda.
Untuk memberikan izin kepada administrator izin, lihat Skenario 3: Berikan izin kepada administrator otorisasi untuk mengelola izin pengguna RAM dan peran RAM.
Otorisasi RAM
Ketika sebuah perusahaan mengintegrasikan sistemnya dengan RAM, insinyur pemeliharaan perlu menggunakan pengguna RAM atau peran RAM untuk mengelola sumber daya cloud. Secara default, pengguna RAM atau peran RAM tidak memiliki izin untuk memanggil API layanan cloud. Anda harus memberikan izin yang diperlukan kepada pengguna RAM atau peran RAM terlebih dahulu.
Anda dapat melakukan Otorisasi RAM dengan salah satu metode berikut:
Lampirkan kebijakan sistem: Metode ini digunakan untuk memberikan izin baca dan tulis pada sumber daya global kepada pengguna RAM atau peran RAM. Kami merekomendasikan penggunaan kebijakan sistem untuk memberikan izin pemeliharaan pada semua klaster yang dimiliki oleh akun Alibaba Cloud Anda. Untuk informasi lebih lanjut, lihat Berikan izin kepada pengguna RAM atau peran RAM.
Tabel berikut menjelaskan kebijakan sistem umum yang terkait dengan ACS. Pilih kebijakan sistem sesuai dengan kebutuhan Anda.
Kebijakan sistem
Deskripsi
AliyunCSFullAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk memanggil semua operasi API ACK saat membuat klaster ACS.
PentingRuang lingkup izin ini mencakup semua klaster ACK kecuali klaster ACS. Gunakan kebijakan ini dengan hati-hati. Kebijakan ini hanya melibatkan Otorisasi RAM untuk operasi API ACK. Jika Anda ingin mengelola aplikasi dalam klaster ACS, Anda harus melakukan Otorisasi RBAC. Untuk informasi lebih lanjut, lihat Otorisasi RBAC.
AliyunCSReadOnlyAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk memanggil semua operasi API baca-saja ACK. Ruang lingkup izin ini mencakup semua klaster ACK kecuali klaster ACS. Gunakan kebijakan ini dengan hati-hati.
AliyunACCFullAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin akses untuk semua operasi API ACS.
AliyunACCReadOnlyAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin baca-saja untuk semua operasi API ACS.
AliyunVPCReadOnlyAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk menentukan virtual private cloud (VPC) untuk klaster ACS yang akan dibuat.
AliyunContainerRegistryFullAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk gambar bisnis dalam akun Alibaba Cloud.
AliyunLogReadOnlyAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk memilih proyek log yang ada untuk menyimpan log audit klaster ACS yang akan dibuat atau melihat informasi pemeriksaan konfigurasi klaster ACS.
AliyunRAMFullAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk mengelola otorisasi global dalam akun Alibaba Cloud.
AliyunEBSFullAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk menggunakan semua fitur layanan penyimpanan disk.
AliyunARMSReadOnlyAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk melihat data pemantauan plugin Managed Service for Prometheus.
AliyunKMSReadOnlyAccess
Kebijakan ini memberikan pengguna RAM atau peran RAM izin untuk melihat kunci dalam Key Management Service (KMS) untuk klaster ACS yang akan dibuat.
Lampirkan kebijakan kustom: Metode ini digunakan untuk mengontrol izin pengguna RAM atau peran RAM pada sumber daya cloud secara rinci. Jika pengguna RAM atau peran RAM perlu mengembangkan aplikasi berdasarkan SDK, Anda dapat menggunakan kebijakan kustom untuk mengontrol izin pada operasi API.
Untuk menerapkan kontrol akses tingkat aplikasi, Anda dapat menggunakan RAM Roles for Service Accounts (RRSA) untuk memberikan izin kepada pod yang berbeda agar dapat mengakses layanan cloud yang berbeda. Untuk informasi lebih lanjut, lihat Gunakan RRSA untuk memberikan izin kepada pod yang berbeda untuk mengakses layanan cloud yang berbeda.
Sebagai contoh, Anda dapat menggunakan kebijakan berikut untuk memberikan izin baca kepada pengguna RAM atau peran RAM pada bucket Object Storage Service (OSS):
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:ListBuckets", "oss:GetBucketStat", "oss:GetBucketInfo", "oss:GetBucketTagging", "oss:GetBucketAcl" ], "Resource": "acs:oss:*:*:*" }, { "Effect": "Allow", "Action": [ "oss:ListObjects", "oss:GetBucketAcl" ], "Resource": "acs:oss:*:*:myphotos" }, { "Effect": "Allow", "Action": [ "oss:GetObject", "oss:GetObjectAcl" ], "Resource": "acs:oss:*:*:myphotos/*" } ] }
Peran dan ClusterRoles
Role atau ClusterRole dalam RBAC berisi aturan yang mewakili serangkaian izin. Izin ini bersifat tambahan dan tidak mencakup aturan yang melarang operasi.
Role adalah sumber daya bernama ruang yang mendefinisikan izin dalam namespace tertentu. Saat membuat Role, Anda harus menentukan namespace tempat Role tersebut berada.
ClusterRole adalah sumber daya tanpa namespace yang mendefinisikan izin di seluruh klaster. Kedua jenis peran memiliki nama yang berbeda karena objek Kubernetes harus berupa bernama ruang atau tanpa namespace.
ClusterRole memiliki beberapa kegunaan. Anda dapat menggunakan ClusterRole untuk mengonfigurasi izin dengan cara berikut:
Tentukan izin pada sumber daya bernama ruang dalam ClusterRole dan gunakan ClusterRole untuk memberikan izin dalam namespace individu.
Tentukan izin pada sumber daya bernama ruang dalam ClusterRole dan gunakan ClusterRole untuk memberikan izin di semua namespace.
Tentukan izin pada sumber daya berskala klaster.
Gunakan Role jika ingin menentukan peran dalam namespace, dan gunakan ClusterRole jika ingin menentukan peran di seluruh klaster.
Untuk informasi lebih lanjut tentang cara membuat Kubernetes ClusterRole atau Role, lihat Sesuaikan peran RBAC.
Untuk informasi lebih lanjut tentang cara melampirkan kebijakan izin kustom Kubernetes ke pengguna RAM atau peran RAM, lihat Berikan izin RBAC kepada pengguna RAM atau peran RAM.
ACK hanya memungkinkan penggunaan ClusterRoles untuk memberikan izin RBAC. Anda tidak dapat menggunakan Roles untuk memberikan izin RBAC.
Kontrol akses berbasis RBAC
Untuk memberikan izin kepada pengguna RAM atau peran RAM dalam mengelola sumber daya Kubernetes tertentu di klaster, seperti mendapatkan informasi pod dan node, buka halaman otorisasi konsol ACS dan berikan izin kepada pengguna RAM atau peran RAM pada sumber daya bidang data.
Anda dapat menetapkan peran yang telah ditentukan sebelumnya kepada pengguna RAM atau peran RAM. Untuk informasi lebih lanjut, lihat Berikan izin RBAC kepada pengguna RAM atau peran RAM.
Tabel berikut menjelaskan izin peran.
Peran | Izin RBAC pada sumber daya klaster |
Administrator | Izin baca-tulis pada sumber daya di semua namespace. |
Insinyur pemeliharaan | Izin baca-tulis pada sumber daya yang terlihat di konsol di semua namespace dan izin baca-saja pada node, PV, namespace, dan kuota. |
Pengembang | Izin baca-tulis pada sumber daya yang terlihat di konsol di namespace tertentu atau semua namespace. |
Pengguna terbatas | Izin baca-saja pada sumber daya yang terlihat di konsol di namespace tertentu atau semua namespace. |
Peran kustom | Izin peran kustom ditentukan oleh ClusterRole yang Anda pilih. Sebelum Anda memilih ClusterRole, periksa izin ClusterRole dan pastikan bahwa Anda hanya memberikan izin yang diperlukan kepada pengguna RAM atau peran RAM. Untuk informasi lebih lanjut tentang ClusterRoles, lihat Sesuaikan peran RBAC. |