Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer les autorisations Kro
Contrairement à ACK et Argo CD, kro ne nécessite pas d'autorisations IAM. kro fonctionne entièrement au sein de votre cluster Kubernetes et n'effectue pas d'appels d'API. AWS Contrôlez l'accès aux ressources Kro à l'aide de la norme Kubernetes RBAC.
Comment fonctionnent les autorisations avec Kro
kro utilise deux types de ressources Kubernetes avec des portées différentes :
ResourceGraphDefinitions: ressources étendues au cluster qui définissent la personnalisation. APIs Généralement géré par les équipes de plateforme qui conçoivent et maintiennent les normes organisationnelles.
Instances : ressources personnalisées étendues à l'espace de noms créées à partir de. ResourceGraphDefinitions Peut être créé par les équipes chargées des applications disposant des autorisations RBAC appropriées.
Par défaut, la fonctionnalité Kro dispose des autorisations nécessaires pour gérer ResourceGraphDefinitions ses instances via la politique de saisie d'AmazonEKSKROPolicyaccès. Cependant, kro a besoin d'autorisations supplémentaires pour créer et gérer les ressources Kubernetes sous-jacentes définies dans votre répertoire ResourceGraphDefinitions (telles que les déploiements, les services ou les ressources ACK). Vous devez accorder ces autorisations par le biais de politiques d'entrée d'accès ou de Kubernetes RBAC. Pour plus de détails sur l'octroi de ces autorisations, voir Autorisations de ressources arbitraires kro.
Autorisations de l'équipe de plateforme
Les équipes de la plateforme ont besoin d'autorisations pour créer et gérer ResourceGraphDefinitions.
Exemple ClusterRole pour les équipes de plateforme :
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: kro-platform-admin rules: - apiGroups: ["kro.run"] resources: ["resourcegraphdefinitions"] verbs: ["*"]
Associez les membres de l'équipe de la plateforme :
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: platform-team-kro-admin subjects: - kind: Group name: platform-team apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: kro-platform-admin apiGroup: rbac.authorization.k8s.io
Autorisations de l'équipe d'application
Les équipes d'application ont besoin d'autorisations pour créer des instances de ressources personnalisées dans leurs espaces de noms.
Exemple de rôle pour les équipes de candidature :
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: kro-app-developer namespace: my-app rules: - apiGroups: ["kro.run"] resources: ["webapps", "databases"] verbs: ["create", "get", "list", "update", "delete", "patch"]
Associez les membres de l'équipe de candidature :
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: app-team-kro-developer namespace: my-app subjects: - kind: Group name: app-team apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: kro-app-developer apiGroup: rbac.authorization.k8s.io
Note
Le groupe d'API du rôle (kro.rundans cet exemple) doit correspondre à celui apiVersion défini dans votre ResourceGraphDefinition schéma.
Accès en lecture seule
Accordez un accès en lecture seule à la vue ResourceGraphDefinitions et aux instances sans autorisation de modification.
Lecture seule ClusterRole :
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: kro-viewer rules: - apiGroups: ["kro.run"] resources: ["resourcegraphdefinitions"] verbs: ["get", "list", "watch"]
Rôle en lecture seule pour les instances :
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: kro-instance-viewer namespace: my-app rules: - apiGroups: ["kro.run"] resources: ["webapps", "databases"] verbs: ["get", "list", "watch"]
Accès à plusieurs espaces de noms
Accordez aux équipes d'application l'accès à plusieurs espaces de noms à l'aide de ClusterRoles with RoleBindings.
ClusterRole pour l'accès à plusieurs espaces de noms :
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: kro-multi-namespace-developer rules: - apiGroups: ["kro.run"] resources: ["webapps"] verbs: ["create", "get", "list", "update", "delete"]
Liez à des espaces de noms spécifiques :
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: app-team-dev-access namespace: development subjects: - kind: Group name: app-team apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: kro-multi-namespace-developer apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: app-team-staging-access namespace: staging subjects: - kind: Group name: app-team apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: kro-multi-namespace-developer apiGroup: rbac.authorization.k8s.io
Bonnes pratiques
Principe du moindre privilège : accordez uniquement les autorisations minimales nécessaires pour les responsabilités de chaque équipe.
Utilisez des groupes plutôt que des utilisateurs individuels : liez les rôles à des groupes plutôt qu'à des utilisateurs individuels pour faciliter la gestion.
Problèmes liés à la plateforme et à l'application distincts : les équipes chargées de la plateforme gèrent ResourceGraphDefinitions, les équipes chargées des applications gèrent les instances.
Isolation des espaces de noms : utilisez des espaces de noms pour isoler différentes équipes ou environnements, le RBAC contrôlant l'accès à chaque espace de noms.
Accès en lecture seule pour l'audit : fournissez un accès en lecture seule aux équipes de sécurité et de conformité à des fins d'audit.
Étapes suivantes
-
concepts kro- Comprendre les concepts Kro et la composition des ressources
-
concepts kro- Comprendre SimpleSchema les expressions CEL et les modèles de composition
-
Considérations relatives à la sécurité relatives aux fonctionnalités EKS- Passez en revue les meilleures pratiques de sécurité en termes de fonctionnalités