All Products
Search
Document Center

Container Service for Kubernetes:Pertanyaan Umum tentang Manajemen Otorisasi

Last Updated:Jun 16, 2026

Atasi error kebijakan RAM dan izin RBAC di kluster ACK.

Kegagalan otorisasi

ForbiddenQueryClusterNamespace: Kueri namespace dilarang

Pengguna RAM atau Peran RAM tidak memiliki izin RBAC pada namespace kluster. Buka Authorizations di Konsol ACK dan tetapkan peran RBAC ke pengguna RAM atau Peran RAM tersebut.

APISERVER_403

Pengguna RAM atau Peran RAM tidak memiliki izin RBAC yang diperlukan pada kluster. Buka Authorizations di Konsol ACK dan berikan peran RBAC yang diperlukan. Lihat Using RBAC Authorization.

Pengguna RAM saat ini tidak memiliki izin manajemen

Pengguna RAM atau Peran RAM tidak dapat memberikan izin RBAC kepada pihak lain. Secara default, hanya pemilik Akun Alibaba Cloud atau pengguna RAM dengan delegasi eksplisit yang dapat melakukan hal ini.

Untuk mendelegasikan manajemen RBAC ke pengguna RAM atau Peran RAM (selanjutnya disebut Pengguna A), berikan keduanya berikut ini:

Izin administrator RBAC: Di Konsol ACK, pada bagian Authorizations, tetapkan peran administrator bawaan atau peran cluster-admin kepada Pengguna A untuk kluster dan namespace target.

Izin RAM: Di Konsol RAM, sambungkan kebijakan kustom ke Pengguna A. Kebijakan tersebut harus mengizinkan Pengguna A untuk mengkueri pengguna dan peran RAM lain dalam akun yang sama, menyambungkan kebijakan tertentu, serta mengelola izin RBAC. Gunakan templat berikut:

{
    "Statement": [{
            "Action": [
                "ram:Get*",
                "ram:List*",
                "cs:GetUserPermissions",
                "cs:GetSubUsers",
                "cs:GrantPermission"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ram:AttachPolicyToUser",
                "ram:AttachPolicyToRole"
            ],
            "Effect": "Allow",
            "Resource":  [
                "acs:ram:*:*:policy/xxxxxx",
                "acs:*:*:*:user/*"
            ]
        }
    ],
    "Version": "1"
}
Ganti xxxxxx dengan nama kebijakan yang dapat disambungkan oleh Pengguna A. Untuk mengizinkan kebijakan apa pun, ganti xxxxxx dengan *.

Lihat Buat kebijakan RAM kustom dan Berikan izin RBAC kepada pengguna RAM atau Peran RAM.

Bagaimana cara membedakan apakah error disebabkan oleh RAM atau RBAC?

Periksa pesan error:

Error kebijakan RAM berisi RAM policy Forbidden atau STSToken policy Forbidden:

RAM policy Forbidden for action cs:DescribeEvents
STSToken policy Forbidden for action cs:DescribeClusterNodes

Kebijakan RAM yang disambungkan ke pengguna atau peran tidak mencakup aksi yang tercantum. Tambahkan aksi yang hilang. Lihat Buat kebijakan RAM kustom.

Error izin RBAC berisi APISERVER_403, User "xxx" cannot xx resource, atau ForbiddenQueryClusterNamespace:

events is forbidden: User "<uid>" cannot list resource "events" in API group "" at the cluster scope
ForbiddenQueryClusterNamespace, Forbidden query namespaces

Artinya, pengguna RAM <uid> tidak memiliki izin RBAC Kubernetes yang diperlukan. Berikan izin RBAC yang diperlukan.

Saya telah menyambungkan AdministratorAccess atau AliyunCSFullAccess ke pengguna RAM, tetapi tetap tidak dapat mengakses kluster

ACK memerlukan otorisasi RAM dan otorisasi RBAC. Menyambungkan AdministratorAccess atau AliyunCSFullAccess di Konsol RAM hanya mencakup lapisan RAM. Buka Authorizations di Konsol ACK dan tetapkan juga peran RBAC ke pengguna RAM tersebut. Lihat Ikhtisar otorisasi dan Berikan izin RBAC kepada pengguna RAM atau Peran RAM.

ForbiddenCheckControlPlaneLog

Pengguna RAM atau Peran RAM belum ditetapkan ke peran RBAC administrator bawaan atau insinyur O&M. Buka Authorizations di Konsol ACK dan tetapkan peran administrator atau insinyur O&M.

ForbiddenHelmUsage

Pengguna RAM atau Peran RAM belum ditetapkan ke peran RBAC administrator bawaan. Buka Authorizations di Konsol ACK dan tetapkan peran administrator.

ForbiddenRotateCert

Pengguna RAM atau Peran RAM belum ditetapkan ke peran RBAC administrator bawaan. Buka Authorizations di Konsol ACK dan tetapkan peran administrator.

ForbiddenAttachInstance

Pengguna RAM atau Peran RAM belum ditetapkan ke peran RBAC administrator bawaan atau insinyur O&M. Buka Authorizations di Konsol ACK dan tetapkan peran administrator atau insinyur O&M.

ForbiddenUpdateKMSState

Pengguna RAM atau Peran RAM belum ditetapkan ke peran RBAC administrator bawaan atau insinyur O&M. Buka Authorizations di Konsol ACK dan tetapkan peran administrator atau insinyur O&M.

Forbidden get trigger

Pengguna RAM atau Peran RAM belum ditetapkan ke peran RBAC administrator bawaan, insinyur O&M, atau developer. Buka Authorizations di Konsol ACK dan tetapkan salah satu peran tersebut.

Otorisasi RBAC

Bisakah saya memberikan izin pada aplikasi tertentu, bukan semua resource?

Bisa. Buat ClusterRole kustom yang menggunakan bidang resourceNames untuk membatasi cakupan izin hanya pada aplikasi tertentu, lalu bind ke pengguna RAM atau Peran RAM tersebut.

  1. Login ke Konsol ACK.

  2. Di panel navigasi kiri, klik Authorizations.

  3. Di tab RAM Users, temukan pengguna RAM target dan klik Modify Permissions.

    Catatan

    Akun yang Anda gunakan untuk perubahan ini harus memiliki izin read-only minimal pada kluster dan harus ditetapkan ke peran cluster-admin atau administrator. Lihat Buat kebijakan RAM kustom.

  4. Klik Add Permissions, pilih kluster, namespace, dan jenis otorisasi, lalu klik Submit. Tabel berikut mencantumkan izin peran RBAC bawaan. Untuk langkah selanjutnya, lihat Berikan izin RBAC kepada pengguna RAM atau Peran RAM.

    Catatan
    • Izin juga dapat diberikan lintas semua kluster untuk pengguna RAM.

    • Pengguna RAM atau Peran RAM dapat memiliki satu peran RBAC bawaan dan satu atau beberapa peran RBAC kustom untuk kluster atau namespace tertentu.

    Role

    Izin RBAC pada resource kluster

    Administrator

    Akses baca/tulis ke semua resource namespace dan resource tingkat kluster seperti node, volume, namespace, dan kuota.

    O&M engineer

    Akses baca/tulis ke resource yang terlihat di konsol di semua namespace; akses read-only ke node, volume, namespace, dan kuota.

    Developer

    Akses baca/tulis ke resource yang terlihat di konsol di semua atau namespace tertentu.

    Restricted user

    Akses read-only ke resource yang terlihat di konsol di semua atau namespace tertentu.

    Custom role

    Ditentukan oleh ClusterRole yang dipilih. Tinjau aturannya sebelum penugasan untuk mencegah izin yang tidak diinginkan. Lihat Buat kebijakan RAM kustom.

    Permission management page

Pengguna RAM yang ditetapkan ke peran cs:admin tidak dapat membuat objek CustomResourceDefinition (CRD)

Hal ini memengaruhi kluster yang dibuat sebelum Mei 2019. ClusterRole cs:admin bawaan di kluster tersebut tidak memiliki izin untuk beberapa resource Kubernetes, termasuk pembuatan CRD. Ada dua opsi:

  • Tetapkan peran cluster-admin ke pengguna RAM atau Peran RAM tersebut.

  • Hapus ClusterRole cs:admin yang ada dan buat ulang dengan definisi berikut:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: cs:admin
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'

Bagaimana cara menggunakan pengguna RAM atau Peran RAM untuk menetapkan peran RBAC kepada pengguna lain?

Lihat Pengguna RAM saat ini tidak memiliki izin manajemen untuk informasi tentang izin RAM dan penugasan peran RBAC yang diperlukan.

Bagaimana cara menemukan pengguna RAM atau Peran RAM yang terkait dengan ClusterRoleBinding atau RoleBinding?

Periksa bidang subjects. Jika kind bernilai User dan name terdiri dari angka atau angka dan tanda hubung, maka itu adalah ID pengguna RAM atau Peran RAM.

Contoh berikut menunjukkan ClusterRoleBinding untuk pengguna RAM 1*** dan RoleBinding untuk pengguna RAM 2***:

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: 1***-cluster-admin-clusterrolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - apiGroup: rbac.authorization.k8s.io
    kind: User
    name: 1***-1673419473

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: 2***-default-rolebinding
  namespace: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: 'cs:ns:dev'
subjects:
  - apiGroup: rbac.authorization.k8s.io
    kind: User
    name: '2***'

Mengapa saya tidak bisa mengubah atau mencabut izin RBAC pembuat kluster?

ACK memblokir permintaan untuk mengubah atau mencabut izin RBAC pembuat kluster, sehingga pembuat selalu mempertahankan akses ke kluster.

Untuk mencabut izin pembuat kluster, hapus langsung ClusterRoleBinding-nya:

  1. Temukan ClusterRoleBinding untuk pembuat. Ganti <uid> dengan UID Akun Alibaba Cloud.

    kubectl get clusterrolebinding | grep <uid>
  2. Cadangkan dan hapus ClusterRoleBinding tersebut. Ganti <name> dengan nama yang dikembalikan pada langkah sebelumnya.

    kubectl get clusterrolebinding <name> -o yaml > <name>.yaml
    kubectl delete clusterrolebinding <name>

Izin apa saja yang diperlukan untuk menggunakan fitur terminal?

Tetapkan peran RBAC administrator bawaan, insinyur O&M, atau developer ke pengguna RAM atau Peran RAM tersebut. Berikan juga izin RAM untuk memanggil cs:DescribeClusterUserKubeconfig. Lihat Berikan izin RBAC kepada pengguna RAM atau Peran RAM dan Buat kebijakan RAM kustom.

Bagaimana cara memberikan izin RBAC kepada pengguna yang login melalui CloudSSO?

Pengguna CloudSSO login sebagai Peran RAM, bukan sebagai pengguna RAM individual. Untuk memberikan izin RBAC, berikan izin tersebut ke Peran RAM, bukan ke akun pengguna individual.

Sebagai contoh, jika pengguna login sebagai AliyunReservedSSO-Policy-foo-bar-admin/foo.bar, berikan izin RBAC ke Peran RAM AliyunReservedSSO-Policy-foo-bar-admin.

Otorisasi RAM

Pengguna RAM dengan izin read-only pada semua kluster tidak lagi dapat melihat beberapa kluster

Penyebab paling umum adalah akun yang salah atau filter kelompok sumber daya non-default—bukan perubahan izin. Periksa hal berikut:

  1. Login ke Konsol ACK menggunakan pengguna RAM atau Peran RAM yang benar.

  2. Di bilah navigasi atas, atur cakupan resource ke All Resources > All Resources.

    All Resources selector

  3. Arahkan kursor ke avatar di pojok kanan atas untuk memverifikasi identitas login.

Jika filter kelompok sumber daya aktif, kluster di luar kelompok tersebut akan disembunyikan meskipun izinnya benar.

Bagaimana cara memberikan izin kepada pengguna RAM atau Peran RAM untuk membuat kluster?

Diperlukan dua langkah:

  1. Tetapkan peran sistem ke ACK menggunakan Akun Alibaba Cloud Anda. Peran sistem hanya perlu ditetapkan sekali. Jika ragu, login dengan Akun Alibaba Cloud Anda, klik Cloud Resource Access Authorization, dan lengkapi otorisasi tersebut. Lihat Peran bawaan ACK.

  2. Sambungkan kebijakan RAM kustom ke pengguna RAM atau Peran RAM yang mencakup izin cs:CreateCluster:

    Catatan
    • Pembuatan kluster mengaitkan sumber daya cloud seperti VPC dengan kluster. Pastikan pengguna RAM atau Peran RAM dapat mengakses sumber daya tersebut.

    • Sambungkan kebijakan AliyunVPCReadOnlyAccess untuk mengizinkan daftar VPC.

    • Untuk jenis sumber daya lainnya, lihat Otorisasi RAM.

    {
     "Statement": [{
         "Action": [
             "cs:CreateCluster"
         ],
         "Effect": "Allow",
         "Resource": [
             "*"
         ]
     }],
     "Version": "1"
    }

    Lihat Buat kebijakan RAM kustom.

Kode kesalahan apa yang menandakan bahwa Akun Alibaba Cloud kehilangan peran layanan ACK yang diperlukan?

Kode kesalahan berikut menunjukkan peran layanan ACK yang hilang. Login dengan Akun Alibaba Cloud atau pengguna RAM dengan AdministratorAccess, lalu klik tautan dalam pesan error untuk menyelesaikan penugasan.

Kode kesalahan

Contoh pesan error

ErrManagedKuberneteRoleNotAttach

please complete the cluster addon's service ramrole authorization at https://\*\*\*

ErrKubernetesAuditRoleNotAttach

please complete the cluster addon's service ramrole authorization at https://\*\*\*

ErrManagedAddonRoleNotAttach

please complete the cluster addon's service ramrole authorization at https://\*\*\*

ErrManagedSecurityRoleNotAttach

please complete the security ramrole authorization at https://\*\*\*

ErrEdgeAddonRoleNotAttach

please complete the edge cluster addon's service ramrole authorization at https://\*\*\*

ErrAutoScalerRoleNotAttach

please complete the cluster addon's service ramrole authorization at https://\*\*\*

ErrAcrHelperRoleNotAttach

please complete the cluster addon's service ramrole authorization at https://\*\*\*

ErrCostExporterRoleNotAttach

please complete the cluster addon's service ramrole authorization at https://\*\*\*

MissingAuth.AliyuncsManagedSecurityRole

please complete the security ramrole authorization at https://\*\*\*

Bagaimana cara membuka halaman penugasan peran sistem untuk ACK?

Jika peran sistem ACK telah dicabut, tetapkan ulang dengan mengikuti langkah-langkah di Buat kluster ACK yang dikelola dengan cepat.

Hanya Akun Alibaba Cloud (bukan pengguna RAM) yang dapat menetapkan ulang peran sistem.

Peran RAM telah dicabut dari instance ECS — apa yang harus saya lakukan?

Saat aplikasi di instance ECS memanggil metadata api 100 dan peran RAM telah dihapus, permintaan akan mengembalikan error 404 atau pesan seperti Message:Node condition RAMRoleError is now: True, reason: NodeHasNoRAMRole.

Tetapkan ulang peran RAM ke instance ECS:

  • Node master (hanya untuk kluster khusus ACK): Di halaman Cluster Information, buka tab Basic Information dan tetapkan Master RAM Role.

  • Node worker: Di halaman Cluster Information, buka tab Basic Information dan tetapkan Worker RAM Role.

Lihat Ganti peran RAM instans.

Jika Anda mengubah kebijakan yang disambungkan ke peran RAM, verifikasi apakah kebijakan tersebut masih berisi izin yang diperlukan. Jika perubahan dilakukan sebelum error muncul, coba kembalikan ke versi sebelumnya.

Bagaimana cara menetapkan peran RAM kustom ke kluster ACK?

Gunakan peran Worker RAM kustom.

Apakah beban kerja online akan terpengaruh setelah saya menghapus pengguna RAM untuk karyawan yang resign?

Menghapus pengguna RAM tidak memengaruhi manajemen kluster oleh pengguna RAM lain. Namun, Anda harus menggunakan Akun Alibaba Cloud untuk mencabut file kubeconfig yang dikeluarkan untuk pengguna RAM yang dihapus tersebut.

Penting

Sebelum mencabut file kubeconfig yang dikeluarkan untuk pengguna RAM yang dihapus, ganti dengan file kubeconfig baru di semua aplikasi yang menggunakannya. Jika tidak, aplikasi tersebut akan kehilangan akses ke kluster.