Sistem otorisasi Container Compute Service (ACS) mencakup otorisasi Resource Access Management (RAM) untuk sumber daya komputasi dasar dan otorisasi Role-Based Access Control (RBAC) untuk kluster ACS. Pengguna dengan peran berbeda memerlukan izin berbeda pada kedua lapisan ini. Topik ini menjelaskan praktik terbaik otorisasi untuk lima jenis peran: manajer sumber daya perusahaan, administrator kluster Kubernetes, insinyur O&M kluster dan aplikasi, pengembang aplikasi, serta administrator izin.
Sistem otorisasi ACS
Sistem otorisasi ACS terdiri dari otorisasi RAM untuk sumber daya komputasi dan otorisasi RBAC untuk kluster ACS. Gambar berikut mengilustrasikan sistem otorisasi ACS.
Otorisasi RAM mencakup operasi O&M kluster. Kluster ACS merupakan jenis kluster Serverless Container Service for Kubernetes (ACK), sehingga Anda harus memanggil API ACK untuk melakukan operasi O&M pada kluster ACS. Oleh karena itu, Anda memerlukan izin untuk memanggil operasi API ACK dan layanan Alibaba Cloud lainnya. Operasi O&M tersebut meliputi:
Membuat, melihat, dan menghapus kluster.
Mengelola otorisasi RBAC.
Memantau kluster serta mengelola log dan event.
Otorisasi RBAC digunakan untuk memberikan izin tingkat namespace atau seluruh kluster pada sumber daya Kubernetes di kluster ACS. Izin ini mencakup kemampuan untuk membuat, menghapus, memodifikasi, dan melihat 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 persistent volume (PV), persistent volume claim (PVC), dan StorageClass.
Namespace, ConfigMap, dan Secret.
Kebijakan otorisasi default sistem
Container Compute Service (ACS) menyediakan kebijakan otorisasi default sistem berikut. Anda dapat memberikan kebijakan ini kepada Pengguna RAM atau Peran RAM untuk memberikan izin secara cepat.
Cakupan otorisasi kebijakan default sistem cukup luas. Kebijakan ini mungkin memberikan izin baca atau tulis untuk semua operasi OpenAPI ACK dan ACS. Berikan izin ini dengan hati-hati.
Kebijakan otorisasi default sistem | Ikhtisar kebijakan otorisasi |
AliyunAccFullAccess | Izin untuk mengelola Container Compute Service (ACS). |
AliyunAccReadOnlyAccess | Izin read-only pada Container Compute Service (ACS). |
AliyunCSFullAccess | Izin untuk mengelola Container Service for Kubernetes (ACK). Penting Memberikan izin baca dan tulis pada semua kluster ACK, termasuk kluster ACS. Berikan izin ini dengan hati-hati. |
AliyunCSReadOnlyAccess | Izin read-only pada Container Service for Kubernetes (ACK). Penting Memberikan izin baca pada semua kluster ACK, termasuk kluster ACS. Berikan izin ini dengan hati-hati. |
Kebijakan otorisasi AliyunAccFullAccess
{
"Statement": [
{
"Effect": "Allow",
"Action": "acc:*",
"Resource": "*"
}
],
"Version": "1"
}Kebijakan otorisasi AliyunAccReadOnlyAccess
{
"Version": "1",
"Statement": [
{
"Action": [
"acc:Describe*",
"acc:CheckServiceRole"
],
"Resource": "*",
"Effect": "Allow"
}
]
}Kebijakan otorisasi AliyunCSFullAccess
{
"Version": "1",
"Statement": [
{
"Action": "cs:*",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:PassRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"acs:Service": "cs.aliyuncs.com"
}
}
}
]
}Kebijakan otorisasi AliyunCSReadOnlyAccess
{
"Version": "1",
"Statement": [
{
"Action": [
"cs:CheckServiceRole",
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Resource": "*",
"Effect": "Allow"
}
]
}Praktik terbaik otorisasi
Ketika Pengguna RAM atau Peran RAM perlu melakukan O&M kluster dan aplikasi, Anda harus memberikan izin RAM dan izin RBAC kepada Pengguna RAM atau Peran RAM tersebut secara berurutan—izin RAM terlebih dahulu, baru izin RBAC. Operasi otorisasi untuk tiga skenario khas adalah sebagai berikut:
Jika objek otorisasi adalah insinyur O&M untuk kluster dan aplikasi dalam kluster, lihat Skenario 1: Memberikan izin kepada insinyur O&M untuk kluster dan aplikasi dalam kluster.
Jika objek otorisasi adalah pengembang untuk aplikasi dalam kluster, lihat Skenario 2: Memberikan izin kepada pengembang untuk aplikasi dalam kluster.
Jika objek otorisasi adalah administrator izin untuk aplikasi dalam kluster, lihat Skenario 3: Memberikan izin kepada administrator izin untuk aplikasi dalam kluster.
Skenario 1: Memberikan izin kepada insinyur O&M untuk kluster dan aplikasi dalam kluster
Objek otorisasi memerlukan izin untuk mengelola dan memelihara kluster ACS serta melakukan O&M pada objek sumber daya aplikasi dalam kluster ACS. Oleh karena itu, proses otorisasi mencakup otorisasi RAM dan otorisasi RBAC.
RAM Authorization
Container Service for Kubernetes (ACK) menyediakan dua kebijakan sistem untuk RAM: AliyunCSFullAccess dan AliyunCSReadOnlyAccess.
AliyunCSFullAccess memberikan izin akses baca dan tulis untuk semua operasi OpenAPI ACK.
AliyunCSReadOnlyAccess memberikan izin akses read-only untuk semua operasi OpenAPI ACK.
PentingKedua kebijakan sistem ini berlaku untuk semua kluster ACK, termasuk kluster ACS. Berikan izin ini dengan hati-hati.
Login ke Konsol RAM dan sambungkan salah satu kebijakan sistem sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Memberikan izin kepada Pengguna RAM dan Memberikan izin kepada Peran RAM.
Jika Anda memerlukan kontrol akses detail halus, Anda dapat membuat kebijakan kustom. Untuk informasi lebih lanjut, lihat Memberikan izin RAM kepada Pengguna RAM atau Peran RAM.
Dalam skenario ini, contoh kebijakan otorisasi RAM adalah sebagai berikut.
{ "Statement": [ { "Effect": "Allow", "Action": [ "acc:DescribeCommodityStatus", "acc:CheckServiceRole", "acc:DescribeCloudProducts", "acc:DescribeRegions", "acc:DescribeZones", "acc:GetInstancePrice", "acc:RecommendZones" ], "Resource": "*" }, { "Effect": "Allow", "Action": "bssapi:GetPayAsYouGoPrice", "Resource": "*" }, { "Action": "ecs:DescribePrice", "Effect": "Allow", "Resource": "*" }, { "Action": "ram:GetRole", "Effect": "Allow", "Resource": "*" }, { "Action": [ "cs:CreateCluster", "cs:DescribeAddons", "cs:DescribeUserQuota", "cs:DescribeTasks", "cs:ListClusterAddonInstances" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "cs:GetClusters", "cs:DescribeClustersV1", "cs:DescribeClusterUserKubeconfig", "cs:DescribeClusterResources", "cs:DescribeUserQuota", "cs:DescribeClusterLogs", "cs:ModifyCluster", "cs:UpgradeCluster", "cs:GetUpgradeStatus", "cs:ResumeUpgradeCluster", "cs:PauseClusterUpgrade", "cs:CancelClusterUpgrade", "cs:InstallClusterAddons", "cs:UpgradeClusterAddons", "cs:DescribeClusterAddonsUpgradeStatus", "cs:UnInstallClusterAddons", "cs:DeleteCluster", "cs:DescribeClusterDetail", "cs:GetClusterAuditProject", "cs:DescribeClusterAddonsVersion", "cs:DescribeClusterTasks", "cs:DescribeClusterEvents", "cs:DescribeEvents", "cs:ListClusterReportSummary", "cs:GetClusterBasicInfo", "cs:ListReportTaskRule", "cs:CreateReportTaskRule", "cs:CheckControlPlaneLogEnable", "cs:CreateClusterCheck" ], "Effect": "Allow", "Resource": "acs:cs:*:*:cluster/<yourclusterID>" }, { "Action": [ "cs:CheckServiceRole", "cs:DescribeKubernetesVersionMetadata" ], "Effect": "Allow", "Resource": "acs:cs:*:*:cluster/*" }, { "Action": [ "log:ListProject" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "vpc:ListEnhanhcedNatGatewayAvailableZones", "vpc:DescribeEipAddresses", "vpc:DescribeVSwitches" ], "Effect": "Allow", "Resource": "*" } ], "Version": "1" }Pada contoh di atas, ganti
<yourclusterID>dengan ID kluster ACS Anda.Untuk informasi lebih lanjut tentang OpenAPI ACK, lihat [Perubahan Produk] Pengumuman tentang optimalisasi autentikasi OpenAPI untuk Container Service dan Ikhtisar API.
RBAC Authorization
Setelah memberikan izin RAM, Anda juga harus memberikan izin RBAC untuk kluster yang sesuai kepada Pengguna RAM atau Peran RAM tersebut. ACK menyediakan empat peran yang telah ditentukan sebelumnya di tingkat kluster.
Peran
Izin RBAC dalam kluster
Administrator
Izin baca dan tulis pada semua sumber daya di semua namespace.
Insinyur O&M
Izin baca dan tulis pada sumber daya Kubernetes yang terlihat di konsol di semua namespace, serta izin read-only pada node kluster, PV, namespace, dan kuota.
Pengembang
Izin baca dan tulis pada sumber daya Kubernetes yang terlihat di konsol di semua atau namespace tertentu.
Pengguna terbatas
Izin read-only pada sumber daya Kubernetes yang terlihat di konsol di semua atau namespace tertentu.
Di Konsol Container Compute Service, klik Permission Management di panel navigasi sebelah kiri. Pada tab RAM Users atau RAM Roles, temukan objek otorisasi dan klik Manage Permissions.
Pada kotak dialog yang muncul, klik +Add Permission, atur pengelolaan izin untuk kluster target dan namespace yang sesuai menjadi O&M Engineer, lalu klik Submit Authorization untuk menyelesaikan konfigurasi.

Setelah menyambungkan peran yang telah ditentukan sebelumnya, ACS secara otomatis membuat instance ClusterRoleBinding di kluster yang sesuai dengan identitas objek yang diberi otorisasi. Izin RBAC untuk peran Insinyur O&M yang telah ditentukan sebelumnya adalah sebagai berikut.
Jika Anda memerlukan kontrol akses RBAC detail halus, Anda dapat membuat instance ClusterRole kustom. Untuk informasi lebih lanjut, lihat RBAC. Kemudian, pada halaman pengelolaan izin di Konsol Container Compute Service, pilih Custom Role dan pilih nama ClusterRole kustom dari daftar drop-down. Untuk informasi lebih lanjut, lihat Membuat kebijakan otorisasi RBAC kustom.
Skenario 2: Memberikan izin kepada pengembang untuk aplikasi dalam kluster
Objek otorisasi hanya memerlukan izin untuk mengoperasikan objek sumber daya Kubernetes di kluster ACS (otorisasi RBAC) dan tidak memerlukan izin akses ke sumber daya cloud.
Sebelum memberikan izin RBAC, objek otorisasi harus memiliki setidaknya izin read-only untuk layanan kontainer pada kluster target (otorisasi RAM). Jika Anda mengatur Resource ke "*", Anda memberikan izin Action yang ditentukan kepada Pengguna RAM atau Peran RAM pada semua kluster ACK, termasuk kluster ACS. Jangan mengatur Resource ke "*" kecuali Anda sepenuhnya memahami cakupan dan dampak otorisasi serta berniat memberikan akses penuh.
RAM Authorization
Di Konsol RAM, buat kebijakan kustom dan berikan kebijakan tersebut kepada Pengguna RAM atau Peran RAM target. Untuk informasi lebih lanjut, lihat Memberikan izin RAM kepada Pengguna RAM atau Peran RAM. Konten kebijakan kustom adalah sebagai berikut:
{ "Statement": [ { "Effect": "Allow", "Action": [ "acc:DescribeCommodityStatus", "acc:CheckServiceRole", "acc:DescribeCloudProducts", "acc:DescribeRegions", "acc:DescribeZones", "acc:GetInstancePrice", "acc:RecommendZones" ], "Resource": "*" }, { "Effect": "Allow", "Action": "bssapi:GetPayAsYouGoPrice", "Resource": "*" }, { "Action": [ "cs:Get*", "cs:List*", "cs:Check*", "cs:Describe*" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/<yourclusterID>" ] }, { "Action": [ "vpc:ListEnhanhcedNatGatewayAvailableZones", "vpc:DescribeEipAddresses" ], "Effect": "Allow", "Resource": "*" } ], "Version": "1" }Pada contoh di atas, ganti
<yourclusterID>dengan ID kluster ACS Anda.CatatanUntuk memberikan objek otorisasi hanya izin read-only pada kluster ACS, gunakan contoh ini untuk menentukan ARN kluster ACS. Jangan berikan kebijakan sistem RAM
AliyunCSReadOnlyAccessyang disediakan oleh ACK, karena kebijakan tersebut memberikan izin read-only pada semua kluster ACK dan terlalu luas untuk skenario ini.RBAC Authorization
Di Konsol Container Compute Service, klik Permission Management di panel navigasi sebelah kiri. Pada tab RAM Users atau RAM Roles, temukan objek otorisasi dan klik Manage Permissions.
Pada kotak dialog yang muncul, klik +Add Permission, atur pengelolaan izin untuk kluster target dan namespace yang sesuai menjadi Developer, lalu klik Submit Authorization untuk menyelesaikan konfigurasi.

Setelah menyambungkan peran yang telah ditentukan sebelumnya, ACS secara otomatis membuat instance ClusterRoleBinding di kluster yang sesuai dengan identitas objek yang diberi otorisasi. Izin RBAC untuk peran pengembang yang telah ditentukan sebelumnya adalah sebagai berikut.
Skenario 3: Memberikan izin kepada administrator izin untuk aplikasi dalam kluster
Objek otorisasi perlu mengelola izin RBAC Pengguna RAM atau Peran RAM lainnya. Secara default, Pengguna RAM atau Peran RAM tidak memiliki izin untuk memberikan izin RBAC kepada Pengguna RAM atau Peran RAM lainnya. Ketika objek otorisasi membuka halaman pengelolaan izin di Konsol Container Compute Service, jika antarmuka menampilkan pesan The Current RAM User Does Not Have Permission Management Permissions. Contact Your Alibaba Cloud Account Or A Permission Administrator To Grant The Permissions, ini menunjukkan bahwa objek otorisasi kekurangan izin RAM yang diperlukan atau izin administrator RBAC untuk kluster tersebut.
Otorisasi RAM
Pastikan objek otorisasi diberikan izin RAM yang diperlukan. Kebijakan harus mencakup izin untuk:
Menampilkan daftar Pengguna RAM atau Peran RAM lainnya.
Memberikan kebijakan otorisasi RAM kepada Pengguna RAM atau Peran RAM tertentu.
Menampilkan konfigurasi izin RBAC Kubernetes Pengguna RAM atau Peran RAM tertentu.
Melakukan otorisasi RBAC Kubernetes.
Login ke Konsol RAM untuk memberikan izin RAM yang sesuai kepada Pengguna RAM atau Peran RAM tertentu. Untuk informasi lebih lanjut, lihat Memberikan izin RAM kepada Pengguna RAM atau Peran RAM. Contoh kebijakan RAM kustom adalah sebagai berikut.
{ "Statement": [ { "Effect": "Allow", "Action": [ "acc:DescribeCommodityStatus", "acc:CheckServiceRole", "acc:DescribeCloudProducts", "acc:DescribeRegions", "acc:DescribeZones", "acc:GetInstancePrice", "acc:RecommendZones" ], "Resource": "*" }, { "Effect": "Allow", "Action": "bssapi:GetPayAsYouGoPrice", "Resource": "*" }, { "Action": [ "ram:Get*", "ram:List*", "cs:GetUserPermissions", "cs:GetSubUsers", "cs:GrantPermission", "cs:CheckServiceRole" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ram:AttachPolicyToUser", "ram:AttachPolicyToRole" ], "Effect": "Allow", "Resource": [ "acs:ram:*:*:policy/xxxx", # Ganti xxxx dengan nama kebijakan RAM yang perlu Anda sambungkan. Jika Anda menggantinya dengan *, berarti objek otorisasi memiliki kemampuan untuk menyambungkan semua kebijakan RAM. "acs:*:*:*:user/*" ] }, { "Action": [ "vpc:ListEnhanhcedNatGatewayAvailableZones", "vpc:DescribeEipAddresses" ], "Effect": "Allow", "Resource": "*" } ], "Version": "1" }RBAC Authorization
Di Konsol Container Compute Service, klik Permission Management di panel navigasi sebelah kiri. Pada tab RAM Users atau RAM Roles, temukan objek otorisasi dan klik Manage Permissions.
Pada kotak dialog yang muncul, klik +Add Permission, atur pengelolaan izin untuk kluster target dan namespace yang sesuai menjadi Administrator atau peran kustom cluster-admin, lalu klik Submit Authorization untuk menyelesaikan konfigurasi.
CatatanAkun Alibaba Cloud (akun root) dan pembuat kluster secara default terikat pada peran cluster-admin dan memiliki akses ke semua objek sumber daya Kubernetes di kluster.

Setelah memberikan izin RAM dan RBAC di atas kepada objek otorisasi, objek tersebut dapat mengelola otorisasi RBAC untuk Pengguna RAM atau Peran RAM lainnya dalam cakupan izin yang ditentukan. Untuk informasi lebih lanjut, lihat Memberikan izin RAM kepada Pengguna RAM atau Peran RAM.
Deskripsi Action otorisasi
Nama izin (Action) | Deskripsi |
acc:CheckServiceRole | Memeriksa apakah akun telah mengotorisasi produk untuk mengasumsikan ServiceRole guna mengakses sumber daya cloud akun lain. |
acc:DescribeCommodityStatus | Memeriksa apakah produk ACS telah diaktifkan untuk akun. |
Nama izin (Action) | Deskripsi |
bssapi:GetPayAsYouGoPrice | Menanyakan layanan penetapan harga untuk produk bayar sesuai penggunaan. |
ram:ListUserBasicInfos | Menanyakan informasi dasar semua Pengguna RAM. |
ram:ListRoles | Menanyakan informasi dasar semua Peran RAM. |
Untuk deskripsi Action otorisasi untuk ACK, lihat Informasi otorisasi.
Topik ini hanya sebagai referensi otorisasi. Sebelum menulis aturan otorisasi, pastikan Anda memahami Action otorisasi untuk ACK dan menerapkan Prinsip Hak Istimewa Minimum (PoLP). Untuk informasi lebih lanjut, lihat Informasi otorisasi.
Jika Anda tidak menentukan ID kluster target dan mengatur cakupan otorisasi ke "*", Anda memberikan izin untuk mengoperasikan semua kluster ACK, tidak termasuk kluster ACS. Berikan izin ini dengan hati-hati.