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.
Configuration du contrôle d'accès basé sur les rôles de Kubernetes
Les administrateurs de clusters doivent également configurer le contrôle d'accès basé sur les rôles de Kubernetes (RBAC)
Option 1 : Configuration à RBAC l'aide du graphique Helm
L'équipe SageMaker HyperPod de service fournit un sous-graphique Helm pour la configuration. RBAC Pour en savoir plus, consultez Installer des packages sur le EKS cluster Amazon à l'aide de Helm.
Option 2 : configurer RBAC manuellement
Créez ClusterRole
et ClusterRoleBinding
avec le privilège minimum, et créez Role
et RoleBinding
avec des autorisations de mutation.
Pour créer ClusterRole
et ClusterRoleBinding
pour le IAM rôle de data scientist
Créez un fichier cluster_level_config.yaml
de configuration au niveau du cluster comme suit.
kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: hyperpod-scientist-user-cluster-role rules: - apiGroups: [""] resources: ["pods"] verbs: ["list"] - apiGroups: [""] resources: ["nodes"] verbs: ["list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: hyperpod-scientist-user-cluster-role-binding subjects: - kind: Group name: hyperpod-scientist-user-cluster-level apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: hyperpod-scientist-user-cluster-role # this must match the name of the Role or ClusterRole you wish to bind to apiGroup: rbac.authorization.k8s.io
Appliquez la configuration au EKS cluster.
kubectl apply -f cluster_level_config.yaml
Pour créer un rôle et RoleBinding dans un espace de noms
Il s'agit de l'opérateur de formation à l'espace de noms qui exécute les tâches de formation et Resiliency surveillera par défaut. La reprise automatique des tâches ne peut être prise en charge que dans un espace de kubeflow
noms ou dans un espace de noms préfixé. aws-hyperpod
Créez un fichier de configuration de rôle namespace_level_role.yaml
comme suit. Cet exemple crée un rôle dans l'espace de kubeflow
noms
kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: kubeflow name: hyperpod-scientist-user-namespace-level-role ### # 1) add/list/describe/delete pods # 2) get/list/watch/create/patch/update/delete/describe kubeflow pytroch job # 3) get pod log ### rules: - apiGroups: [""] resources: ["pods"] verbs: ["create", "get"] - apiGroups: [""] resources: ["nodes"] verbs: ["get", "list"] - apiGroups: [""] resources: ["pods/log"] verbs: ["get", "list"] - apiGroups: [""] resources: ["pods/exec"] verbs: ["get", "create"] - apiGroups: ["kubeflow.org"] resources: ["pytorchjobs", "pytorchjobs/status"] verbs: ["get", "list", "create", "delete", "update", "describe"] - apiGroups: [""] resources: ["configmaps"] verbs: ["create", "update", "get", "list", "delete"] - apiGroups: [""] resources: ["secrets"] verbs: ["create", "get", "list", "delete"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: kubeflow name: hyperpod-scientist-user-namespace-level-role-binding subjects: - kind: Group name: hyperpod-scientist-user-namespace-level apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: hyperpod-scientist-user-namespace-level-role # this must match the name of the Role or ClusterRole you wish to bind to apiGroup: rbac.authorization.k8s.io
Appliquez la configuration au EKS cluster.
kubectl apply -f namespace_level_role.yaml
Création d'une entrée d'accès pour les groupes Kubernetes
Après avoir effectué la configuration à RBAC l'aide de l'une des deux options ci-dessus, utilisez l'exemple de commande suivant pour remplacer les informations nécessaires.
aws eks create-access-entry \ --cluster-name
<eks-cluster-name>
\ --principal-arn arn:aws:iam::<AWS_ACCOUNT_ID_SCIENTIST_USER>
:role/ScientistUserRole \ --kubernetes-groups '["hyperpod-scientist-user-namespace-level","hyperpod-scientist-user-cluster-level"]'
Pour le principal-arn
paramètre, vous devez utiliser leIAMutilisateurs pour les scientifiques.