L'exploitation des ressources Kubernetes dans un cluster ACK repose sur un modèle de double autorisation : Resource Access Management (RAM) et le contrôle d'accès basé sur les rôles Kubernetes (RBAC). Le compte Alibaba Cloud détient ces deux autorisations par défaut, tandis que les utilisateurs RAM et les rôles RAM doivent les obtenir explicitement pour accéder aux ressources du cluster.
Fonctionnement
Le système d'autorisation ACK se compose de deux couches, Alibaba Cloud RAM et Kubernetes RBAC, qui forment une chaîne d'autorisation complète allant des ressources cloud aux ressources internes au cluster.
RAM : Détermine qui peut accéder au cluster. Il opère au niveau des ressources cloud et contrôle les autorisations d'un principal pour les opérations API sur les clusters ACK et leurs services cloud dépendants.
RBAC : Détermine ce qu'un principal peut faire dans le cluster. Il offre une autorisation granulaire en définissant les opérations (telles que la création ou la suppression) qu'un principal peut effectuer sur des ressources Kubernetes spécifiques (telles que les Pods et les Deployments).
Mécanisme Kubernetes RBAC
Un
ClusterRoledéfinit un ensemble d'autorisations applicables à l'ensemble du cluster. UnClusterRoleBindingle lie à un principal, rendant les autorisations effectives à l'échelle du cluster.Un
Roledéfinit un ensemble d'autorisations limitées à un seul namespace. UnRoleBindingle lie à un principal, rendant les autorisations effectives uniquement dans ce namespace.
Scénario 1 : Autoriser avec un compte Alibaba Cloud
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Authorizations.
-
Sur la page Authorizations, configurez les autorisations.
Pour accorder des autorisations à un utilisateur RAM : Cliquez sur l'onglet RAM Users, recherchez l'utilisateur RAM cible et cliquez sur Modify Permissions dans la colonne Actions pour accéder à la page Permissions.
Pour accorder des autorisations à un rôle RAM : Cliquez sur l'onglet RAM Role, recherchez le rôle RAM cible et cliquez sur Modify Permissions pour accéder à la page de gestion des autorisations.
Cliquez sur + Add Permissions. Suivez les instructions à l'écran pour ajouter une autorisation pour l'utilisateur RAM ou le rôle RAM cible au niveau du cluster ou du namespace, puis sélectionnez un rôle prédéfini. Choisissez le rôle en fonction des responsabilités de l'utilisateur. Pour plus de détails sur les autorisations de chaque rôle prédéfini, reportez-vous à l'Annexe : Rôles prédéfinis.
Scénario 2 : Autoriser avec un utilisateur ou un rôle RAM
Par défaut, un utilisateur RAM ou un rôle RAM ne peut pas accorder d'autorisations RBAC à d'autres principaux. Pour simplifier la gestion des autorisations, désignez un utilisateur RAM ou un rôle RAM en tant qu'administrateur des autorisations. L'administrateur pourra alors accorder des autorisations RBAC à d'autres principaux.
Étape 1 : Définir un utilisateur ou un rôle RAM comme administrateur
1. Accorder des autorisations RAM pour l'autorisation
Méthode 1 : Utiliser les stratégies système
Les stratégies système AliyunRAMReadOnlyAccess et AliyunCSFullAccess accordent des autorisations étendues. Pour un contrôle plus granulaire, consultez la Méthode 2 : Accorder des autorisations granulaires à l'aide d'une stratégie personnalisée.
-
Connectez-vous à la console RAM avec votre compte Alibaba Cloud et recherchez l'utilisateur RAM ou le rôle RAM cible.
Pour un utilisateur RAM : Sélectionnez . Dans la liste des utilisateurs, recherchez l'utilisateur cible et cliquez sur Add Permissions dans la colonne Actions.
Pour un rôle RAM : Sélectionnez . Dans la liste des rôles, recherchez le rôle cible et cliquez sur Add Permissions dans la colonne Actions.
Définissez l'Resource Scope sur Account. Dans la section Policies, recherchez et sélectionnez les stratégies système AliyunRAMReadOnlyAccess et AliyunCSFullAccess. Suivez les invites pour finaliser l'autorisation.
Méthode 2 : Utiliser une stratégie personnalisée
Un administrateur des autorisations a besoin des autorisations suivantes :
Afficher les informations relatives aux autres principaux RAM.
Afficher les listes et les détails des clusters.
Afficher les configurations RBAC existantes pour un cluster.
Effectuer des opérations d'autorisation RBAC dans un cluster.
Connectez-vous à la console RAM et accordez les autorisations RAM requises à l'utilisateur RAM ou au rôle RAM cible en utilisant la stratégie d'exemple suivante. Pour plus de détails, reportez-vous à la section Accorder des autorisations à l'aide d'une stratégie personnalisée.
{
"Statement": [{
"Action": [
"ram:Get*",
"ram:List*",
"cs:Get*",
"cs:Describe*",
"cs:List*",
"cs:GrantPermission"
],
"Resource": "*",
"Effect": "Allow"
}
],
"Version": "1"
}
2. Accorder le rôle RBAC Administrator
Connectez-vous à la console ACK avec votre compte Alibaba Cloud et accordez le rôle prédéfini Administrator à l'utilisateur RAM ou au rôle RAM cible au niveau du cluster.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Authorizations.
-
Sur la page Authorizations, configurez les autorisations.
Pour accorder des autorisations à un utilisateur RAM : Cliquez sur l'onglet RAM Users, recherchez l'utilisateur RAM cible et cliquez sur Modify Permissions dans la colonne Actions pour accéder à la page Permissions.
Pour accorder des autorisations à un rôle RAM : Cliquez sur l'onglet RAM Role, recherchez le rôle RAM cible et cliquez sur Modify Permissions pour accéder à la page de gestion des autorisations.
-
Cliquez sur + Add Permissions, suivez les invites pour ajouter une autorisation au niveau du cluster ou du namespace, et sélectionnez Administrator comme rôle prédéfini.
L'octroi d'autorisations avec l'étendue All Clusters étend automatiquement l'accès de l'administrateur des autorisations à tous les nouveaux clusters, éliminant ainsi le besoin d'autorisations répétées.
Étape 2 : Accorder des autorisations RBAC à d'autres utilisateurs
Une fois autorisé, l'administrateur des autorisations peut accorder des autorisations RBAC à d'autres utilisateurs RAM ou rôles RAM sur la page Authorizations en suivant la procédure décrite dans le Scénario 1. Après l'autorisation, les utilisateurs RAM ou les rôles cibles peuvent exploiter les ressources Kubernetes dans leur périmètre d'autorisation.
Bonnes pratiques pour les environnements de production
Pour renforcer la sécurité et la maintenabilité de la gestion des autorisations, appliquez les bonnes pratiques suivantes.
-
Respecter le principe du moindre privilège
Accordez aux principaux, tels que les utilisateurs et les rôles RAM, uniquement l'ensemble minimal d'autorisations requis pour exécuter leurs tâches. Évitez d'accorder indiscriminément des rôles à privilèges élevés, tels que Administrator.
-
Mettre en œuvre une autorisation granulaire
Utiliser une autorisation en couches : Différenciez les responsabilités entre RAM pour l'accès aux ressources cloud et RBAC pour l'accès aux ressources internes au cluster.
Restreindre la portée : Chaque fois que possible, utilisez un
RoleBindingpour limiter les autorisations à un namespace spécifique plutôt qu'unClusterRoleBindingà l'échelle du cluster.Choisir les rôles avec précision : Utilisez les rôles prédéfinis fournis par ACK. Si vous devez créer des rôles personnalisés, définissez les règles d'autorisation avec précision et évitez d'utiliser des caractères génériques (
*).
-
Pratiquer une gouvernance continue
La gestion des autorisations est un processus dynamique. Mettez en place un mécanisme d'audit régulier pour révoquer rapidement les autorisations redondantes ou excessives. Enregistrez et surveillez les opérations des rôles à privilèges élevés, tels que les administrateurs des autorisations.
Annexe : Rôles prédéfinis
Pour simplifier la gestion des autorisations et répondre aux cas d'utilisation courants, ACK propose plusieurs rôles prédéfinis standardisés basés sur le mécanisme RBAC.
|
Rôle prédéfini |
Autorisations RBAC dans le cluster |
|
Administrator |
Accès complet en lecture/écriture à toutes les ressources Kubernetes dans tous les namespaces, y compris les nœuds de cluster, les PV, les namespaces et les quotas de ressources. |
|
Read-only Administrator |
Accès en lecture seule à toutes les ressources Kubernetes dans tous les namespaces, y compris les nœuds de cluster, les PV, les namespaces et les quotas de ressources. |
|
OM Engineer |
Accès en lecture/écriture aux ressources exposées par la console dans tous les namespaces. Comprend un accès en lecture/mise à jour aux nœuds de cluster, aux PV et aux namespaces, et un accès en lecture seule à toutes les autres ressources. |
|
Developer |
Accès en lecture/écriture aux ressources exposées par la console dans tous les namespaces ou dans les namespaces spécifiés du cluster. |
|
Restricted User |
Accès en lecture seule aux ressources exposées par la console dans tous les namespaces ou dans les namespaces spécifiés du cluster. |
|
Custom |
Les autorisations dépendent du ClusterRole spécifié. Pour empêcher les identités d'obtenir un accès non intentionnel, vérifiez les autorisations du ClusterRole avant de l'assigner. Consultez la section Restreindre les opérations sur les ressources avec RBAC personnalisé. Important
Tout utilisateur RAM ou rôle RAM disposant de l'autorisation |
FAQ
Gestion des erreurs d'autorisation
Si une opération effectuée via la console ou une API manque des autorisations RBAC nécessaires, une erreur d'autorisation est renvoyée. Reportez-vous au tableau suivant pour les solutions :
|
Code d'erreur ou message |
Description |
Solution |
|
|
Non autorisé à afficher les journaux du plan de contrôle. |
Accordez à l'utilisateur le rôle Administrator ou O&M Engineer. |
|
|
Non autorisé à effectuer des opérations Helm. |
Accordez à l'utilisateur le rôle Administrator. |
|
|
Non autorisé à effectuer la rotation des certificats. |
Accordez à l'utilisateur le rôle Administrator. |
|
|
Non autorisé à ajouter un nœud. |
Accordez à l'utilisateur le rôle Administrator ou O&M Engineer. |
|
|
Non autorisé à modifier l'état du chiffrement au repos du cluster. |
Accordez à l'utilisateur le rôle Administrator ou O&M Engineer. |
|
|
Non autorisé à récupérer les informations de déclenchement d'application. |
Accordez à l'utilisateur le rôle Administrator, O&M Engineer ou Developer. |
|
|
Non autorisé à interroger les namespaces du cluster. |
Accordez à l'utilisateur le rôle Administrator, O&M Engineer, Developer ou Restricted User. |
Création d'autorisations personnalisées
Créez un Role ou un ClusterRole personnalisé en rédigeant un manifeste YAML. Par exemple, créez un ClusterRole qui autorise uniquement l'affichage des Pods, puis sélectionnez ce rôle personnalisé lors de l'octroi des autorisations. Pour plus de détails, consultez la section Utiliser RBAC personnalisé pour restreindre les opérations sur les ressources internes au cluster.
Les politiques Kubernetes RBAC sont additives et ne prennent en charge que les règles Allow. Il n'existe pas de règle Deny explicite.
Rubriques connexes
Si les rôles prédéfinis ne répondent pas à vos besoins et que vous avez besoin d'autorisations RBAC personnalisées pour accéder aux ressources internes au cluster, consultez la section Utiliser RBAC personnalisé pour restreindre les opérations sur les ressources internes au cluster.
-
Pour connaître les workflows d'autorisation complets (incluant à la fois les autorisations RAM et RBAC) pour différents rôles opérationnels, consultez les rubriques suivantes :
Pour obtenir des informations sur les rôles de service utilisés par ACK, consultez la section Rôles de service ACK.
Si vous rencontrez des problèmes lors de l'autorisation, consultez la section FAQ sur la gestion des autorisations.