すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:権限管理の FAQ

最終更新日:Jun 16, 2026

Container Service for Kubernetes (ACK) クラスターにおける RAM ポリシーおよび RBAC 権限エラーのトラブルシューティングについて説明します。

認可の失敗

ForbiddenQueryClusterNamespace: 名前空間のクエリは禁止されています

RAM ユーザーまたは RAM ロールに、クラスターの名前空間に対する RBAC 権限がありません。ACK コンソールの 承認 に移動し、RAM ユーザーまたは RAM ロールに RBAC ロールを割り当てます。

APISERVER_403

RAM ユーザーまたは RAM ロールに、クラスターに必要な RBAC 権限がありません。ACK コンソールの 承認 に移動し、必要な RBAC ロールを付与します。詳細については、「RBAC 認可の使用」をご参照ください。

現在の RAM ユーザーには管理権限がありません

RAM ユーザーまたは RAM ロールは、他のユーザーに RBAC 権限を付与できません。デフォルトでは、Alibaba Cloud アカウントの所有者、または明示的な委任を受けている RAM ユーザーのみがこの操作を実行できます。

RBAC 管理を RAM ユーザーまたは RAM ロール (以下、ユーザー A) に委任するには、次の両方を付与します。

RBAC 管理者権限:ACK コンソールの 承認 で、事前定義された管理者ロールまたは cluster-admin ロールを、対象のクラスターと名前空間に対してユーザー A に割り当てます。

RAM 権限RAM コンソールで、ユーザー A にカスタムポリシーをアタッチします。このポリシーでは、ユーザー A が同じアカウント内の他の RAM ユーザーおよび RAM ロールをクエリし、指定されたポリシーをアタッチし、RBAC 権限を管理することを許可する必要があります。次のテンプレートを使用します。

{
    "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"
}
xxxxxx を、ユーザー A がアタッチ可能なポリシー名に置き換えます。任意のポリシーを許可するには、xxxxxx* に置き換えます。

詳細については、「カスタム RAM ポリシーの作成」および「RAM ユーザーまたは RAM ロールへの RBAC 権限の付与」をご参照ください。

エラーが RAM と RBAC のどちらに起因するかを判断する方法

エラーメッセージを確認します。

RAM ポリシーのエラーには、RAM policy Forbidden または STSToken policy Forbidden が含まれます。

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

ユーザーまたはロールにアタッチされた RAM ポリシーに、記載されたアクションが含まれていません。不足しているアクションを追加します。詳細については、「カスタム RAM ポリシーの作成」をご参照ください。

RBAC 権限のエラーには、APISERVER_403User "xxx" cannot xx resource、または ForbiddenQueryClusterNamespace が含まれます。

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

これは、RAM ユーザー <uid> に必要な Kubernetes RBAC 権限がないことを意味します。必要な RBAC 権限を付与します。

RAM ユーザーに AdministratorAccess または AliyunCSFullAccess をアタッチしましたが、クラスターにアクセスできません

ACK では、RAM 認可と RBAC 認可の両方が必要です。RAM コンソールで AdministratorAccess または AliyunCSFullAccess をアタッチしても、RAM レイヤーのみが対象となります。ACK コンソールの [権限管理] に移動し、RAM ユーザーに RBAC ロールも割り当てます。詳細については、「権限管理の概要」および「RAM ユーザーまたは RAM ロールへの RBAC 権限の付与」をご参照ください。

ForbiddenCheckControlPlaneLog

RAM ユーザーまたは RAM ロールに、事前定義された管理者または O&M エンジニアの RBAC ロールが割り当てられていません。ACK コンソールの [権限管理] に移動し、管理者または O&M エンジニアのロールを割り当てます。

ForbiddenHelmUsage

RAM ユーザーまたは RAM ロールに、事前定義された管理者の RBAC ロールが割り当てられていません。ACK コンソールの [権限管理] に移動し、管理者ロールを割り当てます。

ForbiddenRotateCert

RAM ユーザーまたは RAM ロールに、事前定義された管理者の RBAC ロールが割り当てられていません。ACK コンソールの [権限管理] に移動し、管理者ロールを割り当てます。

ForbiddenAttachInstance

RAM ユーザーまたは RAM ロールに、事前定義された管理者または O&M エンジニアの RBAC ロールが割り当てられていません。ACK コンソールの [権限管理] に移動し、管理者または O&M エンジニアのロールを割り当てます。

ForbiddenUpdateKMSState

RAM ユーザーまたは RAM ロールに、事前定義された管理者または O&M エンジニアの RBAC ロールが割り当てられていません。ACK コンソールの [権限管理] に移動し、管理者または O&M エンジニアのロールを割り当てます。

Forbidden get trigger

RAM ユーザーまたは RAM ロールに、事前定義された管理者、O&M エンジニア、または開発者の RBAC ロールが割り当てられていません。ACK コンソールの [権限管理] に移動し、これらのロールのいずれかを割り当てます。

RBAC 認可

すべてのリソースではなく、特定のアプリケーションに権限を付与できますか?

はい。カスタム ClusterRole を作成し、resourceNames フィールドで権限を特定のアプリケーションにスコープしてから、RAM ユーザーまたは RAM ロールにバインドします。

  1. ACK コンソールにログインします。

  2. 左側メニューで、[権限管理] をクリックします。

  3. [RAM ユーザー] タブで、対象の RAM ユーザーを見つけ、[権限の変更] をクリックします。

    説明

    この変更を行うアカウントには、クラスターに対する少なくとも読み取り専用権限が必要であり、cluster-admin または管理者ロールが割り当てられている必要があります。 詳細については、「カスタム RAM ポリシーの作成」をご参照ください。

  4. [権限の追加] をクリックし、クラスター、名前空間、認可タイプを選択してから、[送信] をクリックします。次の表に、事前定義された RBAC ロールの権限を示します。以降の手順については、「RAM ユーザーまたは RAM ロールへの RBAC 権限の付与」をご参照ください。

    説明
    • 権限は、RAM ユーザーに対してすべてのクラスターにまたがって付与することもできます。

    • RAM ユーザーまたは RAM ロールは、特定のクラスターまたは名前空間に対して、1 つの事前定義 RBAC ロールと 1 つ以上のカスタム RBAC ロールを持つことができます。

    ロール

    クラスターリソースに対する RBAC 権限

    管理者

    すべての名前空間リソース、およびクラスターレベルのノード、ボリューム、名前空間、クォータへの読み書きアクセス。

    O&M エンジニア

    すべての名前空間にわたるコンソールで表示可能なリソースへの読み書きアクセス。ノード、ボリューム、名前空間、クォータへの読み取り専用アクセス。

    開発者

    すべてまたは指定された名前空間内のコンソールで表示可能なリソースへの読み書きアクセス。

    制限付きユーザー

    すべてまたは指定された名前空間内のコンソールで表示可能なリソースへの読み取り専用アクセス。

    カスタムロール

    選択した ClusterRole によって決まります。意図しない権限の付与を防ぐため、割り当てる前にそのルールを確認してください。詳細については、「カスタム RAM ポリシーの作成」をご参照ください。

    Permission management page

RAM ユーザーは、cs:admin ロールを割り当てられていても CustomResourceDefinition (CRD) オブジェクトを作成できません

これは 2019 年 5 月より前に作成されたクラスターに影響します。これらのクラスターでは、デフォルトの cs:admin ClusterRole に、CRD の作成を含む一部の Kubernetes リソースに対する権限が不足しています。2 つのオプションがあります。

  • RAM ユーザーまたは RAM ロールにcluster-admin ロールを割り当てます。

  • 既存の cs:admin ClusterRole を削除し、以下の定義で再作成します:

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

RAM ユーザーまたは RAM ロールを使用して他のユーザーに RBAC ロールを割り当てる方法

必要な RAM 権限と RBAC ロールの割り当てについては、「現在の RAM ユーザーには管理権限がありません」をご参照ください。

ClusterRoleBinding または RoleBinding に関連付けられている RAM ユーザーまたは RAM ロールを見つける方法

subjects フィールドを確認します。kindUser で、name が数字、または数字とハイフンで構成されている場合、それは RAM ユーザーまたは RAM ロール ID です。

以下に、RAM ユーザー 1*** の ClusterRoleBindingと RAM ユーザー2*** の RoleBinding の例を示します。

---
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***'

クラスター作成者の RBAC 権限を変更または取り消しできない理由

ACK は、クラスター作成者の RBAC 権限を変更または取り消すリクエストをブロックし、作成者が常にクラスターへのアクセスを維持できるようにします。

クラスター作成者の権限を取り消すには、ClusterRoleBinding を直接削除します。

  1. 作成者の ClusterRoleBinding を見つけます。<uid> を Alibaba Cloud アカウント UID に置き換えます。

    kubectl get clusterrolebinding | grep <uid>
  2. ClusterRoleBinding をバックアップして削除します。 <name> を、前の手順で返された名前に置き換えます。

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

ターミナル機能を使用するために必要な権限

RAM ユーザーまたは RAM ロールに、事前定義された管理者、O&M エンジニア、または開発者の RBAC ロールを割り当てます。 また、cs:DescribeClusterUserKubeconfig を呼び出すための RAM 権限を付与します。 「RAM ユーザーまたは RAM ロールへの RBAC 権限の付与」および「カスタム RAM ポリシーの作成」をご参照ください。

CloudSSO を介してログインするユーザーに RBAC 権限を付与する方法

CloudSSO ユーザーは、個々の RAM ユーザーとしてではなく、RAM ロールとしてログインします。RBAC 権限を付与するには、個々のユーザーアカウントではなく、RAM ロールに権限を付与します。

たとえば、ユーザーが AliyunReservedSSO-Policy-foo-bar-admin/foo.bar としてログオンする場合は、RAM ロール AliyunReservedSSO-Policy-foo-bar-adminRBAC 権限を付与します。

RAM 認可

すべてのクラスターに対する読み取り専用権限を持つ RAM ユーザーが一部のクラスターを表示できなくなった

最も一般的な原因は、権限の変更ではなく、間違ったアカウントまたはデフォルト以外のリソースグループフィルターです。以下を確認してください。

  1. 正しい RAM ユーザーまたは RAM ロールを使用して ACK コンソールにログインします。

  2. 上部のナビゲーションバーで、リソース範囲をアカウント内のすべてのリソース > アカウント内のすべてのリソースに設定します。

    All Resources selector

  3. 右上のアバターにカーソルを合わせ、ログイン ID を確認します。

リソースグループフィルターがアクティブな場合、権限が正しくても、そのグループ外のクラスターは非表示になります。

RAM ユーザーまたは RAM ロールにクラスター作成権限を付与する方法

2 つの手順が必要です。

  1. Alibaba Cloud アカウントを使用して ACK にシステムロールを割り当てます。システムロールの割り当ては 1 回だけで済みます。不明な場合は、Alibaba Cloud アカウントでログインし、[クラウドリソースアクセス認可] をクリックして、認可を完了します。詳細については、「ACK のデフォルトロール」をご参照ください。

  2. カスタム RAM ポリシーをcs:CreateCluster 権限を含む RAM ユーザーまたは RAM ロールにアタッチします:

    説明
    • クラスターを作成すると、VPC などのクラウドリソースがクラスターに関連付けられます。RAM ユーザーまたは RAM ロールがこれらのリソースにアクセスできることを確認してください。

    • VPC の一覧表示を許可するには、AliyunVPCReadOnlyAccess ポリシーをアタッチします。

    • 他のリソースタイプについては、「RAM 認可」をご参照ください。

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

    詳細については、「カスタム RAM ポリシーの作成」をご参照ください。

Alibaba Cloud アカウントに必要な ACK サービスロールがないことを示すエラーコード

これらのエラーコードは、ACK サービスロールが不足していることを示しています。Alibaba Cloud アカウント、または AdministratorAccess 権限を持つ RAM ユーザーでログインし、エラーメッセージ内のリンクをクリックして割り当てを完了します。

エラーコード

エラーメッセージの例

ErrManagedKuberneteRoleNotAttach

https://*** でクラスターアドオンのサービス RAM ロールの認可を完了してください

ErrKubernetesAuditRoleNotAttach

https://*** でクラスターアドオンのサービス RAM ロールの認可を完了してください

ErrManagedAddonRoleNotAttach

https://*** でクラスターアドオンのサービス RAM ロールの認可を完了してください

ErrManagedSecurityRoleNotAttach

https://*** でセキュリティ RAM ロールの認可を完了してください

ErrEdgeAddonRoleNotAttach

https://*** でエッジクラスターアドオンのサービス RAM ロールの認可を完了してください

ErrAutoScalerRoleNotAttach

https://*** でクラスターアドオンのサービス RAM ロールの認可を完了してください

ErrAcrHelperRoleNotAttach

https://*** でクラスターアドオンのサービス RAM ロールの認可を完了してください

ErrCostExporterRoleNotAttach

https://*** でクラスターアドオンのサービス RAM ロールの認可を完了してください

MissingAuth.AliyuncsManagedSecurityRole

https://*** でセキュリティ RAM ロールの認可を完了してください

ACK のシステムロール割り当てページに移動する方法

ACK システムロールが取り消された場合は、「ACK マネージドクラスターのクイック作成」の手順に従って再割り当てします。

システムロールを再割り当てできるのは、Alibaba Cloud アカウント (RAM ユーザーではない) のみです。

ECS インスタンスから RAM ロールが取り消されました — どうすればよいですか?

ECS インスタンス上のアプリケーションが metadata api 100 を呼び出し、RAM ロールが削除されている場合、リクエストは 404 エラー、または Message:Node condition RAMRoleError is now: True, reason: NodeHasNoRAMRole などのメッセージを返します。

RAM ロールを ECS インスタンスに再割り当てします。

  • マスターノード (ACK 専用クラスターのみ):[クラスター情報] ページの 基本情報 タブに移動し、[マスター RAM ロール] を割り当てます。

  • ワーカーノード[クラスター情報] ページの 基本情報 タブに移動し、Worker RAM ロール を割り当てます。

詳細については、「インスタンス RAM ロールの置換」をご参照ください。

RAM ロールにアタッチされたポリシーを変更した場合は、そのポリシーに必要な権限がまだ含まれていることを確認してください。エラーの前に変更が行われた場合は、ロールバックを試してください。

カスタム RAM ロールを ACK クラスターに割り当てる方法

カスタムワーカー RAM ロールを使用します。

退職した従業員の RAM ユーザーを削除した後、オンラインのワークロードに影響はありますか?

RAM ユーザーを削除しても、他の RAM ユーザーによるクラスター管理には影響しません。ただし、Alibaba Cloud アカウントを使用して、削除された RAM ユーザーに発行された kubeconfig ファイルを取り消す必要があります。

重要

削除された RAM ユーザーに発行された kubeconfig ファイルを取り消す前に、それを使用するすべてのアプリケーションで、kubeconfig ファイルを新しいものに置き換える必要があります。そうしないと、これらのアプリケーションはクラスターへのアクセスを失います。