Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Clean up user permissions with ack-ram-tool

Dernière mise à jour :Aug 11, 2026

ack-ram-tool est un outil en ligne de commande fourni par Container Service for Kubernetes (ACK) qui vous aide à gérer les autorisations RAM et le contrôle d'accès basé sur les rôles (RBAC) dans vos clusters ACK. Lorsqu'un utilisateur quitte votre organisation ou n'a plus besoin d'accéder au cluster, utilisez ack-ram-tool pour rechercher ses liaisons RBAC et les nettoyer, y compris la révocation de son kubeconfig, avant que des autorisations obsolètes ne deviennent une faille de sécurité.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster ACK

  • Un accès administrateur à la console ACK

  • L'interface CLI Alibaba Cloud installée et configurée (pour les utilisateurs CloudSSO)

Étape 1 : Installer ack-ram-tool

  1. Téléchargez le client ack-ram-tool adapté à votre système d'exploitation et à votre architecture.

  2. Accordez les autorisations d'exécution au binaire :consultez la section Credentials

    chmod +x ./ack-ram-tool
  3. Déplacez le binaire vers un répertoire inclus dans votre PATH :

    mkdir -p $HOME/bin && cp ./ack-ram-tool $HOME/bin/ack-ram-tool && export PATH=$HOME/bin:$PATH
  4. (Facultatif) Rendez la modification du PATH persistante :

    echo 'export PATH=$HOME/bin:$PATH' >> ~/.bash_profile
  5. Vérifiez l'installation. La commande renvoie la version du client.

    ack-ram-tool version

Étape 2 : Configurer les identifiants Alibaba Cloud

Les utilisateurs RAM et les utilisateurs CloudSSO peuvent configurer leurs identifiants à l'aide de l'une des méthodes suivantes.

Si des variables d'environnement liées aux identifiants sont présentes, ack-ram-tool les utilise par défaut. Pour les ignorer, ajoutez l'indicateur --ignore-env-credentials à toute commande ack-ram-tool. Pour obtenir la liste complète des variables d'environnement prises en charge, consultez la section Credentials .

Utilisateur RAM

ack-ram-tool utilise les identifiants Alibaba Cloud configurés localement pour s'authentifier auprès de RAM. Pour obtenir des instructions de configuration, consultez la section Alibaba Cloud CLI.

Utilisateur CloudSSO

Utilisez acs-sso, l'outil CLI fourni par CloudSSO, pour vous connecter et obtenir des identifiants. Pour plus d'informations, consultez la section Use the CLI to log on to CloudSSO and access Alibaba Cloud resources.

L'interface CLI Alibaba Cloud prend en charge un mode d'identification externe qui appelle une commande externe pour récupérer dynamiquement les identifiants. Exécutez la commande suivante pour configurer la connexion automatique CloudSSO sur votre machine locale :

aliyun configure --mode External --profile sso

Les invites interactives se présentent comme suit :

Configuring profile 'sso' in 'External' authenticate mode...
Process Command [acs-sso login --profile sso]:
Default Region Id [cn-shanghai]:
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en:
Saving profile[sso] ...Done.

Configure Done!!!
..............888888888888888888888 ........=8888888888888888888D=..............
...........88888888888888888888888 ..........D8888888888888888888888I...........
.........,8888888888888ZI: ...........................=Z88D8888888888D..........
.........+88888888 ..........................................88888888D..........
.........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
.........+88888888 ............. ************* ..............O8888888D..........
.........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
.........+88888888...........................................88888888D..........
..........D888888888888DO+. ..........................?ND888888888888D..........
...........O8888888888888888888888...........D8888888888888888888888=...........
............ .:D8888888888888888888.........78888888888888888888O ..............

Étape 3 : Configurer les autorisations pour les identifiants

ack-ram-tool requiert à la fois des autorisations RAM et des autorisations RBAC au niveau du cluster.

  1. Attribuez la stratégie RAM suivante à l'utilisateur RAM. Pour obtenir des instructions, consultez la section Gérer les autorisations des utilisateurs RAM.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "cs:*"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ram:ListUsers",
            "ram:ListRoles"
          ],
          "Resource": "*"
        }
      ]
    }
  2. Accordez à l'utilisateur RAM l'autorisation d'administrateur RBAC pour le cluster :

    1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur console ACKAuthorizations.

    2. Sur la page Authorizations, cliquez sur l'onglet RAM User, recherchez l'utilisateur RAM cible, puis cliquez sur Modify Permissions dans la colonne Actions.

    3. Sur la page Permission Management, cliquez sur Add Permissions, sélectionnez le Cluster et l'espace de noms cibles, définissez Permission Management sur Administrator, puis cliquez sur Submit.

Étape 4 : Analyser les liaisons RBAC

Utilisez ack-ram-tool rbac scan-user-permissions pour identifier les utilisateurs RAM et les rôles RAM qui conservent des liaisons RBAC dans votre cluster. La sortie de l'analyse inclut une colonne UID : copiez l'UID de l'utilisateur dont vous souhaitez supprimer les autorisations, puis utilisez-le à l'étape 5.

Les colonnes de sortie sont les suivantes : UID, UserType, UserName et Binding.

UserType Description
RamRole Rôle RAM
RamUser Utilisateur RAM
Root Compte Alibaba Cloud

Analyser les utilisateurs supprimés (par défaut)

Par défaut, l'analyse renvoie uniquement les utilisateurs RAM et les rôles RAM supprimés.

ack-ram-tool rbac scan-user-permissions -c <cluster ID>

Sortie attendue :

2023-12-12T15:34:37+08:00 INFO start to scan users and bindings for cluster c401890df511a4362bf24bece4da****
2023-12-12T15:34:43+08:00 WARN by default, only deleted users are included. Use the --all-users flag to include all users
UID                           UserType  UserName  Binding
30086537005566**** (deleted)  RamRole             ClusterRoleBinding/-/30086537005566****-clusterrolebinding
24320678733226**** (deleted)  RamUser             ClusterRoleBinding/-/24320678733226****-clusterrolebinding

Analyser tous les utilisateurs et rôles

Ajoutez --all-users pour inclure les utilisateurs RAM et les rôles RAM actifs dans les résultats.

ack-ram-tool rbac scan-user-permissions --all-users -c <cluster ID>

Sortie attendue :

2023-12-12T15:36:00+08:00 INFO Start to scan users and bindings for cluster c401890df511a4362bf24bece4da6****
UID                           UserType  UserName                   Binding
30032484611590**** (deleted)  RamRole                              ClusterRoleBinding/-/30032484611590****-clusterrolebinding
20492499986425**** (deleted)  RamUser                              ClusterRoleBinding/-/20492499986425****-clusterrolebinding
27203272572548****            RamUser   scan                       ClusterRoleBinding/-/27203272572548****-clusterrolebinding
113802571552****              Root                                 ClusterRoleBinding/-/113802571552****-cluster-admin-clusterrolebinding
29068913515444****            RamUser   test-ack-ram-check         ClusterRoleBinding/-/29068913515444****-clusterrolebinding

Analyser tous les clusters

Remplacez l'ID du cluster par all pour analyser tous les clusters de votre compte Alibaba Cloud.

ack-ram-tool rbac scan-user-permissions -c all

Sortie attendue :

2023-12-12T16:44:55+08:00 INFO start to scan users and bindings for all clusters
2023-12-12T16:44:55+08:00 INFO start to get all clusters, users and roles
2023-12-12T16:44:58+08:00 INFO ---- c401890df511a4362bf24bece4da6**** (test-pro111323223) ----
2023-12-12T16:44:58+08:00 INFO [c401890df511a4362bf24bece4da6****] start to scan bindings for cluster c401890df511a4362bf24bece4da6****
2023-12-12T16:45:00+08:00 WARN [c401890df511a4362bf24bece4da6****] by default, only deleted users are included. Use the --all-users flag to include all users
ClusterId: c401890df511a4362bf24bece4da6****
UID                           UserType  UserName  Binding
30086537005566**** (deleted)  RamRole             ClusterRoleBinding/-/30086537005566****-clusterrolebinding
20492499986425**** (deleted)  RamUser             ClusterRoleBinding/-/20492499986425****-clusterrolebinding
2023-12-12T16:45:00+08:00 INFO ---- c137a979dec21472c8279c903cfc**** (test-pro) ----
2023-12-12T16:45:00+08:00 INFO [c137a979dec21472c8279c903cfce****] start to scan bindings for cluster c137a979dec21472c8279c903cfce****
2023-12-12T16:45:01+08:00 WARN [c137a979dec21472c8279c903cfce****] by default, only deleted users are included. Use the --all-users flag to include all users
ClusterId: c137a979dec21472c8279c903cfce****
UID                           UserType  UserName  Binding
30086537005566**** (deleted)  RamRole             ClusterRoleBinding/-/30086537005566****-clusterrolebinding
24320678733226**** (deleted)  RamUser             ClusterRoleBinding/-/24320678733226****-clusterrolebinding

Étape 5 : Nettoyer les autorisations

Utilisez ack-ram-tool rbac cleanup-user-permissions pour supprimer les liaisons RBAC d'un utilisateur RAM ou d'un rôle RAM spécifique et révoquer son kubeconfig. Indiquez le <UID> obtenu lors de l'analyse à l'étape 4.

Important
  • Si le journal contient this user has been active in the past 7 days, cela signifie que l'utilisateur cible a accédé au cluster au cours des sept derniers jours. Procédez avec prudence.

  • Avant de supprimer une liaison, ack-ram-tool sauvegarde son fichier JSON d'origine dans un dossier du répertoire actuel nommé selon l'ID du cluster.

Nettoyer les autorisations dans un seul cluster

ack-ram-tool rbac cleanup-user-permissions -c <cluster ID> -u <UID>

Sortie attendue :

Détails

2023-12-12T18:17:10+08:00 INFO start to scan users and bindings
2023-12-12T18:17:15+08:00 WARN we will clean up RBAC bindings as follows:
UID                 UserType  UserName   Binding
25908395708943****  RamUser   ack-admin  ClusterRoleBinding/-/25908395708943****-clusterrolebinding
2023-12-12T18:17:15+08:00 WARN we will clean up kubeconfig permissions for users as follows:
UID: 25908395708943****
2023-12-12T18:17:15+08:00 INFO start to check cluster audit log for user 25908395708943****
2023-12-12T18:17:16+08:00 WARN this user has been active in the past 7 days, and the last activity time was: 2023-12-12T10:27:56+08:00. You will find the relevant audit log details below:
sls project: k8s-log-c137a979dec21472c8279c903cfce****
sls logstore: audit-c137a979dec21472c8279c903cfce****
last activity: 2023-12-12T10:27:56+08:00 (auditID: 8f6f1483-77f3-44b3-85cb-f23d1a76e****)
? Are you sure you want to clean up these bindings and permissions? Yes
2023-12-12T18:17:37+08:00 INFO start to backup binding ClusterRoleBinding/-/25908395708943****-clusterrolebinding
2023-12-12T18:17:38+08:00 INFO the origin binding ClusterRoleBinding/-/25908395708943****-clusterrolebinding have been backed up to file c137a979dec21472c8279c903cfce****/ClusterRoleBinding--25908395708943****-clusterrolebinding.json
2023-12-12T18:17:38+08:00 INFO start to clean up kubeconfig permissions for uid 25908395708943****
2023-12-12T18:17:38+08:00 INFO finished clean up kubeconfig permissions for uid 25908395708943****
2023-12-12T18:17:38+08:00 INFO all bindings and permissions have been cleaned up

Nettoyer les autorisations dans tous les clusters

ack-ram-tool rbac cleanup-user-permissions -c all -u <UID>

Sortie attendue :

Détails

2023-12-12T19:28:23+08:00 INFO start to scan users and bindings for all clusters
2023-12-12T19:28:23+08:00 INFO start to get all clusters, users and roles
2023-12-12T19:28:24+08:00 INFO ---- c401890df511a4362bf24bece4da6**** (test-pro111323223) ----
2023-12-12T19:28:24+08:00 INFO [c401890df511a4362bf24bece4da6****] start to clean up bindings and permissions for cluster c401890df511a4362bf24bece4da6****
2023-12-12T19:28:24+08:00 INFO [c401890df511a4362bf24bece4da6****] start to scan users and bindings
2023-12-12T19:28:25+08:00 WARN [c401890df511a4362bf24bece4da6****] we will clean up RBAC bindings as follows:
UID                 UserType  UserName   Binding
25908395708943****  RamUser   ack-admin  ClusterRoleBinding/-/25908395708943****-clusterrolebinding
2023-12-12T19:28:25+08:00 WARN [c401890df511a4362bf24bece4da6****] we will clean up kubeconfig permissions for users as follows:
UID: 259083957089437690
2023-12-12T19:28:25+08:00 INFO [c401890df511a4362bf24bece4da6****] start to check cluster audit log for user 25908395708943****
2023-12-12T19:28:25+08:00 WARN [c401890df511a4362bf24bece4da6****] this user has been active in the past 7 days, and the last activity time was: 2023-12-12T10:27:56+08:00. You will find the relevant audit log details below:
sls project: k8s-log-c401890df511a4362bf24bece4da****
sls logstore: audit-c401890df511a4362bf24bece4da6****
last activity: 2023-12-12T10:27:56+08:00 (auditID: 8f6f1483-77f3-44b3-85cb-f23d1a76****)
? Are you sure you want to clean up these bindings and permissions? Yes
2023-12-12T19:28:49+08:00 INFO [c401890df511a4362bf24bece4da6****] start to backup binding ClusterRoleBinding/-/25908395708943**** -clusterrolebinding
2023-12-12T19:28:49+08:00 INFO [c401890df511a4362bf24bece4da6****] the origin binding ClusterRoleBinding/-/25908395708943****-clusterrolebinding have been backed up to file c401890df511a4362bf24bece4da6**** /ClusterRoleBinding--259083957089437XXX-clusterrolebinding.json
2023-12-12T19:28:49+08:00 INFO [c401890df511a4362bf24bece4da6****] start to clean up kubeconfig permissions for uid 25908395708943****
2023-12-12T19:28:49+08:00 INFO [c401890df511a4362bf24bece4da6****] finished clean up kubeconfig permissions for uid 25908395708943****
2023-12-12T19:28:49+08:00 INFO [c401890df511a4362bf24bece4da6****] all bindings and permissions have been cleaned up
2023-12-12T19:28:49+08:00 INFO ---- c137a979dec21472c8279c903cfce****  (test-pro) ----
2023-12-12T19:28:49+08:00 INFO [c137a979dec21472c8279c903cfce****] start to clean up bindings and permissions for cluster c137a979dec21472c8279c903cfce****
2023-12-12T19:28:49+08:00 INFO [c137a979dec21472c8279c903cfce****] start to scan users and bindings
2023-12-12T19:28:51+08:00 WARN [c137a979dec21472c8279c903cfce****] we will clean up RBAC bindings as follows:
UID                 UserType  UserName   Binding
25908395708943****   RamUser   ack-admin  ClusterRoleBinding/-/25908395708943**** -clusterrolebinding
2023-12-12T19:28:51+08:00 WARN [c137a979dec21472c8279c903cfce****] we will clean up kubeconfig permissions for users as follows:
UID: 25908395708943****
2023-12-12T19:28:51+08:00 INFO [c137a979dec21472c8279c903cfce****] start to check cluster audit log for user 25908395708943****
2023-12-12T19:28:51+08:00 WARN [c137a979dec21472c8279c903cfce****] this user has been active in the past 7 days, and the last activity time was: 2023-12-12T17:55:50+08:00. You will find the relevant audit log details below:
sls project: k8s-log-c137a979dec21472c8279c903cfce****
sls logstore: audit-c137a979dec21472c8279c903cfce****
last activity: 2023-12-12T17:55:50+08:00 (auditID: 8f6f1483-77f3-44b3-85cb-f23d1a76****)
? Are you sure you want to clean up these bindings and permissions? Yes
2023-12-12T19:28:52+08:00 INFO [c137a979dec21472c8279c903cfce****] start to backup binding ClusterRoleBinding/-/25908395708943****-clusterrolebinding
2023-12-12T19:28:52+08:00 INFO [c137a979dec21472c8279c903cfce****] the origin binding ClusterRoleBinding/-/25908395708943****-clusterrolebinding have been backed up to file c137a979dec21472c8279c903cfce**** /ClusterRoleBinding--25908395708943**** -clusterrolebinding.json
2023-12-12T19:28:52+08:00 INFO [c137a979dec21472c8279c903cfce****] start to clean up kubeconfig permissions for uid 25908395708943****
2023-12-12T19:28:52+08:00 INFO [c137a979dec21472c8279c903cfce****] finished clean up kubeconfig permissions for uid 25908395708943****
2023-12-12T19:28:52+08:00 INFO [c137a979dec21472c8279c903cfce****] all bindings and permissions have been cleaned up

Étapes suivantes

Pour gérer directement les fichiers kubeconfig, consultez la section Supprimer les fichiers kubeconfig.